viser
3D visualization + Python
What it is and what it does
Viser is a 3D visualization library designed for computer vision and robotics workflows. It provides an API for rendering 3D primitives (meshes, frames, point clouds), building interactive GUIs with buttons, sliders, and text inputs, and handling scene interaction through clicks and transform gizmos. The library runs as a web-based server, making it accessible over SSH without requiring a local display—a significant advantage for remote development and headless systems.
The package combines rendering (powered by three.js) with a Python imperative API, letting you programmatically control the camera, add or remove scene elements, and respond to user interactions. Its ten runtime dependencies are mature, widely-used libraries: numpy for numerical work, trimesh for 3D geometry, websockets for client-server communication, and utilities like rich for terminal output and tqdm for progress bars.
Use it for:
- Visualizing 3D reconstructions, point clouds, or mesh outputs from computer vision pipelines over SSH
- Building interactive debugging interfaces for robotics simulations with real-time scene updates
- Creating web-accessible 3D viewers for collaborative annotation or inspection tasks
- Prototyping 3D applications with immediate visual feedback and GUI controls
- Rendering camera trajectories and geometric transforms for algorithm validation
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Viser is a Python library for 3D visualization and interactive GUI building, combining 3D scene rendering with web-based controls accessible over SSH.
Yes. Viser is actively maintained, has no known vulnerabilities, installs with low friction, and solves a genuine problem—accessible 3D visualization for Python workflows. The MIT license is permissive. Its 2733 stars and top-5000 PyPI position indicate real adoption. Install it if you need interactive 3D graphics with web-based access, especially for remote or headless environments.
Install
viser on PyPI
pip
pip install viseruv
uv add viserpoetry
poetry add viserInstalling viser
Before you install
Low friction: pure Python wheel with ten well-established runtime dependencies (imageio, numpy, requests, rich, trimesh, websockets, etc.). Active maintenance with recent release (72 days ago) and 2733 repository stars.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute viser freely provided you retain the license notice.
Quickstart
pip install viser
import viser
server = viser.ViserServer()
server.scene.add_frame("/frame", wxyz=[1, 0, 0, 0], position=[0, 0, 0])
print(server.get_url())
Verify before relying
- Whether the web-based client requires a specific browser version or JavaScript support level
- Performance characteristics when handling large 3D scenes or high-frequency updates
- SSH tunneling setup and latency impact on interactive responsiveness
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — imageio, msgspec, numpy, requests, rich, tqdm, trimesh, typing-extensions, websockets, zstandard |
| Maintenance | actively maintained — 72 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,030,446/month — #3,352 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: viser-1.0.30-py3-none-any.whl
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
meshcatmeshcat is a Python interface to a…
permissive · top 5,000 on PyPI
mjvisermjviser is a web-based viewer for MuJoCo…
permissive · top 15,000 on PyPI
vispyVisPy is a GPU-accelerated 2D/3D visualization…
permissive · top 5,000 on PyPI
pyrenderPyrender renders 3D scenes to images and…
permissive · top 5,000 on PyPI
open3d-cpuOpen3D-cpu provides CPU-based 3D data…
permissive · top 15,000 on PyPI
open3dOpen3D provides data structures and algorithms…
permissive · top 5,000 on PyPI
vtkVTK is a 3D graphics, image processing, and…
permissive · top 5,000 on PyPI
tensorflow-graphicsTensorFlow Graphics provides differentiable…
permissive · top 15,000 on PyPI
pythreejsPythreejs bridges Python and Three.js to render…
permissive · top 15,000 on PyPI
pyvistaPyVista provides a NumPy-native API for 3D…
permissive · top 5,000 on PyPI