CLI-first Gaussian splatting pipeline with web dashboard
Takes COLMAP photogrammetry data through a complete pipeline: auto-clean → training (Postshot / LichtFeld Studio) → SuperSplat review → PlayCanvas LOD output → export / deploy
Every operation is a CLI command. The web dashboard (FastAPI + HTMX + DaisyUI) sits on top and calls the same functions — so you can work from the terminal or the browser.
git clone https://github.com/Geddart/Splatpipe.git
cd splatpipe
pip install -e ".[web]"
splatpipe webOpen http://localhost:8000 — first-run setup guides you through:
- Set your projects folder — where project data lives
- Auto-detect tools — finds Postshot, COLMAP, LichtFeld Studio, splat-transform on your system
- Create your first project — point it at a COLMAP export and go
CLI-only? Skip the web dashboard and use
splatpipe init <colmap_dir>instead.
COLMAP data ──► Clean ──► Train ──► Review ──► Assemble ──► Deploy
│ │ │ │ │
Outlier Postshot SuperSplat splat- Local
removal + or manual transform folder or
KD-tree LichtFeld cleanup LOD meta Bunny CDN
filtering Studio + SOG upload
| Step | What it does |
|---|---|
| Clean | Remove outlier cameras, KD-tree point filtering, POINTS2D reference cleanup |
| Train | Gaussian splat training at multiple LOD levels (e.g. 20M, 10M, 5M, 3M, 1.5M) |
| Review | Open trained PLYs in SuperSplat for manual floater removal |
| Assemble | Build PlayCanvas LOD streaming format (lod-meta.json + SOG chunks) |
| Export | Export to local folder or upload to Bunny CDN with progress tracking |
Each step is independent — skip what you don't need with per-project step toggles.
The dashboard lets you manage everything from the browser:
- Settings — editable config form, auto-detect tool paths, system dependency check
- Projects — create projects with COLMAP validation, choose trainer & LOD levels
- Step toggles — enable/disable pipeline steps per project (e.g. skip clean for pre-cleaned data)
- Live execution — run any step with real-time SSE progress streaming
- First-run wizard — guided setup on fresh install
splatpipe init <colmap_dir> # Create project from COLMAP data
splatpipe clean # Clean COLMAP data (outliers + KD-tree)
splatpipe train # Train splats at all LOD levels
splatpipe assemble # Build LOD streaming output
splatpipe export --mode folder # Export to local folder (or --mode cdn)
splatpipe status # Show project state
splatpipe run # Run full pipeline
splatpipe web # Launch web dashboard| Tool | Purpose | Install |
|---|---|---|
| Python 3.11+ | Runtime | python.org |
| Postshot CLI | Gaussian splat training | jawset.com |
| LichtFeld Studio | Alternative open-source trainer | github.com/MrNeRF |
| Node.js | For splat-transform LOD assembly |
nodejs.org |
Input data: Splatpipe expects COLMAP export folders as input. You need to run photogrammetry (e.g. with COLMAP or Reality Capture) before using Splatpipe.
The web dashboard auto-detects tool paths on first run — no manual config needed if tools are installed in default locations.
Each project gets a clean folder layout:
MyProject/
├── state.json # Project state & step results
├── project.toml # Per-project config overrides
├── 01_colmap_source/ # Link to COLMAP data
├── 02_colmap_clean/ # Cleaned COLMAP + debug JSON
├── 03_training/ # Per-LOD training outputs
├── 04_review/ # Human-cleaned PLYs
└── 05_output/ # Final LOD output (lod-meta.json + SOG chunks)
pip install -e ".[dev]" # Install with dev dependencies
pytest tests/ -v # Run all 362 tests (~16s)Key design principle: debug data over fallbacks. No try/except — every step writes a _debug.json with full command, stdout/stderr, file stats, metrics, timing, and environment. When something fails, the debug JSON tells you exactly why.
