1.4 KiB
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 inbackend/. - 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.jsandcamPath.jsmay 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.