Reality Composer Pro Development Notes
Evidence-backed notes grouped by component. Open any note for full metadata, repro steps, and evidence.
AmbientAudioComponent 1 note
- AmbientAudio Preview Resource selection is not authored directly on the AmbientAudio component in current fixtures.
Resource choice appears in AudioLibrary resources plus RealityKitAudioFile prims, while AmbientAudio keeps only component-local fields like gain.
AudioMixGroupsComponent 1 note
- Audio Mix Groups is a mixer-driven component: the inspector launches the editor, but the authored state lives outside a normal inline parameter block.
Fixture diffs show the inspector card is only a launcher. Real state lands in child `RealityKitAudioMixGroup` prims (`gain`, `mute`, `speed`) plus external `RealityKitAudioFile` prims routed with `rel mixGroup`.
BillboardComponent 1 note
- Billboard component authors a top-level `float blendFactor` value in USDA.
Fixture diff evidence shows Billboard writes one scalar field (`blendFactor`) directly on the component prim.
Custom Component 2 notes
- The complete set of supported custom component field types is bounded by OpenUSD's finite type system, not Swift's infinite one.
OpenUSD has a closed, enumerable set of SdfValueTypeNames. Swift's type system is open-ended and Turing-complete. RCP cannot support all Swift types — it supports the USD-serializable subset: Swift types that map directly to SdfValueTypeNames, plus special cases like enums, arrays, and optionals.
- Custom components support only 'simpler data' types — scalars, strings, SIMD values, and enums — with Xcode build-time errors for unsupported types.
Apple's WWDC 2023 session 'Work with Reality Composer Pro content in Xcode' explicitly defines custom component type constraints. The session demonstrates PointOfInterestComponent with String, custom enum, and Optional<String> fields, and warns that Xcode produces errors for types RCP cannot serialize.
InputTargetComponent 1 note
- InputTarget with Allowed Input = Direct authors `allowsDirectInput = 1` and `allowsIndirectInput = 0`.
Fixture deltas show Direct mode serializes as explicit booleans on the InputTarget component prim.
ParticleEmitterComponent 1 note
- ParticleEmitterComponent uses RealityKit.VFXEmitter with a two-tier schema: top-level timing/shape/spawning on currentState, and particle properties inside mainEmitter/spawnedEmitter structs.
The particle emitter fixture set is large and sparse-authored. The canonical shape is `RealityKit.VFXEmitter` with `currentState`, `mainEmitter`, and `spawnedEmitter`, and the most useful public references are now the schema page plus per-component CSV exports.