3D visualization + Python
Project description
viser
pip install viser
• [
API Reference ]
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
https://user-images.githubusercontent.com/6992947/228734499-87d8a12a-df1a-4511-a4e0-0a46bd8532fd.mov
Interactive NeRF rendering
(code not released)
https://user-images.githubusercontent.com/6992947/232163875-ff788455-f074-4bd3-9154-5330b5ed4733.mov
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.