Skip to content

RealityKit & ARP Extensions

OpenUSD is a massive, flexible standard. To make it work for spatial computing on visionOS and iOS, Apple uses a set of extensions known as the Preliminary Anchoring & Behavior API (often referred to as ARP) and the RealityKit Namespace.

Preflight identifies these specialized features using a distinct Origin Taxonomy.

Throughout the RealityKit Extensions module, you will see Origin Badges. These tell you where the feature comes from and how portable it is:

  • [core] Core USD: Standard, vendor-neutral features (e.g., standard Meshes, Xforms, Materials).
  • [preliminary] Preliminary AR: Apple’s draft extensions for AR (Anchors, Behaviors, 3D Text). These are technically “Preliminary” but are widely used across the Apple ecosystem.
  • [realitykit] RealityKit: Proprietary features specifically authored in Reality Composer Pro (Timelines, Components, Custom Behaviors). These generally only work within Apple’s runtimes.

Declarative animation sequences that orchestrate multiple property changes over time.

  • Track Identification: Preflight shows exactly which tracks are active.
  • Action Kinds: Lists the types of animation actions (e.g., Spin, Move, Audio, Preset).

Interaction logic consisting of Triggers and Actions.

  • Triggers: Detects events like Tap, SceneTransition, Proximity.
  • Actions: Shows what happens in response, such as PlayTimeline, Show, Hide.

Definitions for how an object should attach to the real world.

  • Target Types: Plane, Image, Face, Object.
  • Alignment: Horizontal, Vertical, or Any.

RealityKit uses an Entity Component System (ECS).

  • Components: Preflight lists custom data containers (like RCP_BehaviorsContainer) attached to prims.
  • Text Prims: Identifies specialized 3D Text geometry that uses the RealityKit rendering path instead of standard polygons.

Reality Composer Pro (RCP) often hides the complexity of these extensions. However, if a behavior doesn’t trigger or a timeline doesn’t play in your visionOS app, the bug is often in the underlying USD schema. Preflight makes these hidden structures visible, allowing you to debug the connection between your interaction logic and your 3D geometry.