Title: GaussianSplatComponent — stale visibility set after close-range camera approach (iOS 27 beta 4, still unfixed)
Filed this as a radar during beta 3; still reproduces unchanged on beta 4, so posting here in case anyone from the RealityKit team can confirm it's tracked before this ships.
Radar: FB23749559 (filed against beta 3, re-verified on beta 4)
Summary
On iOS, GaussianSplatComponent keeps a stale visibility set after the camera moves close to and then away from the splat.
Moving the camera in close causes a large portion of splats to be culled — expected. But pulling the camera back out does not repopulate them. The visible set stays stale for as long as the current camera transform is held. The missing splats only return once the camera transform changes again — any pan/orbit/zoom delta triggers a recompute and the full splat snaps back.
Net effect: after any close inspection, the splat renders permanently partially-culled until the user happens to nudge the camera.
The recovery-on-movement / no-recovery-when-stationary signature suggests the iOS render path recomputes splat residency on camera-transform change events rather than every frame.
This also reproduces in AR mode, with a completely different camera driver. Since the only thing the two paths share is the splat residency code, that's where the stale set has to be coming from — which also means there's no app-side fix available to me. The camera transform in AR is driven by ARKit, not by my code, so I can't force the perturbation that would otherwise work around it. visionOS 27, running the same component, is unaffected — the visible set is re-evaluated per frame and the splat stays complete.
Steps to reproduce
Attach a GaussianSplatComponent (~400k splats) to an entity in a bounded RealityView with orbit controls.
Move the camera close until a visible portion of the splats is culled.
Move the camera back out so the full splat is within the frustum.
Hold the camera still.
Expected: full splat visible once pulled back.
Actual: previously-culled splats stay missing while the camera is stationary; they reappear only on the next camera transform delta.
Configuration
iOS 27 beta 4 (originally filed against beta 3)
iPhone 16 Pro
~400k splats
Bounded RealityView + orbit controls; also reproduces in AR
Screenshots attached: full splat, stale-culled state after pull-back, and the close-range view that triggers it.
This is still present in beta 4 and in the public beta. I'd like to know whether it's tracked, or whether I should plan around splats being unreliable on iOS 27. Thanks!
4
0
432