mjviser
Web-based MuJoCo viewer powered by viser.
What it is and what it does
mjviser wraps MuJoCo physics simulations in a web-based viewer built on Viser, letting you visualize and interact with robot models through a browser. It runs as a standalone command-line tool (e.g., `mjviser model.xml`) or as a Python API that you embed in your own simulation loop. The viewer provides simulation playback controls, joint and actuator sliders, contact and force visualization, camera tracking, and keyframes—most of what the native MuJoCo viewer offers, but accessible over the web.
The package depends on mujoco, numpy, trimesh, viser, and pillow. It supports Python 3.10–3.14 and is actively maintained. You can extend it with custom callbacks for simulation steps, rendering, and reset logic, or use the underlying ViserMujocoScene directly to add arbitrary Viser GUI elements and overlays.
Use it for:
- Visualize and debug MuJoCo robot models in a web browser without native GUI dependencies.
- Build interactive robotics dashboards with custom controls and overlays using Viser's GUI framework.
- Playback and scrub through recorded simulation trajectories with timeline and speed controls.
- Run parallel multi-environment simulations and view them side-by-side in the browser.
- Prototype robot controllers with live joint sliders and contact visualization for real-time feedback.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
mjviser is a web-based viewer for MuJoCo physics simulations, providing an interactive browser interface with simulation controls, joint sliders, contact visualization, and camera tracking.
Yes. mjviser is actively maintained, has no known vulnerabilities, installs with low friction, and fills a clear niche: web-based MuJoCo visualization without native GUI setup. It's well-suited for robotics prototyping, debugging, and dashboards. The only caveat is that mouse interaction (body clicking/dragging) is not yet supported and requires upstream Viser changes.
Install
mjviser on PyPI
pip
pip install mjviseruv
uv add mjviserpoetry
poetry add mjviserInstalling mjviser
Before you install
Low friction installation with a pure Python wheel. Active maintenance (last commit 2026-08-07) and steady adoption (159164 monthly downloads). Supports Python 3.10 through 3.14, though MuJoCo may not build on 3.14 yet.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
Quickstart
pip install mjviser
import mujoco
from mjviser import Viewer
model = mujoco.MjModel.from_xml_path("robot.xml")
data = mujoco.MjData(model)
Viewer(model, data).run()
Requires MuJoCo to be installed and buildable on your Python version; MuJoCo may not build on Python 3.14 yet.
Verify before relying
- Whether mouse interaction (body clicking/dragging) and keyboard callbacks are planned or require upstream Viser changes.
- Performance characteristics with large models or multi-environment simulations beyond the provided examples.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<3.15,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — mujoco, numpy, trimesh, viser, pillow |
| Maintenance | actively maintained — 99 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 159,164/month — #10,706 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mjviser-0.0.14-py3-none-any.whl
Keywords: mujoco, viser, visualization, robotics, simulation
Tags
More Visualization packages
matplotlib creates static, animated, and…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
graphvizGenerates DOT language source code for graph…
permissive · top 1,000 on PyPI
streamlitStreamlit transforms Python scripts into…
permissive · top 1,000 on PyPI
leatherLeather is a lightweight Python charting…
permissive · top 1,000 on PyPI
viserViser is a Python library for 3D visualization…
permissive · top 5,000 on PyPI
mujoco-warpGPU-accelerated physics simulation for robotics…
permissive · top 15,000 on PyPI
sapienSAPIEN is a physics-rich simulation environment…
permissive · top 15,000 on PyPI
newtonNewton is a GPU-accelerated physics simulation…
permissive · top 15,000 on PyPI
mujoco-mjxA JAX-based reimplementation of the MuJoCo…
permissive · top 15,000 on PyPI
mjlabmjlab provides a GPU-accelerated reinforcement…
permissive · top 15,000 on PyPI
mujocoMuJoCo is a physics simulation engine with…
permissive · top 5,000 on PyPI
robot_descriptionsDownloads and caches open-source robot…
permissive · top 15,000 on PyPI
mujoco-usd-converterConverts MuJoCo MJCF robot model files into…
permissive · top 15,000 on PyPI
snakevizSnakeViz is a web-based viewer for Python…
permissive · top 5,000 on PyPI