dm_control: The DeepMind Control Suite and Package
This package contains:
dm_control.mjcf: A library for composing and modifying MuJoCo MJCF models in Python.
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.
If you use this package, please cite our accompanying tech report.
Installation and requirements
Follow these steps to install
Download MuJoCo Pro 2.00 from the download page on the MuJoCo website. MuJoCo Pro must be installed before
dm_control's install script generates Python
ctypesbindings based on MuJoCo's header files. By default,
dm_controlassumes that the MuJoCo Zip archive is extracted as
dm_controlPython package by running
pip install git+git://github.com/deepmind/dm_control.git(PyPI package coming soon) or by cloning the repository and running
pip install /path/to/dm_control/. We recommend
pip installing into a
virtualenv, or with the
--userflag to avoid interfering with system packages. At installation time,
dm_controllooks for the MuJoCo headers from Step 1 in
~/.mujoco/mujoco200_$PLATFORM/include, however this path can be configured with the
headers-dircommand line argument.
Install a license key for MuJoCo, required by
dm_controlat runtime. See the MuJoCo license key page for further details. By default,
dm_controllooks for the MuJoCo license key file at
If the license key (e.g.
mjkey.txt) or the shared library provided by MuJoCo Pro (e.g.
libmujoco200.dylib) are installed at non-default paths, specify their locations using the
MJLIB_PATHenvironment variables respectively.
Additional instructions for Linux
The MuJoCo Python bindings support two different OpenGL rendering backends: GLFW (hardware-based) and OSMesa (software-based). At least one of these two backends must be available in order to use the bindings.
Hardware rendering requires GLFW and GLEW, which can be installed via your Linux distribution's package manager. For example, on Debian and Ubuntu, this can be done by running
sudo apt-get install libglfw3 libglew2.0. Note: hardware rendering is not supported on headless machines.
Software rendering requires GLX and OSMesa. On Debian and Ubuntu these can be installed using
sudo apt-get install libgl1-mesa-glx libosmesa6.
Additional instructions for Homebrew users on macOS
The above instructions using
pipshould work, provided that you use a Python interpreter that is installed by Homebrew (rather than the system-default one).
Before running, the
DYLD_LIBRARY_PATHenvironment 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.