Skip to content

About

An open-source library for sim and real robot demos on top of MuJoCo.

Resources

Stars

2.3k stars

Watchers

20 watching

Forks

Repository files navigation

MuJoCo Playground

Build PyPI version Documentation Status License Banner for playground

MuJoCo Playground is a suite of robot environments, reinforcement learning tasks, and hardware workflows written in PyTorch and built on reaf-sim, MuJoCo, and MuJoCo Warp.

Robots exist in mujoco_playground/robots/, either in simulation or paired with a hardware counterpart, enabling end-to-end workflows across simulation and hardware:

Whole body motion tracking
Whole body motion tracking
SO-101 Simulation Teleoperation Demo
Sim teleoperation
SO-101 Real Teleoperation Demo
Real teleoperation
SO-101 System Identification Rollout
System identification
Sim2Real and interactive viewer
Sim2Real and interactive viewer
YAM Agentic Tabletop Manipulation
Agentic manipulation

Note

Looking for the original RSS 2025 JAX/MJX environments? They remain available under rss2025.

Installation

Clone the repository and sync dependencies with uv:

git clone https://github.com/google-deepmind/mujoco_playground.git && cd mujoco_playground

# Then install with one of:
make sync  # For GPU, good for RL training

make sync-cu12  # For CUDA 12 on Linux

make sync-cpu  # Or for CPU only, (i.e. on macOS)

Verify your installation by running the test suite:

make test

Note

Real-robot hardware SDKs are optional extras so simulation-only stays lightweight. Passing --extra so101 or --extra yam to uv run (or uv sync --extra so101) installs the hardware drivers on demand.

Getting Started

To get started, either try training an RL policy, or try agentic manipulation in simulation or on the real hardware.

Train & Visualize an RL Policy

Train a PPO policy across parallel GPU environments with RSL-RL:

# Train SO-101 Pick-Cube
uv run --extra rl python -m mujoco_playground.rl.rsl_rl.train \
  --env=SO101PickCubeVision \
  --logdir=/tmp/rslrl_logs/so101_pick_cube_vision
  #  --overrides='{"nworld": 64}'  # For CPU

# Play back the trained policy in the interactive viewer
uv run --extra rl python -m mujoco_playground.rl.rsl_rl.play \
  --env=SO101PickCubeVision \
  --resume_path=/tmp/rslrl_logs/so101_pick_cube_vision

Monitor training curves in TensorBoard:

uv run --extra rl tensorboard --logdir=/tmp/rslrl_logs/so101_pick_cube_vision

Optionally set up the SO-101 hardware and deploy to the real arm:

# Deploy the trained policy on the physical SO-101 follower arm
uv run --extra so101 --extra rl python -m \
  mujoco_playground.tasks.manipulation.pick_cube.so101.deploy.run \
  --mode=real \
  --checkpoint=/tmp/rslrl_logs/so101_pick_cube_vision

Try Agentic Manipulation

Spin up the agentic tabletop manipulation task directly from your coding agent with a prompt in sim or real:

Start the tabletop_v0 bridge for the yam in sim and get it to <your task>,
following mujoco_playground/tasks/agentic/tabletop_v0/AGENT_PROMPT.md

Swap sim for real to run on hardware, or so101 for yam (see AGENT_PROMPT.md).

Note

On macOS, --viewer requires mjpython in place of python. Before the first run, link libpython into the virtualenv so mjpython can load it:

ln -sf "$(uv run python -c 'import sys; print(sys.base_prefix)')"/lib/libpython3.13.dylib .venv/lib/

Documentation & Contributing

Citation

If you use MuJoCo Playground in your work, please cite it as follows (see the GitHub contributors page for the full list of contributors):

@software{mujoco_playground_2026,
  author = {Tabanpour, Baruch and Howell, Taylor and Haves, Sam and Abeyruwan, Saminda and Ma, Tony and Suh, Dan and {MuJoCo Playground Contributors}},
  title = {{MuJoCo Playground}},
  url = {https://github.com/google-deepmind/mujoco_playground},
  year = {2026},
}

For the RSS 2025 benchmark suite that was built on JAX/MJX (see rss2025), please cite:

@misc{mujoco_playground_2025,
  title = {MuJoCo Playground: An open-source framework for GPU-accelerated robot learning and sim-to-real transfer.},
  author = {Zakka, Kevin and Tabanpour, Baruch and Liao, Qiayuan and Haiderbhai, Mustafa and Holt, Samuel and Luo, Jing Yuan and Allshire, Arthur and Frey, Erik and Sreenath, Koushil and Kahrs, Lueder A. and Sferrazza, Carlo and Tassa, Yuval and Abbeel, Pieter},
  year = {2025},
  publisher = {GitHub},
  url = {https://github.com/google-deepmind/mujoco_playground}
}

License & Disclaimer

All content in this repository is licensed under the Apache License, Version 2.0. See LICENSE for details.

This is not an officially supported Google product.

About

An open-source library for sim and real robot demos on top of MuJoCo.

Resources

Stars

2.3k stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages