Evolve your ARKit app for spatial experiences

Prepare your experience 

  • Expand your app beyond the window,  by default apps launch into the shared space, like multiple apps on the desktop
  • You can do Shared Spaces, and Full Space – this gives you more features like AnchorEntities and ARKit
  • Prepare you content
    • Use usd to create your 3D content, it is at the heart of 3D content, you can use them directly in Reality Composer Pro
    • If you have custom materials you will need to rebuild them in the shader app in Reality Composer Pro 
    • You can access Reality Composer Pro directly in Xcode

Use RealityView

Bring in your content

  • In shared Space – just add them directly to the RealityView Content, you can see more details in the session above
  • In a Full Space – a key value is you can an Anchor the app to specific surroundings.  Different than iOS you do not need to ask for permission to use Anchor Entities
  • ARKit can allow of WorldAnchors and Anchor persistence – you will be required to have user permission to use ARKit capabilties

Recasting

  • Allows you to reach out beyond arm’s length
  • Requires collision components 
  • You can RayCast with system Gestures or Hand Tracking 
  • By generating a Mesh Anchor of the environment to reconstruct the scene, you then create an Entity to recognize the time, and you create a transform and collision entity to track the environment.  These entities represent the surroundings.  
  • This Recasting allows you to then add an input target to all you to hold a position in world space.
  • By using a HandAnchor from ARKit you can build an RayCasting to identify the collision in the scene – then create a world Anchor in space to save the position.  You now place the entity and transform it to the world anchor – you can now place the item in the real world.
  • By taking the placed item and creating a collision model you can now interact with it as if it is really there.

ARKit updates

  • Receiving anchors has changed to address Spatial Computing 
  • Now you have an Ala carte selection of things to create your items you wish to receive.
  • On xrOS data providers provide an asynchronous anchor update that is decoupled from other updates. You don’t get ARFrames anymore, this is automatically done by the system, which reduces latency 
  • World anchor persistence
    • System continuously persists this mapping for you
    • Just use the world anchor and use WorldTrackingProvider which will allow you to load and unload virtual content