viser
is a library for interactive 3D visualization in Python.
Features include:
- API for visualizing 3D primitives
- GUI building blocks: buttons, checkboxes, text inputs, sliders, etc.
- Scene interaction tools (clicks, selection, transform gizmos)
- Programmatic camera control and rendering
- An entirely web-based client, for easy use over SSH!
For usage and API reference, see our documentation.
You can install viser
with pip
:
pip install viser
To include example dependencies:
pip install viser[examples]
After an example script is running, you can connect by navigating to the printed
URL (default: http://localhost:8080
).
See also: our development docs.
Point cloud visualization
record3d.mp4
Source: ./examples/07_record3d_visualizer.py
Gaussian splatting visualization
gaussian_splat.mp4
Source: WangFeng18/3d-gaussian-splatting and heheyas/gaussian_splatting_3d.
SMPLX visualizer
smpl_example.mp4
Source: ./example/08_smpl_visualizer.py
viser
is heavily inspired by packages like
Pangolin,
rviz,
meshcat, and
Gradio.
It's made possible by several open-source projects.
The web client is implemented using React, with:
- Vite / Rollup for bundling
- three.js via react-three-fiber and drei
- Mantine for UI components
- zustand for state management
- vanilla-extract for stylesheets
The Python API communicates via msgpack and websockets.