• v0.9.0 4a56031c7e

    jkaindl released this 2026-05-15 18:35:15 +00:00 | 150 commits to main since this release

    First public release of video-to-3d-gaussian-splat — a local 3D Gaussian-Splat pipeline for Mac Silicon. Pre-1.0, CLI-only. WebUI as v1.0.0.

    Added — Phases 0–9.7 (complete scope)

    • Phase 0 — Manual baseline: first end-to-end run establishing the full pipeline manually (ffmpeg → COLMAP → Brush → PLY). Calibration data for blur threshold, SfM parameters, and training steps.
    • Phase 1 — CLI MVP: autosplat process <video> runs the complete pipeline in one command. 15 Python modules under src/autosplat/.
    • Phase 2 — Watch-folder daemon: autosplat watch <inbox> with persistent state.json, atomic queue operations, crash-recovery on restart.
    • Phase 3 — Quality-gate + adaptive retry: gate before Brush training checks minimum camera count and point density. Automatic retry with exhaustive COLMAP matcher hint on first failure.
    • Phase 4 — Obsidian capture-note auto-generation: opt-in via [obsidian].enabled = true. Writes structured frontmatter note per capture. Preserves user-added content via marker-based tail split.
    • Phase 5 — Compress stage: autosplat compress <ply>, SOG + SPZ + ksplat output via splat-transform npx backend. Real-world compression ratios: 82–91% size reduction.
    • Phase 6 — Spec-mandate sweep: preflight checks for all binary deps, OOM retry logic, skipped-frames guard, PLY min-size gate. Closes §9.2 + §5 of spec.
    • Phase 7 — Pipeline visibility: Rich progress bar with wall-time-based ETA during Brush training. autosplat status table for queue + history.
    • Phase 8 — Obsidian polish: vault-agnostic config defaults, user frontmatter key preservation across pipeline re-runs.
    • Phase 9 — Local SuperSplat auto-open: starts local SuperSplat static server + PLY HTTP server in parallel, auto-opens browser after training. CORS fix (Phase 9.6) discovered via manual smoke run — browser blocked cross-origin PLY fetch.
    • Phase 9.7 — splat CLI real executable: scripts/install_splat.sh installs ~/.local/bin/splat as a real Bash binary with subcommand-aware caffeinate wrap. Enables nohup splat watch, tmux usage, background process management.

    Tests

    ~175 unit tests across 15 test modules. 2 opt-in E2E tests (AUTOSPLAT_E2E=1, AUTOSPLAT_COMPRESS_E2E=1). All unit tests pass in ~3s on Apple Silicon.

    Validated

    8/11 real-world captures trained successfully in overnight run 2026-05-15. Failure modes are deterministic and structured — COLMAP SfM failure, quality-gate rejection, and compress-backend unavailability all produce explicit events and are visible via autosplat status. No silent failures.

    Build Methodology

    Pipeline built phase by phase using a Recon → Plan → Sub-Phase pattern. Each phase has a docs/PHASE-N-RECON.md (problem space mapping) and docs/PHASE-N-PLAN.md (acceptance criteria before code). Phases tagged in git on completion. Part of ongoing research into trace-based emergent coordination.

    License

    Switched from MIT to AGPL-3.0-or-later (code) + CC BY-SA 4.0 (documentation). See LICENSE and LICENSE-DOCS.

    Release Polish (Burst C.1)

    • PII strip: /Users/johannes/ paths replaced with ~/ (docs) and Path.home() (Python)
    • examples/ generalized: location-specific capture names replaced with generic identifiers
    • *.sog added to .gitignore
    • pyproject.toml: version bump 0.1.0 → 0.9.0, author identity updated, AGPL-3.0 license-id set
    • Issue templates added (.forgejo/issue_template/)
    Downloads