A set of high-dimensional continuous control environments for use with Unity ML-Agents Toolkit.
Preview MarathonEnvs using the Web Demo
MarathonEnvs 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
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 |
- 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
- See Training.md for training us ML-Agents
-
Video walkthrough:-
-
Getting started with Marathon Environments v0.5.0a BLOG
- 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
- ActiveRagdollAssaultCourse - Mastering Dynamic Environments
- ActiveRagdollControllers - Implementing a Player Controller
- ActiveRagdollStyleTransfer - Learning From Motioncapture Data
- MarathonEnvsBaselines - Experimental implementation with OpenAI.Baselines and Stable.Baselines
- 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).
If you use MarathonEnvs in your research, we ask that you please cite our paper.