1---2name: realitykit-visionos-developer3description: Route RealityKit work on visionOS 27 and handle core entity/component basics, RealityView scene setup, asset loading, input targets, SwiftUI attachments, anchoring, portals, synchronization, and USDStage bridge usage. Use for general RealityKit triage, choosing documented components, loading Reality Composer Pro, USD, USDZ, or .reality content, and deciding whether to hand off to realitykit-rendering-materials, realitykit-animation-physics, realitykit-audio-spatial, realitykit-ecs-systems, spatial-preview-developer, usdkit-runtime-developer, usd-editor, shadergraph-editor, ARKit, SwiftUI, or build-debug skills.4---56# RealityKit visionOS Developer78## Quick Start9101. Classify the request as core scene setup, rendering/materials,11 animation/physics, audio, custom ECS, USD authoring, Spatial Preview,12 SwiftUI UI, ARKit provider work, or build/debug plumbing.132. Stay in this skill for RealityView setup, entity loading, component14 selection, input, attachments, anchoring, portals, synchronization, and15 the local `USDStageComponent` bridge.163. Switch to the focused RealityKit skill when the task is primarily visual,17 animated, physical, audio, or custom ECS behavior.184. Load only the narrow reference files needed for the task.195. Keep all scene mutation inside documented RealityKit entry points:20 `RealityView` content/update closures, event handlers, or registered21 systems.2223## RealityKit Routing2425| Task | Use |26|---|---|27| General RealityKit triage, component choice, entity loading, input, attachments, anchoring, portals, sync, local USDStage bridge | This skill |28| Mesh display, materials, cameras, lights, shadows, post-processing, Gaussian splats, decals, LOD, occlusion, lightmaps, probes | `realitykit-rendering-materials` |29| Animation clips, character controllers, skeletal poses, IK, body tracking, retargeting, navigation, behavior trees, collision, physics, joints, forces, particles, cloth | `realitykit-animation-physics` |30| Spatial audio, ambient or channel audio, audio libraries, mix groups, reverb, acoustic simulation | `realitykit-audio-spatial` |31| Custom components, systems, ECS queries, registration, update ordering, per-frame multi-entity behavior | `realitykit-ecs-systems` |32| Mac app streaming documents or live USD stages to Vision Pro via Spatial Preview | `spatial-preview-developer` |33| Swift USDKit stage/layer/prim APIs | `usdkit-runtime-developer` |34| Authored USD edits or command-line USD inspection | `usd-editor` |35| ShaderGraph or RealityKit material graph editing in USDA | `shadergraph-editor` |36| ARKitSession providers, permissions, and direct anchor stream reconciliation | `arkit-visionos-developer` |37| SwiftUI layout, ornaments, windows, immersive spaces, or targeted gesture ergonomics | `spatial-swiftui-developer` |38| Building, launching, simulator/device logs, or runtime debugging | `build-run-debug` |3940## Load References When4142| Reference | When to Use |43|---|---|44| [`references/component-selection.md`](references/component-selection.md) | Choose between documented RealityKit components, SwiftUI targeted gestures, `SpatialTrackingSession`, ARKit, focused RealityKit skills, and custom ECS work. |45| [`references/component-index.md`](references/component-index.md) | Find the component category and the owning skill/reference to open next. |46| [`references/entity-loading-and-stored-entities.md`](references/entity-loading-and-stored-entities.md) | Load named stored entities, explicit file URLs, package-bundled assets, USD/USDZ, `.reality`, or Reality Composer Pro output. |47| [`references/inputtargetcomponent.md`](references/inputtargetcomponent.md) | Make entities eligible for hit testing and input. Pair with collision details from `realitykit-animation-physics` when needed. |48| [`references/manipulationcomponent.md`](references/manipulationcomponent.md) | Use built-in direct manipulation before writing a custom transform stack. |49| [`references/gesturecomponent.md`](references/gesturecomponent.md) | Attach a SwiftUI gesture directly to a RealityKit entity. |50| [`references/hovereffectcomponent.md`](references/hovereffectcomponent.md) and [`references/accessibilitycomponent.md`](references/accessibilitycomponent.md) | Add hover affordances or accessibility metadata to interactive entities. |51| [`references/viewattachmentcomponent.md`](references/viewattachmentcomponent.md) | Embed SwiftUI-backed views in the entity graph. |52| [`references/presentationcomponent.md`](references/presentationcomponent.md), [`references/textcomponent.md`](references/textcomponent.md), [`references/imagepresentationcomponent.md`](references/imagepresentationcomponent.md), [`references/videoplayercomponent.md`](references/videoplayercomponent.md) | Present text, images, video, or presentation-style content in RealityKit. |53| [`references/anchoringcomponent.md`](references/anchoringcomponent.md), [`references/arkitanchorcomponent.md`](references/arkitanchorcomponent.md), [`references/spatialtrackingsession.md`](references/spatialtrackingsession.md) | Anchor content to spatial targets or decide whether RealityKit-managed tracking is enough. |54| [`references/sceneunderstandingcomponent.md`](references/sceneunderstandingcomponent.md), [`references/dockingregioncomponent.md`](references/dockingregioncomponent.md), [`references/referencecomponent.md`](references/referencecomponent.md), [`references/attachedtransformcomponent.md`](references/attachedtransformcomponent.md) | Work with spatial references, docking, scene understanding, or transform attachments. |55| [`references/portalcomponent.md`](references/portalcomponent.md), [`references/portalcrossingcomponent.md`](references/portalcrossingcomponent.md), [`references/worldcomponent.md`](references/worldcomponent.md), [`references/environmentblendingcomponent.md`](references/environmentblendingcomponent.md), [`references/portal-volumes-and-accessory-anchoring.md`](references/portal-volumes-and-accessory-anchoring.md) | Compose portals, worlds, environment blending, and new visionOS 27 portal/accessory anchoring behavior. |56| [`references/synchronizationcomponent.md`](references/synchronizationcomponent.md), [`references/transientcomponent.md`](references/transientcomponent.md) | Synchronize or mark entity state for multi-user/session behavior. |57| [`references/usdstagecomponent.md`](references/usdstagecomponent.md) | Render a live USDKit stage inside RealityKit or export entity hierarchies to USD. For Swift USDKit stage authoring, switch to `usdkit-runtime-developer`; for Spatial Preview streaming, switch to `spatial-preview-developer`. |5859## Guardrails6061- Use `RealityView`; `ARView` is not available on visionOS.62- Load assets asynchronously and avoid blocking the main actor.63- Keep SwiftUI body code declarative; mutate RealityKit content through64 `RealityView`, events, or systems.65- Prefer documented components before custom ECS.66- Register custom components and systems once during app startup before scenes67 or assets that depend on them load.68- Prefer `ManipulationComponent.configureEntity(...)` when built-in direct69 manipulation fits the need.70- Use `SpatialPreview` only from macOS 27 sender apps; Vision Pro uses the71 built-in system viewer and has no visionOS `SpatialPreview` module.7273## Output Expectations7475Provide:7677- the RealityKit task category78- which focused skill or references were used79- the component, attachment, entity-loading, or system path chosen80- the main constraint or pitfall81- routing back to SwiftUI, ARKit, USD, Spatial Preview, or build-debug if needed