https://github.com/kevinzakka/mjc_viewer
A browser-based 3D viewer for MuJoCo
https://github.com/kevinzakka/mjc_viewer
browser mujoco robotics three-js visualizer
Last synced: 8 months ago
JSON representation
A browser-based 3D viewer for MuJoCo
- Host: GitHub
- URL: https://github.com/kevinzakka/mjc_viewer
- Owner: kevinzakka
- License: mit
- Created: 2022-06-26T02:15:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-07-03T15:57:09.000Z (over 3 years ago)
- Last Synced: 2025-02-01T22:42:52.108Z (9 months ago)
- Topics: browser, mujoco, robotics, three-js, visualizer
- Language: Python
- Homepage:
- Size: 392 KB
- Stars: 58
- Watchers: 4
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mjc_viewer
[![PyPI Python Version][pypi-versions-badge]][pypi]
[![PyPI version][pypi-badge]][pypi]
[](https://colab.research.google.com/github/kevinzakka/mjc_viewer/blob/master/tutorial.ipynb)[pypi-versions-badge]: https://img.shields.io/pypi/pyversions/mjc_viewer
[pypi-badge]: https://badge.fury.io/py/mjc_viewer.svg
[pypi]: https://pypi.org/project/mjc_viewer/`mjc_viewer` is a browser-based 3D viewer for [MuJoCo](https://mujoco.org/) that can render static trajectories from JSON.
## Installation
The recommended way to install this package is via [PyPI](https://pypi.org/project/mjc_viewer/):
```bash
pip install mjc_viewer
```## Usage
```python
import numpy as np
import mujoco
from mjc_viewer import Serializer, Trajectory# Load your MuJoCo model.
model = mujoco.MjModel.from_xml_path("humanoid.xml")
data = mujoco.MjData(model)# Create a Serializer and Trajectory instance.
serializer = Serializer(model)
trajectory = Trajectory(data)# Simulate for 3 seconds.
trajectory.reset()
while data.time < 3.0:
data.ctrl = np.random.uniform(*model.actuator_ctrlrange.T)
mujoco.mj_step(model, data)
trajectory.step()html = serializer.render(trajectory)
with open("traj.html", "w") as f:
f.write(html)
# You can now open traj.html in a browser or render in a notebook with
# `IPython.display.HTML`.
```## Todos
- [ ] Robustify XML parser
- [ ] Parse lights
- [ ] Add support for meshes and height fields
- [ ] Better default camera / light settings
- [ ] Figure out plane reflection
- [ ] Someday, make it interactive## Acknowledgements
`mjc_viewer` is heavily adapted from [Brax](https://github.com/google/brax)'s javascript viewer, full credit goes to its developers.