Summary
We have identified a reproducible world tracking drift regression in ARKit on LiDAR-equipped iOS devices running iOS 26.4 and later. A static virtual node anchored at the world origin visually drifts from its initial position as the user moves around a real-world scene, despite the scene remaining physically static. The same code produces stable, drift-free results on non-LiDAR devices running identical OS versions.
Device & OS Observations
Testing was performed across four devices on iOS 26.4 using the same application build and ARWorldTrackingConfiguration settings.
Non-LiDAR devices — iPhone 14 and iPhone 15 — produced stable, drift-free tracking in all test runs. No world origin displacement was observed regardless of how long or how far the user walked.
LiDAR-equipped devices — iPhone 14 Pro and iPhone 16 Pro — exhibited consistent, reproducible drift. A static node placed at the world origin visually shifted from its initial position as the user moved through the scene. The same devices were stable on earlier iOS versions, confirming this is a regression introduced in iOS 26.4.
Technical Observations
Nature of drift: A SCNNode placed statically at the ARKit world origin (SCNVector3(0, 0, 0)) visually displaces from its original position as the user walks around a static real-world scene. The displacement is not random — it accumulates directionally as the user moves, consistent with a sensor fusion or coordinate anchoring error.
Trigger condition: The drift occurs during normal walking motion around a fixed point of interest, such as circling a parked vehicle. It does not appear when the device is held still.
LiDAR specificity: The drift is exclusive to devices with a LiDAR scanner. Identical hardware configurations — same iOS build, same ARWorldTrackingConfiguration settings — on non-LiDAR devices produce no drift whatsoever. This isolates the regression to the LiDAR sensor's contribution to ARKit's internal Visual-Inertial Odometry (VIO) fusion pipeline.
No API-level workaround found: There is currently no public ARKit API to selectively disable the LiDAR scanner's contribution to VIO. All available configuration-level options have been evaluated without resolving the drift.
ARWorldTrackingConfiguration Options Evaluated
The following configuration changes were applied individually and in combination. None resolved the drift on LiDAR devices:
isAutoFocusEnabled = false — No improvement
videoHDRAllowed = false (disabled) — No improvement
planeDetection = [] (disabled) — No improvement
sceneReconstruction = .mesh — No improvement
worldAlignment: .gravity vs .gravityAndHeading — No improvement
Minimal Reproduction Case
The drift can be reproduced with a minimal ARKit scene:
Create an ARSCNView with ARWorldTrackingConfiguration using default settings.
Add a single static SCNNode (e.g., a small sphere or axes geometry) at SCNVector3(0, 0, 0) when the session starts.
Run the app on a LiDAR-equipped device (iPhone Pro, iPad Pro with LiDAR) on iOS 26.4 or later.
Walk in a circle around the node's approximate real-world position.
Expected: The node remains visually fixed at its world position throughout the walkthrough.
Actual: The node drifts from its initial position, increasingly displaced from its world origin anchor as walking continues.
We want to know if Apple has made any internal updates to ARKit, particularly after the OS 26.4 upgrade. Thanks!
0
0
28