13 lines
1.4 KiB
Markdown
13 lines
1.4 KiB
Markdown
# 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`.
|