- Python 63.3%
- JavaScript 15.2%
- HTML 11.8%
- CSS 8.1%
- Shell 1.6%
Sub-project 1 of 4 in the Workflow-Rundumblick. A capture now has a derived lifecycle and retention hangs off it: the review sign-off reclaims that capture's working dirs, an unreviewed capture is reclaimed after 30 days, outputs/ duplication is deprecated, the compressed SOG is kept and reused, and migrate-storage brings the existing backlog onto the policy. Verified against the maintainer's real tree: 27,8 GB -> 13,1 GB, with the ten orphaned scenes, the three failed captures and rescue/clips deliberately untouched. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| embed | ||
| pipeline | ||
| scripts | ||
| viewer | ||
| .gitignore | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| CITATION.cff | ||
| CLA.md | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| LICENSING.md | ||
| README.md | ||
| SECURITY.md | ||
autosplat
autosplat turns ordinary video into a 3D Gaussian Splat you can fly through in the browser — captured, reconstructed and rendered entirely on your own machine. No cloud, no GPU server, no upload.
A trained splat flown through in the browser — the max_strasse drone pass,
reconstructed automatically by the pipeline's auto-bisection rescue (490/493 cameras, 99.4 %).
▶ Try the live viewer ·
▶ Full fly-through (YouTube) ·
MP4 ·
WebM
Showcase
![]() |
![]() |
![]() |
| Herkules — splat in the viewer | Wasserturm — splat in the viewer | Pipeline WebUI — mission control |
Two halves, one repo
autosplat is one product in two parts that share a single file format — the pipeline exports compressed splats, the viewer loads them. That contract is why they live in one repo: cross-cutting changes land in one atomic commit, on one release line.
| Path | Component | What it is |
|---|---|---|
pipeline/ |
Capture → splat pipeline | Drone / handheld video → trained 3D Gaussian Splat. Python · uv · COLMAP · Brush (WebGPU). Apple-Silicon-only, macOS 15+. → pipeline/README.md |
embed/ |
Embeddable splat viewer | Minimal self-contained iframe page (index.html?src=…) with click-to-load gate, auto-framing and a fully vendored PlayCanvas engine — zero external requests. Powers the share bundles. |
viewer/ |
Splat viewer PWA (parked development viewer) | Static, installable web app that loads and renders .ply / .sog splats locally — walking mode, collision editor and landing page live here. Vanilla HTML/CSS/JS, no build step. → viewer/README.md |
video ──▶ pipeline/ ──exports .ply / .sog──▶ embed/ · viewer/ ──▶ fly through it
(COLMAP → Brush → compress) (PlayCanvas / WebGL2)
Quickstart
# Pipeline — Apple Silicon, macOS 15+
cd pipeline
uv run autosplat doctor # check ffmpeg / colmap / brush
uv run autosplat <your-video>.mp4 # video → trained splat
# Viewer — any modern browser
cd viewer
./serve.sh # → http://localhost:8123/
The published viewer is live on Codeberg Pages:
https://jkaindl.codeberg.page/autosplat/ — drop in a .ply, orbit it, or
▶ walk through it in first-person.
Each component documents its own deep setup, CLI, and configuration in its own README — this page is just the map.
Develop & test
cd pipeline && uv run pytest -q # 448 pipeline unit tests
cd viewer && ./tests/run.sh # 77 viewer unit tests (+ opt-in e2e)
Publish the viewer to Codeberg Pages (subtree split of viewer/ → pages branch):
scripts/deploy-pages.sh
Repo layout & versioning
autosplat/
├─ README.md · CHANGELOG.md · AGENTS.md product level (this repo)
├─ LICENSE · LICENSING.md · CLA.md · SECURITY.md · CITATION.cff · CONTRIBUTING.md
├─ scripts/deploy-pages.sh viewer → Codeberg Pages
├─ pipeline/ capture→splat pipeline (own README/CHANGELOG)
└─ viewer/ splat viewer PWA (own README/CHANGELOG)
One shared version line starting at v1.12.0 covers both halves. Pre-merge
history is preserved verbatim — historical tags are namespaced pipeline-v* /
viewer-v*, and git log --follow reaches the full history inside each
subfolder. Per-component release notes:
pipeline/CHANGELOG.md ·
viewer/CHANGELOG.md · product-level
CHANGELOG.md.
License
AGPL-3.0-or-later, with a dual-licensing / CLA model — see
LICENSING.md and CLA.md. Need terms other than AGPL
(a closed-source product, an App Store build) or a commissioned capture? →
code@jkaindl.de.
Moved here in 2026-06. Previously two repos —
video-to-3d-gaussian-splat(pipeline) andautosplat-viewer(viewer), now archived. This monorepo is the canonical home; it is also mirrored to github.com/johannes-kaindl/autosplat.


