Skip to content

Geddart/Splatpipe

Repository files navigation

Splatpipe

Splatpipe

CLI-first Gaussian splatting pipeline with web dashboard

Python 3.11+ License Windows Tests


Takes COLMAP photogrammetry data through a complete pipeline: auto-cleantraining (Postshot / LichtFeld Studio) → SuperSplat reviewPlayCanvas LOD outputexport / 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.

Quick Start

git clone https://github.com/Geddart/Splatpipe.git
cd splatpipe
pip install -e ".[web]"
splatpipe web

Open http://localhost:8000 — first-run setup guides you through:

  1. Set your projects folder — where project data lives
  2. Auto-detect tools — finds Postshot, COLMAP, LichtFeld Studio, splat-transform on your system
  3. 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.

Pipeline

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.

Web Dashboard

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

CLI Reference

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

Requirements

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.

Project Structure

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)

Development

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.

About

A pipeline for creating and serving large Gaussian Splatting models

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors