kaolin.visualize.dash

Note

🌱 This toolkit is young and evolving. The high-level helpers are convenience shortcuts: when they do not fit your use case, drop down to plain Plotly Dash / tornado and use the lower-level pieces directly.

Overview

kaolin.visualize.dash is a toolkit for building interactive 3D/2D web applications with rich client-server communication on top of Plotly Dash. It is designed for PyTorch workflows where heavy work (rendering, inference, optimization) runs server-side while the browser handles interactive mouse / touch / keyboard input and lightweight client-side logic.

The centerpiece is KaolinViewer, a React component exposed to Python. A viewer is composed of stacked, aligned layers (canvas, SVG, …) and configured with behaviors that map user interactions to actions and to custom binary client-server messages over WebSockets. Around the viewer, helpers auto-generate UI controls from typed Python sources and wire up a complete Dash application layout.

How the pieces fit together:

Example applications

End-to-end sample apps that exercise this toolkit live under kaolin/app/ in the source tree. They are the best starting point for seeing the viewer, behaviors, and server-side rendering working together:

  • kaolin/app/act_splat – starter project: server-side Gaussian splat rendering with client-side splat control.

  • kaolin/app/segment – interactive SAM2 point-prompt segmentation of Gaussian splats, combining server-side rendering with 2D selection.

  • kaolin/app/splat_inpaint – server-side 2D diffusion inpainting baked back into a 3D Gaussian splat scene via per-Gaussian color optimization.

  • kaolin/app/mesh_edit – server-side mesh rendering and editing (Axolotl3D) with 2D inpainting.

  • kaolin/app/physics – Simplicits-based interactive physics tools.

A minimal, self-contained demo combining a viewer with WebSocket communication is in kaolin/app/dash_ws_combo_main.py.

Detailed documentation