Marathon Environments
A set of high-dimensional continuous control environments for use with Unity ML-Agents Toolkit.
Web Demo
Preview MarathonEnvs using theMarathonEnvs is a set of high-dimensional continuous control benchmarks using Unityโs native physics simulator, PhysX. MarathonEnvs can be trained using Unity ML-Agents or any OpenAI Gym compatible algorithm. MarathonEnvs may be useful for:
- Video Game researchers interested in apply bleeding-edge robotics research into the domain of locomotion and AI for video games.
- Academic researchers looking to leverage the strengths of Unity and ML-Agents along with the body of existing research and benchmarks provided by projects such as the DeepMind Control Suite, or OpenAI Mujoco environments.
Note: This project is the result of contributions from members of the Unity community (see below) who actively maintain the repository. As such, the contents of this repository are not officially supported by Unity Technologies.
Need Help?
- Open an issue
- Join our Discord server
- Say hi on Twitter - @iAmVidyaGamer
Environments
Releases
The latest version is v3.0.0
The following table lists releases, the required unity version, and links to release note, source code, and binaries:
Version | Unity | Updated Environments | Source | MacOS | Windows | Linux | Web | Paper |
---|---|---|---|---|---|---|---|---|
master (unstable) | 2020.1 | ControllerMarathonMan-v0 | -- | -- | -- | -- | -- | -- |
v3.0.0 | 2020.1 beta.12 | ControllerMarathonMan-v0 | Source | MacOS | -- | Linux | Web | arXiv |
v2.0.0 | 2018.4 LTS | MarathonManWalking-v0 MarathonManRunning-v0 MarathonManJazzDancing-v0 MarathonManMMAKick-v0 MarathonManPunchingBag-v0 | Source | MacOS | -- | Linux | -- | -- |
v2.0.0-alpha.2 | 2018.4 LTS | -- | Source | MacOS | Windows | Linux | -- | AAAI 2019 |
v2.0.0-alpha.1 | 2018.4 LTS | MarathonManBackflip-v0 MarathonMan-v0 ManathonManSparse-v0 TerrainHopperEnv-v0, TerrainWalker2dEnv-v0, TerrainAntEnv-v0, TerrainMarathonManEnv-v0 | Source | -- | -- | -- | -- | -- |
v0.5.0a | 2018.2 | Hopper-v0, Walker2d-v0, Ant-v0, Humanoid-v0 | Source | -- | -- | -- | -- | Blog |
Getting Started
Requirements
- Unity 2018.4 (Download here).
- Clone / Download this repro
- Install ml-agents version 0.14.1 - install via:
pip3 install mlagents==0.14.1
- Build or install the correct runtime for your version into the
envs\
folder
Training
- See Training.md for training us ML-Agents
Guides
-
Video walkthrough:-
-
Getting started with Marathon Environments v0.5.0a BLOG
Publications & Usage
Publications
- Technical Paper: Realistic Physics Based Character Controller
- AAAI 2019 Workshop on Games and Simulations for Artificial Intelligence: Marathon Environments: Multi-Agent Continuous Control Benchmarks in a Modern Video Game Engine
- An early version of this work was presented March 19th, 2018 at the AI Summit - Game Developer Conference 2018
Research using ML-Agents + MarathonEnvs
- ActiveRagdollAssaultCourse - Mastering Dynamic Environments
- ActiveRagdollControllers - Implementing a Player Controller
- ActiveRagdollStyleTransfer - Learning From Motioncapture Data
- MarathonEnvsBaselines - Experimental implementation with OpenAI.Baselines and Stable.Baselines
References
- DReCon: data-driven responsive control of physics-based characters Insperation for ControllerMarathonMan environment.
- DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills Insperation for Style Transfer environments.
- OpenAI.Gym Mujoco implementation. Good reference for enviroment setup, reward functions and termination functions.
- PyBullet pybullet_envs - a bit harder than MuJoCo gym environments but with an open source simulator. Pre-trained environments in stable-baselines zoo.
- DeepMind Control Suite - Set of continuous control tasks.
- DeepMind paper Emergence of Locomotion Behaviours in Rich Environments and video- see page 13 b.2 for detail of reward functions
- MuJoCo homepage.
- A good primer on the differences between physics engines is 'Physics simulation engines have traditional made tradeoffs between performanceโ and itโs accompanying video.
- MuJoCo Unity Plugin MuJoCo's Unity plugin which uses socket to comunicate between MuJoCo (for running the physics simulation and control) and Unity (for rendering).
Citing MarathonEnvs
If you use MarathonEnvs in your research, we ask that you please cite our paper.