splat_analyzer
find 3d boundboxes in your splat
splat_analyzer: 3D boxes from gaussian splats
Point it at a splat file in ply or spz format, give it a plain-English prompt like chair or table, and get back 3D bounding boxes ready to use as interaction zones in WebXR, games, or robotics.
One file in, boxes out
Splat Analyzer takes a splat file in ply or spz format plus a plain-English prompt such as chair, table, or monitor, and returns a 3D bounding box with position and size for each object it finds. Those boxes are ready to be used as interaction zones in WebXR, games, or robotics.
Choosing how to run it
Run options depend on hardware. A Mac with Apple Silicon uses the local CLI with a Metal renderer. A PC or Linux box with an NVIDIA GPU uses the local CLI with a CUDA renderer. A GPU server can host the tool for other people. The renderer is picked automatically, with CUDA using gsplat and Apple Silicon using gsplat metal.
The pipeline
The pipeline is described in steps. Synthetic camera views with RGB and depth are rendered around the splat using a density-aware sampler. The prompt's objects are detected in every frame with the OWLv2 open-vocabulary model, which produces 2D boxes. Those 2D boxes are then lifted to 3D. Detection and the rest of the pipeline are identical across platforms.
Hosting it for others
Server mode hosts the tool for other people with a web upload form, a REST API, and an admin panel on an NVIDIA GPU box. Deployment installs Docker with the NVIDIA Container Toolkit, builds the image, and starts the app behind a Caddy HTTPS proxy. The first run compiles gsplat and takes 15 to 20 minutes, while later deploys take under a minute.
Formats and hardware
Supported formats are ply for standard gaussian splatting and spz for a compressed format. The README warns to check orientation first, since some exporters flip the vertical axis. Development was done on an NVIDIA L40S, and local boxes need at least 8 GB of VRAM, with 12 GB comfortable, 16 GB of RAM minimum, and CUDA 11.8 or 12.x.
Editorial conclusion
Detection is the same everywhere; only the renderer changes with the hardware. Metal on Apple Silicon, CUDA with gsplat on NVIDIA, or a hosted server for everyone else.
Community notes