Skip to content

cooph2022/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, and meshcat.

Warning viser is in a working state, but under development. Large changes may be made, and backwards compatibility can't yet be guaranteed.

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.
  • Support for multiple panels and view-synchronized connections.

The viser.infra backend can also be used to build custom web applications (example: the 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.

Running 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/4_gui.py

After an example script is running, you can connect by navigating to the printed URL (default: http://localhost:8080).

Setup (client development)

This is only needed for client-side development. The automatically hosted viewer should be sufficient otherwise.

cd ./viser/viser/client
yarn
yarn start

Demos

Interactive SMPL-X Example

Screen.Recording.2023-03-29.at.9.56.33.PM.mov

Interactive NeRF rendering

(code not released)

Screen.Recording.2023-04-14.at.3.12.50.PM.mov

About

Web-based 3D visualization + Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 72.2%
  • TypeScript 27.1%
  • Other 0.7%