autosplat — local video → 3D Gaussian Splat pipeline + browser splat viewer (Apple Silicon, AGPL-3.0) https://jkaindl.codeberg.page/autosplat/
  • Python 63.3%
  • JavaScript 15.2%
  • HTML 11.8%
  • CSS 8.1%
  • Shell 1.6%
Find a file
Johannes Kaindl 2282cf4ce0
chore(release): bump to v1.16.0 (capture lifecycle & storage retention)
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>
2026-07-29 16:28:01 +02:00
embed docs(portability): mark maintainer-local paths in AGENTS.md, fix quickstart path 2026-07-19 14:08:40 +02:00
pipeline chore(release): bump to v1.16.0 (capture lifecycle & storage retention) 2026-07-29 16:28:01 +02:00
scripts feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
viewer chore(release): bump to v1.16.0 (capture lifecycle & storage retention) 2026-07-29 16:28:01 +02:00
.gitignore feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
AGENTS.md docs(portability): mark maintainer-local paths in AGENTS.md, fix quickstart path 2026-07-19 14:08:40 +02:00
CHANGELOG.md chore(release): bump to v1.16.0 (capture lifecycle & storage retention) 2026-07-29 16:28:01 +02:00
CITATION.cff feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
CLA.md feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
CONTRIBUTING.md docs(repo): restliche Alt-Repo-Referenzen → jkaindl/autosplat (live/AGPL + Meta) 2026-06-16 13:10:48 +02:00
LICENSE feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
LICENSING.md feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00
README.md docs(readme): add embed/ to component table, mark viewer/ as parked dev viewer 2026-07-15 12:51:24 +02:00
SECURITY.md feat(monorepo): Produkt-Root für v1.12.0 (README · CHANGELOG · AGENTS · LICENSE-Set · deploy-pages) 2026-06-15 23:57:48 +02:00

autosplat

Release Live viewer License: AGPL v3

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.

Animated fly-through of a trained 3D Gaussian Splat — Augsburg's old-town street and the St. Ulrich und Afra basilica, reconstructed automatically from a single drone pass and rendered in the browser
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

3D Gaussian Splat of the Herkules monument in Kassel, rendered live in the autosplat viewer 3D Gaussian Splat of a brick water tower, rendered live in the autosplat viewer The autosplat pipeline WebUI dashboard showing capture stats, the active Brush training job, and recent captures with status badges
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) and autosplat-viewer (viewer), now archived. This monorepo is the canonical home; it is also mirrored to github.com/johannes-kaindl/autosplat.