Software program and Duties for Steady Management


A public colab pocket book with a tutorial for dm_control software program is on the market here.

  • An autogenerated MuJoCo Python wrapper gives full entry to the underlying engine.
  • PyMJCF is a Doc Object Mannequin, whereby a hierarchy of Python Entity objects corresponds to MuJoCo mannequin parts.
  • Composer is the high-level “sport engine” which streamlines the composing of Entities into scenes and the defining observations, rewards, terminations and normal sport logic.
  • The Locomotion framework introduces a number of summary Composer entities such because the Enviornment and Walker, facilitating locomotion-like duties.
  • The Control Suite, together with a brand new quadruped and dog surroundings.
  • A number of locomotion duties, together with soccer.
  • Single arm robotic manipulation duties utilizing snap-together bricks.


Named Indexing

Exploiting MuJoCo’s help of names for all mannequin parts, we enable strings to index and slice into arrays. So as a substitute of writing:

“fingertip_height = physics.information.geom_xpos[7, 2]”

…utilizing obscure, fragile numerical indexing, you’ll be able to write:

“fingertip_height = physics.named.information.geom_xpos[‘fingertip’, ‘z’]”

resulting in a way more sturdy, readable codebase.


The PyMJCF library creates a Python object hierarchy with 1:1 correspondence to a MuJoCo mannequin. It introduces the connect() technique which permits fashions to be hooked up to at least one one other. For instance, in our tutorial we create procedural multi-legged creatures by attaching legs to our bodies and creatures to the scene.


Composer is the “sport engine“ framework, which defines a selected order of runtime operate calls, and abstracts the affordances of reward, termination and statement. These abstractions allowed us to create helpful submodules:

composer.Observable: An summary statement wrapper which may add noise, delays, buffering and filtering to any sensor.

composer.Variation: A set of instruments for randomising simulation portions, permitting for agent robustification and sim-to-real through mannequin variation.

Diagram displaying the life-cycle of Composer callbacks. Rounded rectangles signify callbacks that Duties and Entities could implement. Blue rectangles signify built-in Composer operations.


The Locomotion framework launched the abstractions:

Walker: A controllable entity with widespread locomotion-related strategies, like projection of vectors into an selfish body.

Enviornment: A self-scaling randomised scene, during which the walker could be positioned and given a process to carry out.

For instance, utilizing simply 4 operate calls, we are able to instantiate a humanoid walker, a WallsCorridor area and mix them in a RunThroughCorridor process.

New Management Suite domains

  • A generic quadruped area with a passively secure physique.
  • A number of pure locomotion duties (e.g. stroll, run).
  • An escape process requiring tough terrain navigation.
  • A fetch process requiring ball dribbling.
  • An elaborate mannequin based mostly on a skeleton commissioned from leo3Dmodels.
  • A difficult ball-fetching process that requires precision greedy with the mouth.

A quick-paced montage of dm_control based mostly duties from DeepMind:

Making use of for technical roles

A brand new framework for distributed reinforcement studying