Dm_control

DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.
Alternatives To Dm_control
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Pytorch A2c Ppo Acktr Gail3,198
a year ago82mitPython
PyTorch implementation of Advantage Actor Critic (A2C), Proximal Policy Optimization (PPO), Scalable trust-region method for deep reinforcement learning using Kronecker-factored approximation (ACKTR) and Generative Adversarial Imitation Learning (GAIL).
Dm_control3,1891217 days ago25May 23, 202269apache-2.0Python
DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.
Di Engine2,608
2 days ago9June 21, 202222apache-2.0Python
OpenDILab Decision AI Engine
Coach2,248116 months ago13October 10, 201990apache-2.0Python
Reinforcement Learning Coach by Intel AI Lab enables easy experimentation with state of the art Reinforcement Learning algorithms
Deep Neuroevolution1,502
2 years ago17otherPython
Deep Neuroevolution
Softlearning986
7 months ago49otherPython
Softlearning is a reinforcement learning framework for training maximum entropy policies in continuous domains. Includes the official implementation of the Soft Actor-Critic algorithm.
Envpool84639 days ago18June 15, 202240apache-2.0C++
C++-based high-performance parallel environment execution engine (vectorized env) for general RL environments.
Mushroom Rl68633 days ago15June 30, 20223mitPython
Python library for Reinforcement Learning.
Reaver516
3 years ago14February 24, 202010mitPython
Reaver: Modular Deep Reinforcement Learning Framework. Focused on StarCraft II. Supports Gym, Atari, and MuJoCo.
Robopianist397
6 days ago1apache-2.0Python
🎹 🤖 A benchmark for high-dimensional robot control.
Alternatives To Dm_control
Select To Compare


Alternative Project Comparisons
Readme

dm_control: DeepMind Infrastructure for Physics-Based Simulation.

DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo physics.

An introductory tutorial for this package is available as a Colaboratory notebook: Open In Colab

Overview

This package consists of the following "core" components:

  • dm_control.mujoco: Libraries that provide Python bindings to the MuJoCo physics engine.

  • dm_control.suite: A set of Python Reinforcement Learning environments powered by the MuJoCo physics engine.

  • dm_control.viewer: An interactive environment viewer.

Additionally, the following components are available for the creation of more complex control tasks:

If you use this package, please cite our accompanying publication:

@article{tunyasuvunakool2020,
         title = {dm_control: Software and tasks for continuous control},
         journal = {Software Impacts},
         volume = {6},
         pages = {100022},
         year = {2020},
         issn = {2665-9638},
         doi = {https://doi.org/10.1016/j.simpa.2020.100022},
         url = {https://www.sciencedirect.com/science/article/pii/S2665963820300099},
         author = {Saran Tunyasuvunakool and Alistair Muldal and Yotam Doron and
                   Siqi Liu and Steven Bohez and Josh Merel and Tom Erez and
                   Timothy Lillicrap and Nicolas Heess and Yuval Tassa},
}

Installation

Install dm_control from PyPI by running

pip install dm_control

Note: dm_control cannot be installed in "editable" mode (i.e. pip install -e).

While dm_control has been largely updated to use the pybind11-based bindings provided via the mujoco package, at this time it still relies on some legacy components that are automatically generated from MuJoCo header files in a way that is incompatible with editable mode. Attempting to install dm_control in editable mode will result in import errors like:

ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...

The solution is to pip uninstall dm_control and then reinstall it without the -e flag.

Versioning

Starting from version 1.0.0, we adopt semantic versioning.

Prior to version 1.0.0, the dm_control Python package was versioned 0.0.N, where N was an internal revision number that increased by an arbitrary amount at every single Git commit.

If you want to install an unreleased version of dm_control directly from our repository, you can do so by running pip install git+https://github.com/deepmind/dm_control.git.

Rendering

The MuJoCo Python bindings support three different OpenGL rendering backends: EGL (headless, hardware-accelerated), GLFW (windowed, hardware-accelerated), and OSMesa (purely software-based). At least one of these three backends must be available in order render through dm_control.

  • Hardware rendering with a windowing system is supported via GLFW and GLEW. On Linux these can be installed using your distribution's package manager. For example, on Debian and Ubuntu, this can be done by running sudo apt-get install libglfw3 libglew2.0. Please note that:

    • dm_control.viewer can only be used with GLFW.
    • GLFW will not work on headless machines.
  • "Headless" hardware rendering (i.e. without a windowing system such as X11) requires EXT_platform_device support in the EGL driver. Recent Nvidia drivers support this. You will also need GLEW. On Debian and Ubuntu, this can be installed via sudo apt-get install libglew2.0.

  • Software rendering requires GLX and OSMesa. On Debian and Ubuntu these can be installed using sudo apt-get install libgl1-mesa-glx libosmesa6.

By default, dm_control will attempt to use GLFW first, then EGL, then OSMesa. You can also specify a particular backend to use by setting the MUJOCO_GL= environment variable to "glfw", "egl", or "osmesa", respectively. When rendering with EGL, you can also specify which GPU to use for rendering by setting the environment variable MUJOCO_EGL_DEVICE_ID= to the target GPU ID.

Additional instructions for Homebrew users on macOS

  1. The above instructions using pip should work, provided that you use a Python interpreter that is installed by Homebrew (rather than the system-default one).

  2. Before running, the DYLD_LIBRARY_PATH environment variable needs to be updated with the path to the GLFW library. This can be done by running export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH.

Popular Mujoco Projects
Popular Reinforcement Learning Projects
Popular Machine Learning Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Machine Learning
Deep Learning
Artificial Intelligence
Neural Network
Rendering
Physics
Reinforcement Learning
Headless Browsers
Glfw
Physics Simulation
Mujoco
Deepmind