visionOS is Apple’s operating system for Apple Vision Pro, designed for spatial computing: interfaces are presented as floating panels and three-dimensional content anchored in the room and are controlled mainly with the eyes, hands and voice. In XR development within extended reality, visionOS is a complete platform with its own SDK, app model and design rules, built on the same foundations as Apple’s other operating systems.
Developers build visionOS apps with Xcode, Swift, SwiftUI, RealityKit and ARKit, or with game engines that support the platform. Because the system shares much of its framework stack with iOS, iPadOS and macOS, many existing apps can run on it as compatible windows before being adapted into fully spatial experiences.
How visionOS organizes apps in space
visionOS organizes app content into three scene types: windows, volumes and immersive spaces. Windows are flat SwiftUI panels with depth effects; volumes are bounded 3D containers that can be viewed from any side; immersive spaces let an app take over the surroundings partly or completely. By default, apps run together in the Shared Space, side by side like apps on a desktop, while an app that opens a Full Space hides other apps to give its content exclusive control.
Immersive spaces support three immersion styles. Mixed immersion places virtual content in the real room seen through pass-through; progressive immersion replaces part of the surroundings and lets the user adjust the amount with the Digital Crown; full immersion replaces the room entirely.
| Element | What it is | Typical use |
|---|---|---|
| Window | Flat SwiftUI panel in space | Documents, media, productivity |
| Volume | Bounded 3D container | Models, board games, product views |
| Shared Space | Default space shared by several apps | Multitasking |
| Full Space | Exclusive space for one app | Focused or immersive experiences |
| Mixed immersion | Virtual content in the real room | Mixed reality apps |
| Full immersion | Surroundings replaced | Virtual environments and games |
Input and privacy model
The primary input in visionOS is look and pinch: gaze picks the element of interest, and a brief pinch of the thumb against the index finger confirms the choice, so the hands can stay relaxed anywhere within view of the cameras. Users can also touch elements directly within reach, use voice, or connect keyboards, trackpads and game controllers.
A distinctive design choice is that apps do not receive raw gaze data. The system itself renders hover highlights where the user looks, and apps learn only which element was selected when the pinch occurs. Similarly, camera access and detailed surroundings data are restricted and require permission, which protects bystanders and the user’s home.
| Input method | How it works | Best for |
|---|---|---|
| Indirect pinch | Eyes target, fingers confirm | Most interface interaction |
| Direct touch | Fingertip touches nearby content | Close-range controls and 3D objects |
| Custom hand tracking | App reads hand skeletons via ARKit | Gestures in Full Space apps |
| Voice and dictation | Speech input and Siri | Text entry and commands |
| Peripherals | Keyboard, trackpad, game controllers | Long text and games |
Development tools and frameworks
Native visionOS development combines SwiftUI for interfaces, RealityKit for 3D rendering and ARKit for world understanding. Reality Composer Pro prepares 3D scenes and materials, and the Xcode simulator lets developers test apps without a headset. Assets commonly use the USD file format, specifically USDZ for packaged content.
| Tool | Role | Notes |
|---|---|---|
| SwiftUI | Windows, controls and layout | Shared with other Apple platforms |
| RealityKit | 3D rendering, physics and animation | Uses an entity component system |
| ARKit | Plane detection, hand tracking, anchors | Mainly available in Full Space |
| Reality Composer Pro | Scene and material authoring | Integrated with Xcode |
| Unity | Cross-platform engine route | Supports windowed and immersive modes |
| Web technologies | Safari with WebXR support | Browser-based immersive content |
Teams targeting several headsets often weigh a native Apple stack against a cross-platform engine. Native development gives the best integration with system features and shared space behavior; an engine such as Unity eases porting to devices that use OpenXR, although visionOS itself does not use OpenXR.
visionOS compared with other XR platforms
visionOS differs from other headset operating systems mainly in its app model and input philosophy. It treats ordinary windowed apps as first-class content and prioritizes eye-based targeting, whereas most other platforms grew from gaming and controller-based VR.
| Platform | Primary input | Standard API | App heritage |
|---|---|---|---|
| visionOS | Eyes and pinch | Apple frameworks | iPadOS and iOS apps |
| Meta Horizon OS | Controllers and hands | OpenXR | VR games |
| Android XR | Eyes, hands and controllers | OpenXR | Android apps |
| SteamVR | Controllers | OpenXR | PC VR games |
Limitations and common pitfalls for developers
The most common mistake is porting a VR game or a phone app unchanged. visionOS rewards designs that respect comfortable viewing distances, readable glass materials and the eye-and-pinch rhythm, and it penalizes small targets and layouts that require constant head movement.
- Small hit targets frustrate eye targeting; Apple guidance recommends roughly 60 points as a minimum.
- No raw gaze data means analytics and interaction cannot rely on where users look.
- Shared Space restrictions limit ARKit features until an app opens a Full Space.
- Small installed base compared with phones affects business planning.
- Performance budgets are strict because rendering runs at high resolution for both eyes.
Explained without jargon
visionOS is the software that runs Apple’s headset, in the same way that iOS runs an iPhone. Instead of icons on a flat screen, apps appear as floating windows and 3D objects in the room around you.
You use it by simply looking at a button and tapping two fingers together. Developers write apps for it with Apple’s usual tools, so many familiar iPhone and iPad apps can appear there too, and new apps can add 3D content that you can walk around.
A typical use case
A furniture retailer already has an iPad app built with SwiftUI and a library of products modeled as USDZ files. Its development team decides to bring the app to visionOS rather than build a new product from scratch.
In the first release, the existing catalog runs as a compatible window with minor layout changes. The team then adds a volume that shows a selected chair at real scale on the customer’s table and, finally, a mixed immersion space where customers place several pieces of furniture in their own living room using RealityKit and ARKit plane detection.
Because most of the interface code is shared with the iPad version, the retailer ships the spatial app with a small additional team, and customers can judge size and proportions before buying.