Skip to content

nerfstudio-project/viser

Repository files navigation

viser logo viser viser logo

pyright mypy typescript-compile codecov

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]
# Clone the repository.
git clone https://github.com/nerfstudio-project/viser.git

# Install the package.
# You can also install via pip: `pip install viser`.
cd ./viser
pip install -e .[examples]

# Run an example.
python ./examples/02_gui.py

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

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

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.