In October 2021, we announced that we acquired the MuJoCo physics simulator, and made it freely available for everyone to support research everywhere. We also committed to developing and maintaining MuJoCo as a free, open-source, community-driven project with best-in-class capabilities. Today, we’re thrilled to report that open sourcing is complete and the entire codebase is on GitHub

Here, we explain why MuJoCo is a great platform for open-source collaboration and share a preview of our roadmap going forward.

A platform for collaboration

Physics simulators are critical tools in modern robotics research and often fall into these two categories: 

  1. Closed-source, commercial software.
  2. Open-source software, often created in academia. 

The first category is opaque to the user, and although sometimes free to use, cannot be modified and is hard to understand. The second category often has a smaller user base and suffers when its developers and maintainers graduate.

MuJoCo is one of the few full-featured simulators backed by an established company, which is truly open source. As a research-driven organisation, we view MuJoCo as a platform for collaboration, where roboticists and engineers can join us to develop one of the world’s best robot simulators.

Features that make MuJoCo particularly attractive for collaboration are:

  • Full-featured simulator that can model complex mechanisms
  • Readable, performant, portable code.
  • Easily extensible codebase.
  • Detailed documentation: both user-facing and code comments.

We hope that colleagues across academia and the OSS community benefit from this platform and contribute to the codebase, improving research for everyone.

Performance

As a C library with no dynamic memory allocation, MuJoCo is very fast. Unfortunately, raw physics speed has historically been hindered by Python wrappers, which made batched, multi-threaded operations non-performant due to the presence of the Global Interpreter Lock (GIL) and non-compiled code. In our roadmap below, we address this issue going forward. 

For now, we’d like to share some benchmarking results for two common models. The results were obtained on a standard AMD Ryzen 9 5950X machine, running Windows 10.

These values were obtained from our testspeed sample code. Notably, control noise is injected into the actuators preventing the system from settling into a fixed state, and are therefore representative of real-world performance.

Roadmap

Here’s our near-term roadmap for MuJoCo:

  • Unlock MuJoCo’s speed potential with batched, multi-threaded simulation.
  • Support larger scenes with improvements to internal memory management.
  • New incremental compiler with better model composability.
  • Support for better rendering via Unity integration.
  • Native support for physics derivatives, both analytical and finite-differenced.

Learn more

Helpful resources about MuJoCo:

We look forward to receiving your contributions!