festifun/docs/ideas.md
m3ultra 7c13f519d2 Phase 4 polish: anchor supersede + delete, docs/ideas, field-test scaffolding
Fixes the sole Round-3 wart: annotating one object from two views now yields
ONE anchor (the single-view fallback is superseded in place by the
triangulation, same id) instead of a sibling pair. Adds DELETE /api/anchors/{id}
(unlinks annotations, 404 on unknown) + a deletable anchor list in the
correction panel. db gains get/update/delete_anchor + get_annotations(event_id).
CR-3 filed (additive). Suite 101 -> 103; frontend build clean; delete UI
verified live (state + DOM + 3D scene stay consistent).

Also: docs/ideas.md (future extensions), plan/ISSUES.md (seeded with the
gemini-2.5-flash retirement, FIXED), plan/status/phase4.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 12:15:35 +10:00

2.7 KiB

Festival 4D — Future Ideas

Parking lot for post-v0.1.0 extensions (spec §5 future-extensions). Not committed work — a place to capture direction so the prototype's scope stays honest. Roughly ordered by payoff-to-effort.

Neural rendering — Gaussian Splatting

Replace the sparse COLMAP point cloud with a 3D Gaussian Splatting model for photorealistic free-roam instead of a dot cloud. COLMAP poses + images already feed splatting trainers (e.g. gsplat, Inria 3DGS) directly, so the reconstruction step's output is reusable. The viewer would swap Points for a splat renderer (a WebGL splat viewer, or bake to a mesh). Biggest visual upgrade; heaviest compute (needs a GPU training pass per project).

Cinematic export — render the camera path to MP4

M9 already produces keyframed god's-eye paths. Add a headless render: step t_global at a fixed fps, drive the Three.js camera along the path, capture frames (offscreen canvas → captureStream or server-side puppeteer + ffmpeg), and mux to MP4. Turns the app from a viewer into a "director's cut" clip exporter. Path JSON export/import is already in place, so this is additive.

Real-time / streaming ingest

Instead of pre-recorded files, ingest live phone feeds (WebRTC/RTMP). Requires: rolling audio sync on a sliding window (GCC-PHAT already windowed for drift — reuse it), incremental SfM or pose tracking against a pre-built map, and a streaming transport in the frontend. Large effort; the offline pipeline is the right foundation.

Multi-modal audio analysis for moment detection

Today's events step finds candidates from RMS + spectral flux, then a VLM classifies video. Add audio-native analysis in parallel: beat/tempo tracking, drop detection from spectrograms, song-boundary segmentation. Fuse audio-derived and vision-derived labels for higher-confidence events and beat-aligned auto camera cuts. Cheap; complements the existing classifier providers.

Object / artist tracking

Extend M8 (manual bbox → 3D anchor) with automatic per-frame tracking (e.g. a detector + tracker), so an anchor follows the lead performer across time instead of being static. Enables a "follow artist" auto-camera mode in the 3D viewer.

Quality-of-life

  • Standalone anchor manager — the delete UI currently lives in the event correction panel; a dedicated always-available anchor list would decouple anchor management from events.
  • Persist camera paths server-side — paths are JSON export/import only; a paths table + endpoints would let them live with the project.
  • Per-project workspaces — the app assumes one project at a time (SQLite at data/project.db).
  • Sync-graph visualization — show which videos aligned into which connected component when some clips share no audio.