3D visualization interface for spatial data using Viam's APIs — frame systems, geometries, point clouds, drawings — for motion-related monitoring, testing, and debugging.
📚 viamrobotics.github.io/visualization is our guide to a few popular use cases. It covers:
- Running locally — set up the app and drive it from Go via
client/api. - Embedding
<Visualizer />— drop the visualizer into your own Svelte app. - Implementing WorldStateStoreService — produce
Transforms for a Viam WorldStateStoreService module withdraw. - A live playground rendering a snapshot.
make setup # one-time: install Node 22, pnpm, Go, buf, project deps
make up # http://localhost:5173For manual setup, machine configs, multiple instances, and troubleshooting see the local-usage guide.
Run the dev server with HMR:
pnpm devSee CLAUDE.md for contributor conventions.
The visualizer also builds as a desktop app with Tauri v2. It wraps the same static build the browser gets and does not bundle the Go draw server, so the draw-service panel reads offline until make up starts one. You need the Tauri system dependencies and Rust 1.90 or newer.
pnpm tauri:dev # dev server in a native window, with HMR
pnpm tauri:build # .app and .dmg under src-tauri/target/release/bundle/The bundle version follows version in package.json.
The visualizer exposes a cameraControls object on window. Open the browser console and call methods on it to move the camera or tweak its settings at runtime. Full API: https://github.com/yomotsu/camera-controls#properties.