1.3 KiB
1.3 KiB
Lane B — Reconstruction & geometry (branch lane/b-recon)
Scope: spec milestone M2 (frame sampling, COLMAP orchestration, model parsing, scene normalization, pose interpolation) plus the M8 geometry functions (backend math only — no endpoint wiring, no UI).
- Owned files:
backend/festival4d/frames.py,sfm.py,geometry.py,backend/tests/test_sfm.py,test_geometry.py. Nothing else. geometry.py: implement the stubs foundation left —slerp_pose,ray_from_pixel,triangulate_rays,nearest_point_on_ray— with unit tests (spec M2 + M8 math). Do not modifycolmap_to_threejsor its test — that is a frozen contract.- COLMAP is optional at runtime (spec ground rules): detect the binary, degrade gracefully, and make everything testable without it (hand-written COLMAP TXT snippets for parser tests; synthetic poses for the export path).
- Honor the spec M2 failure handling: bad reconstruction must diagnose and leave existing poses untouched, never corrupt the DB.
- Write poses through
db.pyhelpers; output normalized scene +points.plyin exactly the fixture's format (lane C is already consuming that format).
Done when: spec M2 acceptance passes, geometry unit tests pass (slerp, normalization, ray/triangulation), pytest green, merged to main.