The pipeline, technically
Short version on the how it works overview; here are the algorithm names.
Save
Walks the device’s mesh (positions and normals only, no camera images) into two feature sets: dense anchor-local, sparse whole-room. Each feature gets a 46-dimensional descriptor: curvature, edge-length histogram, FPFH (a shape-matching signature), and gravity histogram. That descriptor measures wrong on most real-scan matches, so it doesn’t drive coarse alignment (see Find, below). No mapping service, upload queue, or cloud map-build. Thin coverage is rejected honestly, not guessed at.
Share
Payload: anchor-local features, room features, gravity direction, floor height. No images, no point cloud dense enough to reconstruct the room. Typically 2-5 MB on real captures. Transport (AirDrop, email, your own backend) is the caller’s choice.
Find
A second device scans independently and aligns with zero shared coordinate frame. Coarse alignment is descriptor-free:
- Yaw histograms: cross-correlate whole-cloud normal-angle histograms for candidate rotations.
- Occupancy grids: 2D horizontal-plane occupancy correlation per rotation for candidate translations.
- Segment matching (room-shape distance graphs, optional): adds candidates when the first two lack distinguishing shape. Off by default, pending calibration.
Every candidate surviving a cheap pre-score gets full point-to-plane ICP refinement (ICP is iterative closest point, a step that nudges the fit tighter using nearby points), gravity- constrained so it can’t tilt the world.
Verify
Seven gates score every refined candidate. They are: surface overlap ratio, point-to-plane RMSE (root-mean-square error, how far the fit is off), floor-height coincidence, normal agreement (catches wrong-surface landings, for example a 90-degree wall confusion), footprint coverage (thin/partial scans), bidirectional-yaw consistency (B-to-A vs A-to-B agreement), and a confidence check. Clear every gate or it’s “not found,” never a guess.
Frame identity: a mid-scan tracking reset creates a real rigid offset between frames before and after. That is what shows up in the output: a known, diagnosed surprise, not a bug.
Multi-floor: floor-lock tries one hypothesis per detected floor, using a density-based peak detector rather than a fixed gap or size threshold. On the one real two-floor capture measured, this correctly separates both floors. That capture still comes back “not found,” now from a separate confidence gate rather than a wrong-floor lock. No real device-placed upstairs anchor has confirmed a full pass yet.
Accuracy: designed for 2-4 cm anchor-local accuracy, measured 2.5-3.6 cm RMSE on real cross-scan pairs. That RMSE is the algorithm’s residual against matched geometry: a lower bound on felt error, not a guarantee. Tape-measure checks are ongoing. No unqualified “X cm accurate” claim yet.
The data behind these numbers: validated mainly on real captures, on a corpus that is still small. It covers 2 apartments, 12 usable capture sessions, 58 scans, 171 saved anchors, and 24 human-labeled find attempts. Cross-device validation: one gold pair of independent iPhone LiDAR scans of the same room, two different apps. Both directions pass every gate individually, but a bidirectional consistency gap between the apps is a tracked, unresolved finding.
Want the math shapes behind these names? See the deeper version: how mesh-based anchor alignment works.
Curious how a match is verified before it’s ever reported? See how it knows it’s right. Ready to try it? Start a free trial or read the quick start.