visionos-scenes-and-spaces

Structures visionOS apps with windows, volumes, and immersive spaces using SwiftUI scene APIs.

Updated Jun 8, 2026
One-click install
npx skills add https://github.com/likw99/agent-plugins --skill visionos-scenes-and-spaces-likw99
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: visionos-scenes-and-spaces
Source: https://github.com/likw99/agent-plugins/tree/main/plugins/build-visionos-apps/skills/visionos-scenes-and-spaces
Command: npx skills add https://github.com/likw99/agent-plugins --skill visionos-scenes-and-spaces-likw99

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing the wrong scene container is the most common visionOS architecture mistake: developers put world-anchored content in bounded volumes, request ARKit data from the Shared Space, or assume immersive spaces opened successfully. This Skill provides the mental model and API patterns to structure visionOS scenes correctly from the start. ## Core Features & Use Cases - Scene Container Selection: A decision tree mapping content types to Windows (2D UI), Volumes (bounded 3D), or Immersive Spaces (unbounded 3D with .mixed/.progressive/.full immersion styles). - Transition Wiring: Environment action patterns for openWindow, dismissWindow, openImmersiveSpace, and dismissImmersiveSpace, including async result handling for user cancellation and errors. - Use Case: You are building a visionOS app that shows a 3D model gallery. Use this Skill to structure a WindowGroup for controls, a volumetric WindowGroup sized in meters for model preview, and an ImmersiveSpace opened on demand with proper state tracking. ## Quick Start Ask the agent to structure your visionOS app's scene tree and wire the transitions between a control window and an immersive space.

Frequently Asked Questions about visionos-scenes-and-spaces

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between a window, volume, and immersive space in visionOS?▼

Use a Window for 2D UI like controls and lists, a Volume for a single bounded 3D object viewable from any angle, and an Immersive Space for content surrounding the user or requiring ARKit. Most apps combine a Window for entry with a Volume or Immersive Space opened on demand.

How do I open an immersive space in SwiftUI for visionOS?▼

Declare an ImmersiveSpace with an id in your scene tree, then call the openImmersiveSpace environment action asynchronously. Always branch on the returned result since it can be .opened, .userCancelled, or .error, and keep your state flag in sync.

Can I use ARKit hand tracking in a visionOS window or volume?▼

No, ARKit world sensing, hand tracking, and scene reconstruction are only available inside a Full Space created with ImmersiveSpace. Windows and volumes live in the Shared Space, where the system withholds camera frames and precise world geometry for privacy.

Why does my visionOS volume clip or misplace 3D content?▼

Volumes are bounded containers, so content is clipped to their bounds. Size volumes with defaultSize in meters rather than points, and move any world-anchored or room-scale content into an immersive space instead.

Can multiple immersive spaces be open at once in visionOS?▼

No, only one immersive space can be open at a time across the system. You must dismiss the current immersive space with dismissImmersiveSpace before opening another, and handle cases where the system closes the space on its own.