MuJoCo: A physics engine for control

Emo Todorov

Roboti LLC, Seattle




About

MuJoCo is a physics engine aiming to facilitate research and development in robotics, biomechanics, graphics and animation, and other areas where fast and accurate simulation of complex dynamical systems is needed. It offers a unique combination of speed, accuracy and modeling power, yet it is not merely a better simulator. Instead it is the first full-featured simulator designed from the ground up for the purpose of model-based control. It has been used extensively in the author's research lab at the University of Washington, where it has played a key role in designing more intelligent robot controllers and state estimators via numerical optimization.

Key features

  • simulation in generalized coordinates, using efficient recursive algorithms that avoid joint constraint violations
  • unified treatment of contacts, joint limits, dry friction and loop constraints, based on a novel formulation of soft constraint dynamics
  • multiple numerical integrators, including Runge Kutta methods adapted to a mixture of smooth and impulsive dynamics
  • rich models of actuators and transmissions including motors, cylinders, biological muscles, tendons, slider-cranks
  • computation of dynamics derivatives, either analytically or via finite difference approximations utilizing multi-core processors
  • intuitive XML model format, and ability to parse URDF models
  • cross-platform GUI with interactive 3D visualization

Benchmarks

Our recent engine comparison shows that for multi-joint systems relevant to robotics, MuJoCo is both faster and more accurate than gaming engines including PhysX, Havoc, Bullet and ODE, as well as the "articulated" versions of PhysX and Bullet. In some tests the differences are orders-of-magnitude. It also remains stable and realistic at larger time-steps. In gaming scenarios involving many disconnected bodies, MuJoCo is somewhat slower than gaming engines but still more accurate.

Availability

We are finalizing MuJoCo 1.0 beta.

Documentation: Work in progress

The rest of this website is the documentation of the MuJoCo engine. Note that this is work in progress and will be updated often. Some of the existing text still refers to previous versions of the software.