visionOS

On this page 7

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.

ElementWhat it isTypical use
WindowFlat SwiftUI panel in spaceDocuments, media, productivity
VolumeBounded 3D containerModels, board games, product views
Shared SpaceDefault space shared by several appsMultitasking
Full SpaceExclusive space for one appFocused or immersive experiences
Mixed immersionVirtual content in the real roomMixed reality apps
Full immersionSurroundings replacedVirtual environments and games
Scene types and immersion in visionOS

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 methodHow it worksBest for
Indirect pinchEyes target, fingers confirmMost interface interaction
Direct touchFingertip touches nearby contentClose-range controls and 3D objects
Custom hand trackingApp reads hand skeletons via ARKitGestures in Full Space apps
Voice and dictationSpeech input and SiriText entry and commands
PeripheralsKeyboard, trackpad, game controllersLong text and games
Input methods in visionOS

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.

ToolRoleNotes
SwiftUIWindows, controls and layoutShared with other Apple platforms
RealityKit3D rendering, physics and animationUses an entity component system
ARKitPlane detection, hand tracking, anchorsMainly available in Full Space
Reality Composer ProScene and material authoringIntegrated with Xcode
UnityCross-platform engine routeSupports windowed and immersive modes
Web technologiesSafari with WebXR supportBrowser-based immersive content
Main tools for building visionOS apps

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.

PlatformPrimary inputStandard APIApp heritage
visionOSEyes and pinchApple frameworksiPadOS and iOS apps
Meta Horizon OSControllers and handsOpenXRVR games
Android XREyes, hands and controllersOpenXRAndroid apps
SteamVRControllersOpenXRPC VR games
visionOS compared with neighboring XR platforms

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.