whatisgithub

What is dm_control?

google-deepmind/dm_control — explained in plain English

Analysis updated 2026-06-26

4,578PythonAudience · researcherComplexity · 4/5Setup · moderate

In one sentence

A DeepMind Python package for building physics-based AI training environments on top of MuJoCo, with a ready-made suite of robotic control tasks and tools for composing custom simulations. Used for reinforcement learning research.

Mindmap

mindmap
  root((dm_control))
    What it does
      Physics simulation for AI
      Reinforcement learning envs
      MuJoCo Python wrapper
    Pre-built Environments
      Control Suite tasks
      Robotic arm control
      Walking creatures
      Multi-agent soccer
    Libraries Included
      MJCF robot builder
      Composer task assembler
    Features
      Headless server rendering
      Google Colab tutorial
      pip install only
    Tech Stack
      Python
      MuJoCo
      NumPy
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Train a reinforcement learning agent on classic continuous control tasks like robotic arm or walking using the Control Suite.

USE CASE 2

Build a custom simulated robot body in Python using the MJCF library and attach it to a training environment.

USE CASE 3

Assemble a complex multi-part simulation task from reusable components using the Composer library.

USE CASE 4

Run physics-based RL experiments on cloud machines without a display using headless rendering mode.

What is it built with?

PythonMuJoCoNumPy

How does it compare?

google-deepmind/dm_controlspyoungtech/grequestsrobusta-dev/krr
Stars4,5784,5774,580
LanguagePythonPythonPython
Setup difficultymoderateeasymoderate
Complexity4/52/53/5
Audienceresearcherdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires MuJoCo (now free) and a compatible graphics backend for rendering, headless mode works on servers without a display.

Check the repository license file, this is a Google DeepMind research package so terms may differ from standard open-source licenses.

So what is it?

dm_control is a Python package from Google DeepMind that provides tools for building and running physics-based simulations, primarily for training AI systems through reinforcement learning. Reinforcement learning is a method where an AI agent learns to make decisions by taking actions in an environment and receiving feedback (rewards or penalties) based on the results. To train such an agent, you need a simulated environment where the agent can practice, which is what this package provides. The physics simulation runs on top of MuJoCo, a physics engine developed for robotics and biomechanics research. MuJoCo calculates how simulated objects, joints, and bodies move and interact in response to applied forces. This package wraps MuJoCo with a Python interface and adds a collection of pre-built environments, called the Control Suite, that include tasks like controlling a simulated robotic arm, a walking creature, a ball-in-cup catch, and other classic continuous control problems. Each task comes with a defined observation (what the agent can see) and a reward signal (what counts as doing well). Beyond the pre-built suite, the package includes a library called MJCF that lets you build and modify simulated robot bodies in Python code, and a Composer library for assembling more complex multi-part tasks from reusable pieces. There is also a multi-agent soccer environment where several simulated players compete on a field. Installation is via pip (the standard Python package manager) and does not require any steps beyond that command, though rendering 3D scenes requires one of three graphics backends to be available on your system. The package supports headless rendering on servers without a display, which is important for running experiments on cloud machines. An introductory tutorial is available as a runnable notebook in Google Colab. The package is accompanied by a peer-reviewed publication in the journal Software Impacts.

Copy-paste prompts

Prompt 1
Show me how to set up dm_control with MuJoCo and run a CartPole or cheetah-run Control Suite environment for a simple reinforcement learning experiment.
Prompt 2
Help me use dm_control's MJCF library to define a custom two-link robotic arm in Python and load it into a simulation.
Prompt 3
I want to train a PPO agent on a dm_control Control Suite task using Stable Baselines3, show me the environment wrapper and training setup.
Prompt 4
Write a dm_control Composer task that has a robot arm pick up an object and place it on a target, with a reward function for success.
Prompt 5
Show me how to enable headless rendering in dm_control so I can run physics simulations on a cloud VM without a display and save video to disk.

Frequently asked questions

What is dm_control?

A DeepMind Python package for building physics-based AI training environments on top of MuJoCo, with a ready-made suite of robotic control tasks and tools for composing custom simulations. Used for reinforcement learning research.

What language is dm_control written in?

Mainly Python. The stack also includes Python, MuJoCo, NumPy.

What license does dm_control use?

Check the repository license file, this is a Google DeepMind research package so terms may differ from standard open-source licenses.

How hard is dm_control to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is dm_control for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.