-
Collaborate on structured 3D models in visionOS
Learn how to bring structured 3D models to life in visionOS. We'll cover USDZ preparation, show you how to manipulate individual entities within hierarchical assemblies, and inspect the internal components within a model with a cross-sectional plane. Create stunning exploded-view animations for design review and collaboration experiences on Apple Vision Pro.
Chapters
- 0:00 - Introduction
- 2:55 - Asset preparation
- 5:05 - Manipulating the hierarchy
- 8:15 - Interactive clipping
- 18:16 - Autoexpansion
- 24:10 - Next steps
Resources
Related Videos
WWDC26
WWDC25
- Better together: SwiftUI and RealityKit
- Share visionOS experiences with nearby people
- What’s new in RealityKit
WWDC24
-
Search this video…
-
-
7:10 - Opening an assembly
func openAssembly() { components[ManipulationComponent.self] = nil components[InputTargetComponent.self] = nil for child in assemblyChildren { child.components.set(InputTargetComponent()) var manipulation = ManipulationComponent() manipulation.releaseBehavior = .stay child.manipulationComponent = manipulation } } -
7:11 - Closing an assembly
func closeAssembly() { for child in assemblyChildren { child.manipulationComponent = nil child.components[InputTargetComponent.self] = nil } components.set(InputTargetComponent()) var manipulation = ManipulationComponent() manipulation.releaseBehavior = .stay manipulationComponent = manipulation }
-
-
- 0:00 - Introduction
An overview of building collaborative spatial experiences on Apple Vision Pro, including real-time manipulation of rich 3D assemblies, interactive clipping, and automatic expansion of sub-assemblies.
- 2:55 - Asset preparation
Learn the key requirements for preparing 3D assets for spatial computing, including preserving a deep, nested hierarchy in your USDZ exports so that individual parts remain independently selectable and manipulable at runtime.
- 5:05 - Manipulating the hierarchy
See how to use ManipulationComponent and InputTargetComponent to make an entire assembly — or each of its sub-entities individually — interactive. Covers the openAssembly() and closeAssembly() patterns and the releaseBehavior setting.
- 8:15 - Interactive clipping
Explore ClippingComponent, a new RealityKit capability in visionOS 26 that lets people see through complex assemblies. Covers the three-state clipping machine (.off, .on, .editing), coordinate frame transformations, and how drag gestures update clipping plane bounds.
- 18:16 - Autoexpansion
Understand how to automatically expand an assembly's sub-components along the most meaningful axis using volume-weighted variance. Covers the math behind choosing the expansion axis and assembling FromToBy animations to move parts into position.
- 24:10 - Next steps
Key takeaways and pointers to the Model Manipulator sample project, related sessions on the spatial preview framework, and recommended background on vector math and linear algebra.