MuJoCo   advanced physics simulation

MuJoCo Plugin and Unity Integration was released on January 8, 2018. See new documentation chapter for details.

MuJoCo stands for Multi-Joint dynamics with Contact. It is a physics engine aiming to facilitate research and development in robotics, biomechanics, graphics and animation, and other areas where fast and accurate simulation 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 optimization, and in particular optimization through contacts. MuJoCo makes it possible to scale up computationally-intensive techniques such optimal control, physically-consistent state estimation, system identification and automated mechanism design, and apply them to complex dynamical systems in contact-rich behaviors. It also has more traditional applications such as testing and validation of control schemes before deployment on physical robots, interactive scientific visualization, virtual environments, animation and gaming.

MuJoCo was developed by Emo Todorov for Roboti LLC. Initially it was used at the Movement Control Laboratory, University of Washington, and has more recently been adopted by the wider research community. The engine has enabled a range of research projects highlighted in the Gallery page, as well as numerical benchmarks summarized in the Benchmark page. The software is available at the Download page. Additional resources as well as support are available on the Forum. There is also extensive Documentation formatted as an online book.

MuJoCo aims to combine the best ideas from robotics and multi-body dynamics, and augment them with new mathematical models and numerical algorithms where necessary. Its key features are:

  • simulation in generalized coordinates, avoiding joint violations;
  • inverse dynamics that are well-defined even in the presence of contacts;
  • unified continuous-time formulation of constraints via convex optimization;
  • constraints include soft contacts, limits, dry friction, equality constraints;
  • actuators including motors, cylinders, muscles, tendons, slider-cranks;
  • choice of Newton, conjugate gradient, or Projected Gauss-Seidel solvers;
  • choice of pyramidal or elliptic friction cones, dense or sparse matrices;
  • choice of Euler or Runge-Kutta numerical integrators
  • multi-threaded sampling and finite-difference approximations;
  • intuitive XML model format (called MJCF) and built-in model compiler;
  • cross-platform GUI with interactive 3D visualization in OpenGL;
  • run-time module written in ANSI C and hand-tuned for performance.