mjviser
Web-based MuJoCo viewer powered by viser.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires MuJoCo to be installed and buildable on your Python version; MuJoCo may not build on Python 3.14 yet.
- Low friction installation with a pure Python wheel.
- Active maintenance (last commit 2026-08-07) and steady adoption (159164 monthly downloads).
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions.
last release 2026-05-07 (99 days) · last repo commit 2026-08-07 · 240 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 159,164 downloads/mo, #10,706 on PyPI
Alternatives
Verify before relying
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()- 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.
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 on it.
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
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.
Requires MuJoCo to be installed and buildable on your Python version; MuJoCo may not build on Python 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()
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 packagesmujoconumpytrimeshviserpillow |
| 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 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: VisualizationTyping :: Typed |
Evidence: mjviser-0.0.14-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “mujoco simulation viewer”
- mjvisermjviser is a web-based viewer for MuJoCo physics simulations,…
- dm-controldm_control provides Python bindings to the MuJoCo physics engine and…
- mujocoMuJoCo is a physics simulation engine with Python bindings that…
Give your agent the search over MCP, or paste the wish link into any chat.
More Visualization packages
matplotlib creates static, animated, and interactive visualizations in Python, producing publication-quality figures in multiple formats for scripts, shells, web servers, and graphical interfaces.
Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Plotly is an interactive, browser-based graphing library that creates charts and visualizations from Python, rendering them as HTML that can be viewed in Jupyter notebooks, standalone files, or web applications.
Generates DOT language source code for graph structures and renders them using the Graphviz graph drawing software installed on your system.
Install it if you need to generate or render graphs from Python.
Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.
Leather is a lightweight Python charting library for quick, no-frills data visualization. It generates charts without requiring perfect styling or extensive configuration.
See also viser · mujoco-warp · sapien · newton · mujoco-mjx · mjlab · mujoco · robot_descriptions · mujoco-usd-converter · snakeviz