Skip to main content

GitHub Actions Documentation License Nightly Benchmarks

MuJoCo Warp (MJWarp)

MJWarp is a GPU-accelerated version of the MuJoCo physics simulator, designed for NVIDIA hardware. MJWarp delivers high-throughput, accurate simulation for robotics research.

MJWarp is maintained by Google DeepMind and NVIDIA as part of the Newton project.

Getting started

MuJoCo Warp requires an NVIDIA GPU for fast simulation but supports CPU for development and debugging.

Try it now: view a simulation of a dancing humanoid robot locally on your machine:

git clone https://github.com/google-deepmind/mujoco_warp.git && cd mujoco_warp
python benchmarks/run.py -f unitree_g1_flat --view

Or try out a tutorial in your browser (no local setup required).

MJWarp is also available via PyPI:

pip install mujoco-warp

MJWarp depends only on the core MuJoCo bindings (mujoco-core). The mjwarp-viewer and mjwarp-record tools need the viewer extra:

pip install "mujoco-warp[viewer]"

Examples

MuJoCo Warp simulates many kinds of physical systems, from rigid bodies with contacts to soft bodies, cloth, signed distance fields, and more. Here are a few examples of what it can do:

Unitree G1
python benchmarks/run.py -f unitree_g1_flat --view
Unitree G1 Heightfield
python benchmarks/run.py -f unitree_g1_hfield --view
MyoArm
python benchmarks/run.py -f myoarm --view
ALOHA Clutter
python benchmarks/run.py -f aloha_clutter --view
ALOHA Pot
python benchmarks/run.py -f aloha_pot --view
ALOHA SDF
python benchmarks/run.py -f aloha_sdf --view
ALOHA Cloth
python benchmarks/run.py -f aloha_cloth --view
Three Humanoids
python benchmarks/run.py -f three_humanoids --view
Cloth
python benchmarks/run.py -f cloth --view

Each of these scenes is benchmarked nightly and the results are published nightly.

Tips for developers

To set up MJWarp for development:

git clone https://github.com/google-deepmind/mujoco_warp.git && cd mujoco_warp
uv sync --all-extras  # install all optional dependencies for development
uv run pre-commit install  # enables ruff, uv-lock, and kernel-analyzer checks on commit
uv run pytest -n 8  # run all tests, verify everything works

If you plan to write Warp kernels for MJWarp, please use the kernel_analyzer vscode plugin located in contrib/kernel_analyzer. See the README there for details on how to install it and use it. The same kernel analyzer will run on any PR you open, so it's important to fix any issues it reports.

For performance profiling MJWarp, use the --event_trace flag on mjwarp-testspeed to get a full trace on a test scene of your choice:

mjwarp-testspeed benchmarks/humanoid/humanoid.xml --event_trace

mjwarp-testspeed has many configuration options, see mjwarp-testspeed --help for details. For more details and advanced topics on using MJWarp, see the MuJoCo Warp documentation.

Integrating MuJoCo Warp

There are many ways to use MuJoCo Warp in your projects. In many cases, you can directly install and use MJWarp as a drop-in replacement for MuJoCo.

If you prefer the JAX ecosystem, you can use MJWarp via MJX. See MuJoCo Playground for robotics machine learning recipes that use JAX and MJWarp.

If you prefer PyTorch for research, consider one of these two great options:

  • Isaac Lab integrates MJWarp via Newton. This setup enables powerful, highly extensible multi-physics simulation with deep NVIDIA ecosystem integration.
  • mjlab exposes the Isaac Lab manager-based API directly on top of MJWarp, providing a focused framework for robotics research with minimal dependencies and direct access to native MuJoCo data structures.

MuJoCo API Compatibility

MuJoCo Warp supports the same features as MuJoCo with the following exceptions:

  • Integrator: IMPLICITFAST midpoint integrator feature is not supported
  • Solver: PGS not yet supported (noslip not supported with discrete integrator)
  • Actuator / Sensors: PLUGIN types not yet supported
  • Flex: experimental — not all features are implemented or optimized yet

Differentiability via Warp is not yet available. See #500 for progress.

Batch Rendering

MJWarp includes a high-throughput GPU batch renderer designed for simultaneous rendering of cameras across many parallel simulation worlds. The renderer uses ray-tracing to render MuJoCo scenes at millions of frames per second on NVIDIA GPUs.

Key capabilities:

  • Mesh rendering
  • Texture support
  • Heightfield rendering
  • Flex deformable rendering
  • Gaussian splat rendering
  • Heterogeneous multi-camera support (different resolutions/FOV/intrinsics for each camera)
  • Lighting and shadow support

See the announcement PR for more details.

License

MJWarp is released under the Apache 2.0 license. See LICENSE for details.

Metadata

Release files for mujoco-warp 4.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mujoco-warp 4.0.1
File Size Uploaded Provenance Actions
mujoco_warp-4.0.1.tar.gz 2.4 MB Without provenance Details for mujoco_warp-4.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mujoco-warp 4.0.1
File Interpreter ABI Platform Actions
mujoco_warp-4.0.1-py3-none-any.whl Python 3 none any Details for mujoco_warp-4.0.1-py3-none-any.whl

Total release size: 4.9 MB

Release files / mujoco_warp-4.0.1.tar.gz

Download URL mujoco_warp-4.0.1.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
e1e40c16b944afe0e4f0ea646852df4cde110a31bdda9d4190c194906efa84c4
BLAKE2b-256 checksum
How to use checksums
0e3b3f7b2ca9bcbe08e4f0ae7745c939871e0b08f7e8d0af0bfd16bb0325296f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Release files / mujoco_warp-4.0.1-py3-none-any.whl

Download URL mujoco_warp-4.0.1-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
418b10733258f466f9a019bfccfa780b19674649a38c997a0e4f3a22f97c5463
BLAKE2b-256 checksum
How to use checksums
d2bfd8c9938c649ebe00725cc9dad3e82346d42ed8e8b0b4dfe1ac4b61285e9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.10

Security for mujoco-warp 4.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page