Place content in arbitrary locations, not bound to walls, deskts etc.

Our iOS app relies heavily on the ability to place objects in arbitrary locations, and we would like to know if this is possible on visionOS as well.

It should work like this: The user faces into a certain direction. We place an object approx. 5m in front of the user. The object then gets pinned to this position (in air) and won't move any more. It should not be anchored to a real-world item like a wall, the floor or a desk.

Placing the object should even work, if the user looks down while placing the object. The object should then appear 5m in front of him once he looks up.

On iOS, we implemented this using Unity and AR Foundation on iOS. For visionOS, we haven't decided yet if we go for native instead. So, if that's only possible using native code, that's also fine.

Yes, this is possible :)

You can utilize the queryDeviceAnchor(atTimestamp:) method (when in an ImmersiveSpace) to get the transform of the device, and then you can place objects relative to that transform.

Place content in arbitrary locations, not bound to walls, deskts etc.
 
 
Q