Media & Annotations
Versioned media library, 360 capture and annotation layers
Media library
Assets are versioned and append-only: photo, panorama, floorplan, splat. Bytes never live in the database — storage backends are filesystem or S3-compatible. Content sniffing recognizes panorama images (GPano) automatically; previews are web-optimized with pannellum (360) and gsplat (gaussian splatting).



360 capture and stitching
On Android, Take 360 captures a ring of frames with sensor poses ("anchor here" + continuous rotation), then stitches them into a panorama with a pure-Rust stitcher. High-definition restitch runs server-side as a job. AI-assisted alignment matches features across frames (SuperPoint + LightGlue, ONNX in-process).

Annotations
Versioned annotation layers over media and tours display live data — device values, pin states, status. Layers have an independent lifecycle from tours.

