viser
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.
Installation
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.
Examples
Point cloud visualization
https://github.com/nerfstudio-project/viser/assets/6992947/df35c6ee-78a3-43ad-a2c7-1dddf83f7458
Source: ./examples/07_record3d_visualizer.py
Gaussian splatting visualization
https://github.com/nerfstudio-project/viser/assets/6992947/c51b4871-6cc8-4987-8751-2bf186bcb1ae
Source:
WangFeng18/3d-gaussian-splatting
and
heheyas/gaussian_splatting_3d.
SMPLX visualizer
https://github.com/nerfstudio-project/viser/assets/6992947/78ba0e09-612d-4678-abf3-beaeeffddb01
Source: ./example/08_smpl_visualizer.py
Acknowledgements
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:
The Python API communicates via msgpack and websockets.