festifun/plan/lane-C-viewer.md
m3ultra e31e8ac559 Festival 4D build spec + parallel lane plan for Opus agents
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:06:54 +10:00

1.4 KiB

Lane C — Viewer frontend (branch lane/c-viewer)

Scope: spec milestones M4, M5, M6 (synchronized playback transport, 3D viewer, anchor overlays) plus timeline event markers (render GET /api/events as colored markers with tooltips + click-to-jump — the data is already seeded synthetically; classification quality is lane D's problem, not yours).

  • Owned files: everything under frontend/. Nothing in backend/.
  • The API (foundation) is finished and serves full synthetic data — build against python -m festival4d serve. Never block on lanes A/B/D.
  • Use frontend/src/lib/pose.js (frozen contract) for all COLMAP→Three.js conversion — do not reimplement the math.
  • The heart of this lane is the master-clock transport (spec M4) — build and verify it before the 3D work. Keep the dev overlay showing per-video sync error in ms.
  • Mind spec pitfalls #2 (video isn't frame-accurate), #4 (object-fit letterboxing math for overlay canvases).
  • Leave clean seams for phase 3: annotate.js and camPath.js may be stubs/empty modules — M8 UI and M9 are integration work; do not build them here.

Done when: spec M4, M5, M6 acceptance all pass on synthetic data (locked playback <50 ms visible error; camera arcs + snap-to-camera match; projected stage corners track in all videos), timeline markers render, no console errors, merged to main.