Skip to content

Software

MuJoCo Playground

By Google DeepMind, from github.com/google-deepmind/mujoco_playground (opens in a new tab)

  • Humanoids and robot learning
  • Framework
  • Apache-2.0

A GPU-accelerated suite of robot learning environments built on MuJoCo MJX, covering classic control, locomotion, manipulation and vision tasks for research and sim-to-real work.

Facts

GitHub stars
2,272read on 6 Nov 2026
Last update
6 Nov 2026Newest commit on main
Maintenance
Activea commit in the last 90 days
Difficulty
Advanced
Hardware it needs, as the project states it
Python 3.10 or later is required.

Checked on GitHub on 6 Nov 2026.

Licenses

Code
Apache-2.0 (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (Apache-2.0) at commit d5e6f28 (opens in a new tab), on 6 Nov 2026.

Commercial use
Yes

Overview

What it does: Robotheca's summary

  • Provides classic control environments taken from dm_control.
  • Includes quadruped and bipedal locomotion environments.
  • Includes non-prehensile and dexterous manipulation environments.
  • Supports vision-based tasks through the MJWarp Batch Renderer.
  • Can train with either the MuJoCo MJX JAX implementation or MuJoCo Warp.
  • Training is launched from the command line, for example with train-jax-ppo, and can be visualized with rscope.

Written by Robotheca from the project's README (opens in a new tab) at commit d59156e, not by its creator.

The README

The creator's own README, copied as written: README.md by Google DeepMind, at commit d5e6f28, under Apache-2.0 (opens in a new tab). The original on GitHub (opens in a new tab).

Read the README here

MuJoCo Playground

(opens in a new tab) (opens in a new tab) Image: Documentation Status (opens in a new tab) (opens in a new tab) (opens in a new tab) Image: Banner for playground (opens in a new tab)

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

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

Whole body motion tracking (opens in a new tab) Image: SO-101 Simulation Teleoperation Demo (opens in a new tab) (opens in a new tab)

Sim teleoperation (opens in a new tab)

Real teleoperation (opens in a new tab) Image: SO-101 System Identification Rollout (opens in a new tab) (opens in a new tab)

System identification (opens in a new tab)

Sim2Real and interactive viewer (opens in a new tab) Image: YAM Agentic Tabletop Manipulation (opens in a new tab) (opens in a new tab)

Agentic manipulation (opens in a new tab)

[!NOTE] Looking for the original RSS 2025 JAX/MJX environments? They remain available under rss2025 (opens in a new tab).

Installation

Clone the repository and sync dependencies with uv (opens in a new tab):

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 (opens in a new tab):

# 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 (opens in a new tab) and deploy to the real arm (opens in a new tab):

# 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 (opens in a new tab) 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 (opens in a new tab)).

[!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 (opens in a new tab) 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 (opens in a new tab)), 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 (opens in a new tab) for details.

This is not an officially supported Google product.

Files and versions

Facts read at commit d5e6f28

Robotheca read the repository at two versions: the summary at d59156e and the facts and the README at d5e6f28 (read on 6 Nov 2026).

Robotheca never hosts the code: each link goes to the creator's own page.

Use it

How to install it, in the creator's words: The project's website (opens in a new tab)

Robotheca doesn't review code. Read it before running it.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.