jaskirat1616/Splatline
jaskirat1616/Splatline has 165 GitHub stars and 9 forks. GitHot measured 0 in 7 days. Last checked 2026-11-11 03:18 UTC. Last push 2026-07-09.
Convert 2D videos and photos into interactive 3D scenes using Gaussian splatting backends (VGGT, LongSplat, DepthSplat, SHARP, TripoSplat), Rerun, and the SuperSplat editor.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalSplatline
Convert 2D videos and photos into interactive 3D scenes using pluggable Gaussian-splatting backends, Rerun, and the SuperSplat editor. MIT-licensed. Runs on macOS — no CUDA required.
v2.0.0 adds three new reconstruction backends (VGGT, DepthSplat, LongSplat) alongside SHARP and TripoSplat, a tiered human motion pipeline, an Electron desktop player with true Gaussian splat rendering, and a FastAPI + SSE backend. See CHANGELOG.md.
Demo

Download the full demo video | Thumbnail
Quick Start
# Install
pip install -r requirements.txt
pip install sharp
npm install # for the Electron player
# Convert a video to 3D Gaussian splats
python run_video_3d.py
# View in Rerun (point cloud or solid mesh)
python run_video_3d.py # point cloud mode
python run_video_3d.py solid # solid mesh mode
# Or view in the Electron desktop player (true splat rendering)
python run_video_electron.py --output-dir output_grok_3d
# Or in the browser-based SuperSplat editor
python run_video_splat.py --output-dir output_grok_3d
The SHARP model (~2.5GB) downloads automatically on first run.
3D viewer controls: Left-drag to rotate, right-drag to pan, scroll to zoom, double-click to reset.
Reconstruction Backends
Five backends, swappable with --splat-backend <name>:
| Backend | License | Type | Key Strength |
|---|---|---|---|
| SHARP (Apple) | Non-commercial | Per-frame | Fast single-image 3DGS (v1 default) |
| TripoSplat | MIT | Per-frame | Commercial-safe single-image 3DGS |
| VGGT (CVPR 2025 Best Paper) | MIT code / CC-BY-NC checkpoint | Video-native | Camera poses + dense depth in <1s. Replaces COLMAP |
| DepthSplat (CVPR 2025) | MIT | Video-native | Multi-view depth-conditioned splatting |
| LongSplat (ICCV 2025) | NVlabs | Video-native | Single coherent scene with temporal consistency — no flickering |
python run_video_3d.py --splat-backend longsplat
See docs/SPLAT_MODELS.md for details.
What v2 fixes
| v1 problem | v2 solution |
|---|---|
| Per-frame splats → flickering | LongSplat: one coherent scene |
| No camera poses (COLMAP needed) | VGGT: feed-forward poses in <1s |
| Single-image only | DepthSplat: 2+ views for geometric consistency |
| No global geometry | VGGT: dense depth + point cloud from whole video |
Human Pipeline
Tiered human reconstruction with --human-tier skeleton|mesh|both:
- Skeleton: MotionBERT (ICCV 2023) — temporal 3D pose lifting across 243 frames, fused with splat depth for metric scale
- Mesh: HMR 2.0 / 4DHumans — SMPL body mesh recovery + PHALP identity tracking
- 2D detection: YOLO26-pose (default) or RTMPose (Apache-2.0)
See docs/ATHLETE_TWIN.md.
Viewers
Electron Desktop Player (run_video_electron.py)
Native desktop app with true Gaussian splat rendering via the SuperSplat (PlayCanvas) engine:
python run_video_electron.py --output-dir output_grok_3d
- GPU-accelerated splat compositing (not point clouds)
- 2D source video synced side-by-side at native 24fps
- Smooth timeline playback with on-demand frame loading and preloading
- Flash-free frame swapping (overlapping entity destruction)
- Voxel-grid + opacity subsampling to 600K splats for smooth real-time playback
Requirements: Node.js, npm install, pre-existing 3D output.
SuperSplat Web Viewer (run_video_splat.py)
Same rendering engine, runs in a browser:
python run_video_splat.py --output-dir output_grok_3d
Rerun Viewers
| Script | Description |
|---|---|
run_video_3d.py |
Video → 3D pipeline + Rerun viewer (point cloud or solid mesh) |
run_image_3d.py |
Image → high-res solid 3D mesh (up to 11M vertices) |
run_slam_3d.py |
Monocular SLAM 3D mapping with camera trajectory |
run_splat_viewer.py |
View any PLY as splats in Rerun |
# Image to 3D mesh
python run_image_3d.py photo.jpg --res 1024
# SLAM mapping
python run_slam_3d.py video.mp4
# View a PLY file
python run_splat_viewer.py output_grok_3d/gaussians/frame_000000.ply
FastAPI Backend
python ui/server.py
FastAPI + SSE backend with real-time progress streaming, Pydantic validation, and OpenAPI docs at /docs. Endpoints: /api/config, /api/backends, /api/tiers, /api/jobs/{id}/stream (SSE).
Project Structure
splatline/
├── run_video_3d.py # Video → 3D (point cloud or solid mesh)
├── run_image_3d.py # Image → high-res solid 3D mesh
├── run_slam_3d.py # Monocular SLAM 3D mapping
├── run_splat_viewer.py # View any PLY as splats in Rerun
├── run_video_splat.py # SuperSplat editor video viewer (web)
├── run_video_electron.py # Electron desktop video player
├── ui/server.py # FastAPI + SSE backend
├── electron/ # Electron app (main, video-main, preload)
├── src/ # React + Vite frontend
├── utils/
│ ├── backends/ # VGGT, DepthSplat, LongSplat backends
│ ├── human/ # MotionBERT, HMR 2.0, PHALP tracking
│ ├── splat_models.py # Backend registry
│ └── ... # Navigation, pathfinding, visualization
├── scripts/ # v1 converters, visualizers, creative tools
├── docs/ # SPLAT_MODELS.md, ATHLETE_TWIN.md
├── package.json # Node.js / Electron config
└── requirements.txt # Python dependencies
Setup
Python
pip install -r requirements.txt
pip install sharp # Apple's 3DGS model (auto-downloads ~2.5GB on first run)
Or install SHARP from source: apple/ml-sharp
Electron (optional, for desktop player)
npm install
Verify
python -c "import rerun; import numpy; import torch; import sharp; print('OK')"
System Requirements
- Python 3.8+, Node.js (for Electron)
- macOS, Linux, or Windows
- 8GB RAM minimum (16GB recommended)
- GPU optional: CUDA, MPS (Apple Silicon), or CPU
Troubleshooting
ModuleNotFoundError: No module named 'sharp'
→ pip install sharp or install from source
Rerun viewer is blank / version mismatch
→ pip install rerun-sdk==0.23.1 to match your viewer, or update the viewer to match the SDK.
Out of memory during processing
→ Use --max-frames 10 or lower resolution videos.
GPU not detected
→ CUDA: pip install torch --index-url https://download.pytorch.org/whl/cu118
→ Apple Silicon: MPS is automatic. Use mps device.
→ CPU: python run_video_3d.py --device cpu (slower but works)
Credits
- Rerun — visualization SDK (Apache-2.0)
- Apple ML-SHARP — monocular 3DGS model
- SuperSplat — Gaussian splat editor (PlayCanvas engine)
- VGGT — geometry foundation model
- DepthSplat — multi-view depth-conditioned splatting
- LongSplat — video-native coherent 3DGS
- MotionBERT — temporal 3D pose lifting
- HMR 2.0 — SMPL body mesh recovery
See NOTICE.md for the full third-party license breakdown.
License
Splatline is MIT-licensed. Some backends have different licenses:
- SHARP — non-commercial research only. Use TripoSplat (MIT) for commercial work.
- VGGT checkpoint — CC-BY-NC (code is MIT)
- LongSplat — check NVlabs terms before commercial use
- YOLO26-pose — AGPL-3.0 (local desktop use is fine; networked services need a commercial license)
See NOTICE.md for details.
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,527 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,396 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,942 starsmrdoob/three.js
JavaScript 3D Library.
117,983 stars