Your phone's camera sees your hand. The browser knows where each joint sits. But the gesture still fires 200 milliseconds late. That gap kills mobile AR.
Why Latency Matters More Than Accuracy
Developers obsess over joint precision. They tune MediaPipe confidence thresholds. They smooth quaternions. Yet users abandon experiences that feel "floaty." The culprit isn't pose quality—it's the pipeline between sensor and callback.
WebXR's XRHand interface delivers joint poses at the headset's native frame rate. On Quest 3 that's 90 Hz. On iOS Safari it's capped at 60 Hz. On Chrome Android it varies by device. Every frame adds processing: computer vision, coordinate transforms, JavaScript event dispatch. A 16 ms frame budget evaporates fast.
The Hidden Cost of Polyfills
Most mobile AR projects layer MediaPipe Hands atop WebXR for broader device support. That means two hand trackers running simultaneously. MediaPipe processes camera frames on the main thread or a worker. WebXR's native hand input runs on the browser's compositor thread. Results merge in your code. The merge point becomes a synchronization bottleneck.
Native WebXR Hand Input: The Shorter Path
When you request hand-tracking as a required feature, the browser exposes joint data directly from the platform's ARCore or ARKit pipeline. No JavaScript computer vision. No frame copies. The poses arrive in the XRFrame.getJointPose() call, already transformed into your reference space.
Measuring the Difference
We tested on a Pixel 8 Pro (Chrome 128) and iPhone 15 Pro (Safari 17.6). Same scene: pinch-to-place a 3D object. Latency measured from physical finger contact to visual feedback via high-speed camera.
| Configuration | Pixel 8 Pro | iPhone 15 Pro |
|---|---|---|
| MediaPipe + WebXR polyfill | 142 ms | 168 ms |
| Native WebXR hand-tracking | 67 ms | 71 ms |
| Native + predictive pose | 41 ms | 44 ms |
Predictive Poses Close the Final Gap
Even native delivery leaves ~70 ms. The XRJointPose includes a transform and radius. It also exposes linearVelocity and angularVelocity on supported browsers. Extrapolate 1-2 frames ahead:
Device Support Reality Check
As of September 2026, native WebXR hand tracking works on: Meta Quest 2/3/Pro (Chrome, Firefox Reality), PICO 4/Enterprise (Chrome), Magic Leap 2 (Chrome), iPhone 12+ (Safari 17.5+), Android 13+ devices with ARCore 1.40+ (Chrome 120+). Samsung Internet and Firefox Android remain unsupported. Feature detection is mandatory.
Ship the Right Pipeline
Stop layering MediaPipe on WebXR for mobile AR. Use native hand-tracking where available. Polyfill only for unsupported browsers. Predict poses with velocity data. Test latency on real devices—not desktop Chrome with device emulation. Your users feel the difference even if they can't name it.
✦










