Droid is a unity package that enables prototyping reinforcement learning environments within the Unity engine and communication to the Neo counterpart of the Neodroid platform.
This project has similarities with Unity's own project Unity Machine Learning Agents. Most of the efforts done in this project were made prior to their announcement, Introducing: Unity Machine Learning Agents, when the authors was in need of a capable tool. Newcomers wanting a more supported experience may wish to use the Unity Machine Learning Agents project instead.
The entire Neodroid platform serves as a tool for academic research specific to the authors interests, hence explaining the existence and future direction of this project.
- In-editor simulations for ease of debugging
- Connect multiple external agents (i.e. multiple client computers)
- Blazing fast serialisation
- Modular unity style component construction of scenes (enables rapid prototyping of complex environments and ease of integration with existing projects)
- Support reverse curriculum generation inherently (Ability to reinitialise any previous seen state or configure new ones)
- Download the newest Droid.unitypackage from releases and import into your Unity project.
Or
- Acquire the Droid (Temporarily down) package from the built-in asset store of the Unity Editor.
sintefneodroid/droid # This repository
β
βββ docs
β βββ source # Documentation files
β β
β βββ make.bat # Compile docs
β βββ Makefile # ^
β
βββ Examples # Prebuilt Neodroid environments
β βββ Assets # Model checkpoints
β β βββ Neodroid # Symlinked folder to top-level Neodroid folder
β β βββ SceneAssets # All scene-specific assets for the prebuilt environments
β β βββ Scenes # All prebuilt environment scenes
β β
β βββ Examples.sln # C# project file
β
βββ .github # Images and such for this README
β
βββ Neodroid # The Neodroid unity package
β βββ Prototyping # All classes for quick prototyping of observations and actions
β β βββ Actors
β β βββ Evaluation
β β βββ Observers
β β βββ Displayers
β β βββ Configurables
β β βββ Motors
β β
β βββ Environments # Classes for encapsulating all Neodroid environments
β βββ Managers # Classes for managing the simulation of Neodroid environments
β βββ Utilities # Lots of helper functionalities
β
βββ LICENSE # License file (Important but boring)
βββ README.md # The top-level README
For citation you may use the following bibtex entry:
@misc{neodroid,
author = {Heider, Christian},
title = {Neodroid Platform},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/sintefneodroid}},
}