gitmyhub

mujoco

C++ ★ 14k updated 9h ago

Multi-Joint dynamics with Contact. A general purpose physics simulator.

MuJoCo is a fast physics engine by Google DeepMind for simulating robots, skeletons, and jointed bodies, widely used in robotics research and machine learning training.

C++PythonJAXUnityXMLsetup: moderatecomplexity 4/5

MuJoCo is a physics engine, meaning software that simulates how physical objects move, collide, and interact. The name stands for Multi-Joint dynamics with Contact. It is designed to model jointed structures, things like robot arms, animal skeletons, or animated characters, as they move through and interact with a simulated world. Google DeepMind maintains it, and it is aimed at researchers and developers working in robotics, biomechanics, graphics, animation, and machine learning.

The core of MuJoCo is a C library tuned for speed. Models are written in XML files and compiled by a built-in tool into low-level data structures that the simulator runs directly. It includes an interactive visual viewer that shows the simulation on screen in real time, and a set of utility functions for computing physics quantities. Python bindings are available as a first-party package, and there is also a plug-in for the Unity game engine.

For getting started, the README points to two paths. One is downloading the native viewer, called simulate, and running it on your machine by following the documentation. The other is a set of online Python tutorial notebooks on Google Colab that cover the basics, model editing, a JAX-based variant called MJX, and control examples including balancing a humanoid on one leg.

Installation options include precompiled binaries for Linux, Windows, and macOS, which the README calls the recommended route. Python users can install it with a single pip command, since that package bundles a copy of MuJoCo. Building from source is also documented, though the README notes the tip of the main branch may be unstable.

The project releases a new version around the first week of each month. It welcomes questions and bug reports through GitHub Discussions and Issues. The README also lists a range of community-maintained bindings for Swift, Java, Julia, and Rust, plus converters that translate models from other formats into MuJoCo's XML format.

Where it fits