SimView
SimView is a THREE.js-based 3D visualizer for physics simulations. It lets you explore and compare multiple simulation scenarios ("batches") side by side in a shared environment, defined either through a portable JSON format or a Python API — all served over HTTP/WebSocket to a web-based interface powered by Three.js.
Two independent surfaces
SimView is split into two things you can use independently:
- Viewing an existing simulation JSON file — needs only the base install
(
fastapi,uvicorn,orjson, ...). - Authoring simulations from Python (
simview.scene/state/model) — needs theauthoringextra (torch,einops,numpy).
If you only need to open a .json/.json.gz scene someone else produced, you
never need torch installed.
Features
- Batched simulations — visualize multiple simulation instances side-by-side, sharing terrain where possible.
- Interactive UI — web-based controls for playback, camera, and per-body data inspection.
- Python API — build scenes incrementally or stream live state as a simulation runs.
- Portable JSON format — load/save simulation data as a single JSON document (optionally gzip-compressed), with a documented wire format for interop with other languages.
Where to go next
| I want to... | Go to |
|---|---|
| Try it in the browser right now, no install | Live Demo |
| Install SimView and view/author my first scene | Quick Start & Installation |
Use the simview CLI (inspect, query terrain, diff batches, render, merge) |
CLI Utilities |
| Stream simulation state live as it runs | Live Streaming |
| Use SimView from a Jupyter notebook | Jupyter / Non-blocking Viewing |
| Learn the viewer's keyboard shortcuts and panels | Visualization Controls |
| Look up a Python class or function | API Reference |
| Understand how the pieces fit together, or the JSON wire format | Developer Guide |
SimView is distributed under the BSD 3-Clause License.