Decide: bake-off design — comparands, ground truth, decision rule #10
Notifications
Due Date
No due date set.
Blocks
Depends on
#13 Write the Session 0 spec (positioning bake-off)
lars/splat-indoor-navigation
#2 Research: on-device visual relocalization against a gaussian splat
lars/splat-indoor-navigation
#4 Research: MikroTik TG-BTS-IN beacon capabilities and configuration
lars/splat-indoor-navigation
#15 Decide: how the user's pose origin gets fixed, and re-fixed as it drifts
lars/splat-indoor-navigation
Reference: lars/splat-indoor-navigation#10
Reference in New Issue
Block a user
Question
Design Session 0: how visual relocalization and BLE trilateration get compared, and what decides the winner.
Settle:
Part of the wayfinder map #1.
Reframed by #2 — the comparands have changed.
The original framing was visual relocalization against the splat vs BLE trilateration. #2 establishes that the first option does not exist on a phone in 2026: all 3DGS localization work (GSFeatLoc, GSplatLoc, SplatLoc, Hi2-GSLoc) is desktop-GPU pose refinement needing a prior pose, with no mobile runtime. Sparse-feature VPS against your own scan does ship, but MultiSet is $149/mo, Immersal is Unity-only (closed to RN), and Vuforia Area Targets licences are reportedly EOL.
So the bake-off should compare:
@reactvision/react-viro'sonCameraTransformUpdate; ~0.5% drift, 0.79m over 145m in published indoor tests). Relative, accurate, drifts.Two consequences for this ticket's design:
Blocked additionally on #15 (origin fix), because A and C cannot be specified until origin acquisition is decided.
Arm A is cheaper than assumed, and its error model is now known.
@reactvision/react-viro2.57.5 gives ARKit pose in JS with zero Swift —onCameraTransformUpdate(≤60Hz),onTrackingUpdatedwith ARKit's tracking state and reasons,worldAlignmentas a prop, andViroARImageMarkerfor fiducial fixes. So arm A ("ARKit VIO + manual origin") is a JS-only build for the bake-off. Its limits: noARWorldMap, no raw frames, no depth to JS, legacy-arch views.One more measurement this bake-off must make: recall, not just accuracy.
From #2's vendor addendum — every visual-positioning vendor publishes 6–8 cm accuracy, comfortably inside the 1 m target, but none publishes a recall or success rate, and none documents behaviour at chest height while walking. So the interesting question is not "how accurate when it works" but how often it fails, and how it fails.
Add to the test matrix:
xcframework,localize()returning pose and confidence, ~6 cm claimed, ~3–4 s per on-device fix, $0/$49/$249 tiers) — but on-device offline is Enterprise-gated and map bundles run 100s of MB per ~50k sq ft. Treat it as a costed third arm, not a free one.Note the two error models differ in shape and the report must not hide it: VIO error grows with distance travelled; BLE error is roughly constant; VPS error is bimodal — small when a fix lands, unbounded when it doesn't.