<!--
{
  "documentType" : "article",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/arkit-in-visionos",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "ARKit in visionOS"
}
-->

# ARKit in visionOS

Create immersive augmented reality experiences.

## Discussion

ARKit in visionOS offers a new set of sensing capabilities that you adopt individually in your app, using data providers to deliver updates asynchronously. The available capabilities include:

- **Plane detection.** Detect surfaces in a person’s surroundings and use them to anchor content.
- **World tracking.** Determine the position and orientation of Apple Vision Pro relative to its surroundings, and add world anchors to place content.
- **Hand tracking.** Use a person’s hand and finger positions as input for custom gestures and interactivity.
- **Scene reconstruction.** Build a mesh of a person’s physical surroundings and incorporate it into your immersive spaces to support interactions.
- **Image tracking.** Look for known images in a person’s surroundings and use them as anchor points for custom content.
- **Object tracking.** Use 3D reference objects to find and track real-world objects in a person’s environment.
- **Barcode detection.** Detect and scan QR codes and barcodes in a variety of formats in a person’s surroundings.
- **Room tracking**. Use room anchors to identify specific rooms and implement per-room experiences.
- **Light estimation.** Understand the lighting characteristics of a room to help improve the appearance of shiny or semi-reflective materials in your virtual content.
- **Camera frames.** Access camera frames from a device in several formats.
- **Accessory tracking.** Work with the real-time position and orientation of accessories that a person is using.

![An illustration showing a split view of someone using Apple Vision Pro; the left side shows a person’s perspective of the room and the right side depicts ARKit’s perspective of the room. The right side illustrates ARKit’s sensing capabilities, including the detected shape of the room and the individual joints of a person’s hand.](images/com.apple.arkit/media-4330791@2x.png)

## Topics

### Setup

  <doc://com.apple.documentation/documentation/visionOS/setting-up-access-to-arkit-data>

[`ARKitSession`](/documentation/ARKit/ARKitSession)

The main entry point for receiving data from ARKit.

[`DataProvider`](/documentation/ARKit/DataProvider)

A source of live data from ARKit.

[`DataProviderState`](/documentation/ARKit/DataProviderState)

The possible states of a data provider.

[`Anchor`](/documentation/ARKit/Anchor)

The identity, location, and orientation of an object in world space.

[`TrackableAnchor`](/documentation/ARKit/TrackableAnchor)

An anchor that can gain and lose its tracking state over the course of a session.

[`ARKitCoordinateSpaceProviding`](/documentation/ARKit/ARKitCoordinateSpaceProviding)

A type that provides an ARKit coordinate space with an optional correction applied.

[`ARKitCoordinateSpace`](/documentation/ARKit/ARKitCoordinateSpace)

An object which represents an ARKit coordinate space.

### Barcode detection

[`BarcodeDetectionProvider`](/documentation/ARKit/BarcodeDetectionProvider)

An object that provides the real-time position of barcodes the framework detects in a person’s environment.

[`BarcodeAnchor`](/documentation/ARKit/BarcodeAnchor)

A barcode’s position in a person’s surroundings.

### Camera sampling

[`CameraFrameProvider`](/documentation/ARKit/CameraFrameProvider)

An object that provides camera streams.

[`CameraFrame`](/documentation/ARKit/CameraFrame)

The representation of a camera frame.

[`CameraVideoFormat`](/documentation/ARKit/CameraVideoFormat)

A structure that represents a camera video format.

### Rendering

[`StereoPropertiesProvider`](/documentation/ARKit/StereoPropertiesProvider)

The StereoPropertiesProvider serves the latest viewpoint properties on the device.

[`ViewpointProperties`](/documentation/ARKit/ViewpointProperties)

The ViewpointProperties is a record of render camera transforms at some particular time.

### Camera region

[`CameraRegionProvider`](/documentation/ARKit/CameraRegionProvider)

A camera region provider.

[`CameraRegionAnchor`](/documentation/ARKit/CameraRegionAnchor)

Represents a region in space for capturing a camera stream.

### Plane detection

  <doc://com.apple.documentation/documentation/visionOS/placing-content-on-detected-planes>

[`PlaneDetectionProvider`](/documentation/ARKit/PlaneDetectionProvider)

A source of live data about planes in a person’s surroundings.

[`PlaneAnchor`](/documentation/ARKit/PlaneAnchor)

An anchor that represents horizontal and vertical planes.

### World tracking

  <doc://com.apple.documentation/documentation/visionOS/tracking-points-in-world-space>

  <doc://com.apple.documentation/documentation/visionOS/placing-entities-using-head-and-device-transform>

[`WorldTrackingProvider`](/documentation/ARKit/WorldTrackingProvider)

A source of live data about the device pose and anchors in a person’s surroundings.

[`WorldAnchor`](/documentation/ARKit/WorldAnchor)

A fixed location in a person’s surroundings.

[`DeviceAnchor`](/documentation/ARKit/DeviceAnchor)

The position and orientation of Apple Vision Pro.

### Hand tracking

  <doc://com.apple.documentation/documentation/visionOS/happybeam>

  <doc://com.apple.documentation/documentation/visionOS/creating-a-painting-space-in-visionos>

  <doc://com.apple.documentation/documentation/visionOS/tracking-and-visualizing-hand-movement>

[`HandTrackingProvider`](/documentation/ARKit/HandTrackingProvider)

A source of live data about the position of a person’s hands and hand joints.

[`HandAnchor`](/documentation/ARKit/HandAnchor)

A hand’s position in a person’s surroundings.

[`HandSkeleton`](/documentation/ARKit/HandSkeleton)

A collection of joints in a hand.

### Scene reconstruction

  <doc://com.apple.documentation/documentation/visionOS/incorporating-real-world-surroundings-in-an-immersive-experience>

  <doc://com.apple.documentation/documentation/visionOS/applying-mesh-to-real-world-surroundings>

  <doc://com.apple.documentation/documentation/visionOS/obscuring-virtual-items-in-a-scene-behind-real-world-items>

[`SceneReconstructionProvider`](/documentation/ARKit/SceneReconstructionProvider)

A source of live data about the shape of a person’s surroundings.

[`MeshAnchor`](/documentation/ARKit/MeshAnchor)

A volume of space that contains a mesh of a person’s surroundings.

### Image tracking

[Tracking and altering images](/documentation/ARKit/tracking-and-altering-images)

Create images from rectangular shapes found in the user’s environment, and augment their appearance.

[Detecting Images in an AR Experience](/documentation/ARKit/detecting-images-in-an-ar-experience)

React to known 2D images in the user’s environment, and use their positions to place AR content.

  <doc://com.apple.documentation/documentation/visionOS/tracking-images-in-3d-space>

[`ImageTrackingProvider`](/documentation/ARKit/ImageTrackingProvider)

A source of live data about a 2D image’s position in a person’s surroundings.

[`ImageAnchor`](/documentation/ARKit/ImageAnchor)

A 2D image’s position in a person’s surroundings.

[`ReferenceImage`](/documentation/ARKit/ReferenceImage)

A 2D image the system uses as a reference to find the same image in a person’s surroundings.

### Geometry

[`GeometryElement`](/documentation/ARKit/GeometryElement)

A container for vertex indices of lines or triangles.

[`GeometrySource`](/documentation/ARKit/GeometrySource)

A container for geometrical vector data.

### Lighting estimation

[`EnvironmentLightEstimationProvider`](/documentation/ARKit/EnvironmentLightEstimationProvider)

A source of live data about lighting information in the environment.

[`EnvironmentProbeAnchor`](/documentation/ARKit/EnvironmentProbeAnchor)

An environment probe in the world.

### Object tracking

[`ObjectTrackingProvider`](/documentation/ARKit/ObjectTrackingProvider)

A source of real-time position of reference objects in a person’s environment.

[`ObjectAnchor`](/documentation/ARKit/ObjectAnchor)

A reference object ARKit is tracking.

  <doc://com.apple.documentation/documentation/visionOS/exploring_object_tracking_with_arkit>

  <doc://com.apple.documentation/documentation/visionOS/implementing-object-tracking-in-your-app>

### Accessory tracking

[Preparing spatial accessories for tracking in your visionOS app](/documentation/ARKit/preparing-spatial-accessories-for-tracking-in-your-visionos-app)

Prepare a spatial accessory for tracking by training a reference accessory file and integrating it into your visionOS app.

  <doc://com.apple.documentation/documentation/visionOS/working-with-generic-spatial-accessories>

[`AccessoryTrackingProvider`](/documentation/ARKit/AccessoryTrackingProvider)

Provides the real time position of accessories in the user’s environment.

[`Accessory`](/documentation/ARKit/Accessory)

Represents an accessory to be tracked.

[`AccessoryAnchor`](/documentation/ARKit/AccessoryAnchor)

Represents a tracked accessory.

[Tracking accessories in volumetric windows](/documentation/ARKit/tracking-accessories-in-volumetric-windows)

Translate the position and velocity of tracked handheld accessories to throw virtual balls at a stack of cans.

[Tracking a handheld accessory as a virtual sculpting tool](/documentation/ARKit/tracking-a-handheld-accessory-as-a-virtual-sculpting-tool)

Use a tracked accessory with Apple Vision Pro to create a virtual sculpture.

### Room tracking

[`RoomTrackingProvider`](/documentation/ARKit/RoomTrackingProvider)

A source of real-time information about the room that a person is currently in.

[`RoomAnchor`](/documentation/ARKit/RoomAnchor)

The representation of a room ARKit is currently tracking.

[`SurfaceClassification`](/documentation/ARKit/SurfaceClassification)

A value describing the classification of a surface.

  <doc://com.apple.documentation/documentation/visionOS/building-local-experiences-with-room-tracking>

### Shared coordinate spaces

[`SharedCoordinateSpaceProvider`](/documentation/ARKit/SharedCoordinateSpaceProvider)

Provides ability to establish a shared coordinate space among multiple participants.

### Visual Fidelity

[`VisualFidelityProvider`](/documentation/ARKit/VisualFidelityProvider)

A data provider that delivers visual fidelity monitoring data.

[`VisualFidelityData`](/documentation/ARKit/VisualFidelityData)

Visual fidelity data containing device fit and field of view verification.

[`FieldOfViewAnchor`](/documentation/ARKit/FieldOfViewAnchor)

An anchor representing a set of field of view (FoV) boundary polygon points in immersive space.

[`DeviceFitStatus`](/documentation/ARKit/DeviceFitStatus)

Device fit validation status indicating the user’s eye position relative to the optimal device fit range.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)