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.
Neodroid is developed with support from Research Council of Norway Grant #262900. (https://www.forskningsradet.no/prosjektbanken/#/project/NFR/262900)
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)
-
Edit your Unity projects "Packages/manifest.json" to include the string
"com.neodroid.droid": "https://github.com/sintefneodroid/droid.git"}
.Example
manifest.json
{ "dependencies": { "com.unity.package-manager-ui": "0.0.0-builtin", ... "com.neodroid.droid": "https://github.com/sintefneodroid/droid.git", } }
You can use
"com.neodroid.droid": "https://github.com/sintefneodroid/droid.git#branch"
for a specific branch.
Or
- 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
β
βββ Samples # Prebuilt Neodroid environments
β βββ MultiArmedBandit # Sample Project
β
βββ Editor # Editor Implementation
β βββ GameObjects
β βββ ScriptableObjects
β βββ Windows
β βββ Resources
β βββ Utilies
β
βββ Runtime # Runtime Implementation
β βββ 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
β
βββ Documentation # Unity Package Documentation
β
βββ Gizmos # Icons
β
βββ Tests # Tests
β
βββ .github # Images and such for this README
β
βββ LICENSE.md # License file (Important but boring)
βββ README.md # The top-level README
βββ TUTORIAL.md # Very quick tutorial to get started
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}},
}