Skip to content

A set of high-dimensional continuous control environments for use with Unity ML-Agents Toolkit.

License

Notifications You must be signed in to change notification settings

uribalb/marathon-envs

 
 

Repository files navigation

Marathon Environments

A set of high-dimensional continuous control environments for use with Unity ML-Agents Toolkit.

MarathonEnvs

Preview MarathonEnvs using the Web Demo

Style transfer video playlist

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 compatable algorthem. MarathonEnvs maybe 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


What's new in MarathonEnvs-v2.0.0

WebGL Demo / Support for in browser

marathon-envs Gym wrapper (Preview)

  • Use marathon-envs as a OpenAI Gym environment - see documentation

ml-agents 0.14.1 support

  • Updated to work with ml-agents 0.14.1 / new inference engine

Unity 2018.4 LTS

  • Updated to use Unity 2018.4 LTS. Should work with later versions. However, sometimes Unity makes breaking physics changes.

MarathonManBackflip-v0

  • Train the agent to complete a backflip based on motion capture data
  • Merged from StyleTransfer experimental repro

MarathonMan-v0

  • Optimized for Unity3d + fixes some bugs with the DeepMind.xml version
  • Merged from StyleTransfer experimental repro
  • Replaces DeepMindHumanoid

ManathonManSparse-v0

  • Sparse version of MarathonMan.
  • Single reward is given at end of episode.

TerrainHopperEnv-v0, TerrainWalker2dEnv-v0, TerrainAntEnv-v0, TerrainMarathonManEnv-v0

  • Random Terrain envionments
  • Merged from AssaultCourse experimental repro

SpawnableEnvs (Preview)

  • Set the number of instances of an envrionmwnt you want for training and inference
  • Envrionments are spawned from prefabs, so no need to manually duplicate
  • Supports ability to select from multiple agents in one build
  • Unique Physics Scene per Environment (makes it easier to port envionments however runs slower)
  • SelectEnvToSpawn.cs - Optional menu to enable user to select from all agents in build

Scorer.cs

  • Score agent against 'goal' (for example, max distance) to distinguish rewards from goals
  • Gives mean and std-div over 100 agents

Normalized Observations (-1 to 1) and reward (0 to 1)

  • No need to use normalize flag in training. Helps with OpenAI.Baselines training

Merge CameraHelper.cs from StyleTransfer. Controls are

  • 1, 2, 3 - Slow-mo modes
  • arrow keys or w-a-s-d rotate around agent
  • q-e zoom in / out

Default hyperparams are now closer to OpenAI.Baselines

  • (1m steps for hopper, walker, ant, 10m for humanoid)

Training speed improvements - All feet detect distance from floor

Getting Started

Requirements

  • Unity 2018.4 (Download here).
  • Cloan / 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


Publications & Usage

Publications

Research using ML-Agents + MarathonEnvs


References

Citing MarathonEnvs

If you use MarathonEnvs in your research, we ask that you please cite our paper.

About

A set of high-dimensional continuous control environments for use with Unity ML-Agents Toolkit.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 95.3%
  • Python 4.3%
  • Other 0.4%