When you walk, your feet make contact with the ground. When you write, your fingers make contact with the pen. Physical contacts are what makes interaction with the world possible. Yet, for such a common occurrence, contact is a surprisingly complex phenomenon. Taking place at microscopic scales at the interface of two bodies, contacts can be soft or stiff, bouncy or spongy, slippery or sticky. It’s no wonder our fingertips have four different types of touch-sensors. This subtle complexity makes simulating physical contact — a vital component of robotics research — a tricky task.
The rich-yet-efficient contact model of the MuJoCo physics simulator has made it a leading choice by robotics researchers and today, we're proud to announce that, as part of DeepMind's mission of advancing science, we've acquired MuJoCo and are making it freely available for everyone, to support research everywhere. Already widely used within the robotics community, including as the physics simulator of choice for DeepMind’s robotics team, MuJoCo features a rich contact model, powerful scene description language, and a well-designed API. Together with the community, we will continue to improve MuJoCo as open-source software under a permissive licence. As we work to prepare the codebase, we are making MuJoCo freely available as a precompiled library.
A balanced model of contact. MuJoCo, which stands for Multi-Joint Dynamics with Contact, hits a sweet spot with its contact model, which accurately and efficiently captures the salient features of contacting objects. Like other rigid-body simulators, it avoids the fine details of deformations at the contact site, and often runs much faster than real time. Unlike other simulators, MuJoCo resolves contact forces using the convex Gauss Principle. Convexity ensures unique solutions and well-defined inverse dynamics. The model is also flexible, providing multiple parameters which can be tuned to approximate a wide range of contact phenomena.
Real physics, no shortcuts. Because many simulators were initially designed for purposes like gaming and cinema, they sometimes take shortcuts that prioritise stability over accuracy. For instance, they may ignore gyroscopic forces or directly modify velocities. This can be particularly harmful in the context of optimisation: as first observed by artist and researcher Karl Sims, an optimising agent can quickly discover and exploit these deviations from reality. In contrast, MuJoCo is a second-order continuous-time simulator, implementing the full Equations of Motion. Familiar yet non-trivial physical phenomena like Newton’s Cradle, as well as unintuitive ones like the Dzhanibekov effect, emerge naturally. Ultimately, MuJoCo closely adheres to the equations that govern our world.
Portable code, clean API. MuJoCo’s core engine is written in pure C, which makes it easily portable to various architectures. The library produces deterministic results, with the scene description and simulation state fully encapsulated within two data structures. These constitute all the information needed to recreate a simulation, including results from intermediate stages, providing easy access to the internals. The library also provides fast and convenient computations of commonly used quantities, like kinematic Jacobians and inertia matrices.
Powerful scene description. The MJCF scene-description format uses cascading defaults — avoiding multiple repeated values — and contains elements for real-world robotic components like equality constraints, motion-capture markers, tendons, actuators, and sensors. Our long-term roadmap includes standardising MJCF as an open format, to extend its usefulness beyond the MuJoCo ecosystem.
Biomechanical simulation. MuJoCo includes two powerful features that support musculoskeletal models of humans and animals. Spatial tendon routing, including wrapping around bones, means that applied forces can be distributed correctly to the joints, describing complicated effects like the variable moment-arm in the knee enabled by the tibia. MuJoCo’s muscle model captures the complexity of biological muscles, including activation states and force-length-velocity curves.
A recent PNAS perspective exploring the state of simulation in robotics identifies open source tools as critical for advancing research. The authors’ recommendations are to develop and validate open source simulation platforms as well as to establish open and community-curated libraries of validated models. In line with these aims, we’re committed to developing and maintaining MuJoCo as a free, open-source, community-driven project with best-in-class capabilities. We’re currently hard at work preparing MuJoCo for full open sourcing, and we encourage you to download the software from the new homepage and visit the GitHub repository if you'd like to contribute. Email us if you have any questions or suggestions, and if you're also excited to push the boundaries of realistic physics simulation, we're hiring. We can’t promise we’ll be able to address everything right away, but we’re eager to work together to make MuJoCo the physics simulator we’ve all been waiting for.
MuJoCo in DeepMind. Our robotics team has been using MuJoCo as a simulation platform for various projects, mostly via our dm_control Python stack. In the carousel below, we highlight a few examples to showcase what can be simulated in MuJoCo. Of course, these clips represent only a tiny fraction of the vast possibilities for how researchers might use the simulator. For higher quality versions of these clips, please click here.