Simulate robot and human motion with a precise physics engine
MuJoCo is a general-purpose physics engine for researchers and developers in robotics, biomechanics, graphics, and machine learning who need precise simulations. It quickly calculates the complex physical phenomena that occur when multi-jointed structures interact with their environment, aiding in robotics research and animation production. The repository is maintained by Google DeepMind and provides a C API, along with Python bindings and a Unity plugin.
Start simulating directly in the browser
You can experience MuJoCo directly in a web browser without any installation process. Accessing mujoco.org allows you to run simulations immediately on desktop or mobile environments, while live.mujoco.org lets you manipulate models via drag-and-drop using the WebAssembly version of the MuJoCo Studio app. Although the WebAssembly version is slower than native C, it is useful for reviewing and modifying models without a local installation. Python users can learn step-by-step from basic concepts to advanced control through tutorial notebooks provided in Google Colab.
Installation methods and supported environments
The most recommended way to use MuJoCo is to download the pre-compiled binaries provided on the GitHub releases page. These binaries support Linux (x86-64, AArch64), Windows (x86-64), and macOS (Universal) platforms. If you are using Python 3.11 or later, you can install the native Python bindings via the pip install mujoco command from PyPI, which includes the MuJoCo code pre-packaged. If building from source, you should refer to the 'Build from source' section in the documentation, noting that the latest commit on the main branch may be unstable.
Integration with various languages and tools
While MuJoCo is based on a C API, it provides bindings and converters that allow extension to various languages and tools. Official bindings include Python, JavaScript (WebAssembly), and C# (Unity plugin), while the community offers bindings for various languages such as MATLAB Simulink, Swift, Java, Julia, and Rust. Tools are also provided to convert model files in other formats, such as OpenSim, SDFormat, OBJ, and Onshape, into MJCF (MuJoCo XML Format). This ecosystem allows you to bring robot models created with other tools into the MuJoCo environment for simulation.
Version management and contribution methods
MuJoCo aims to release a new version during the first week of every month. Since version 3.5.0, it has applied the Modified Semantic Versioning standard. The community welcomes questions, help requests, bug reports, and feature requests, with specific issues or questions shared via the 'Asking for Help' Discussion on GitHub. Bug reports and feature requests are accepted through GitHub Issues, and those wishing to make larger-scale contributions should refer to the contributor guide and style guide.
Things to check before use
MuJoCo is distributed under the Apache License, Version 2.0, while documentation and media materials follow the Creative Commons Attribution 4.0 (CC BY 4.0) license. This explicitly states that it is a product not officially supported by Google. If using it for research purposes, you should refer to the citation provided in the README. When using the Python bindings on Linux, it is advisable to check for a compatible distribution since they target manylinux2014. Additionally, when building from source, it is recommended to use a stable release version considering the instability of the main branch.