Skip to content

heheyas/viser

 
 

Repository files navigation

viser

pip install viser   •   [ API Reference ]

pyright mypy typescript pypi


viser is a library for interactive 3D visualization + Python, inspired by tools like Pangolin, rviz, meshcat, and Gradio.

As a standalone visualization tool, viser features include:

  • Web interface for easy use on remote machines.
  • Python API for sending 3D primitives to the browser.
  • Python-configurable inputs: buttons, checkboxes, text inputs, sliders, dropdowns, gizmos.
  • A meshcat and tf-inspired coordinate frame tree.

The viser.infra backend can also be used to build custom web applications (example: the original Nerfstudio viewer). It supports:

  • Websocket / HTTP server management, on a shared port.
  • Asynchronous server/client communication infrastructure.
  • Client state persistence logic.
  • Typed serialization; synchronization between Python dataclass and TypeScript interfaces.

Installation

You can install viser with pip:

pip install viser

To run 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 .

# Run an example.
pip install -e .[examples]
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_smplx_visualizer.py

About

Web-based 3D visualization + Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 69.1%
  • TypeScript 30.4%
  • Other 0.5%