A configuration that uses the back-facing camera, tracks a device's orientation and position, and detects real-world flat surfaces.


All AR configurations establish a correspondence between the real world the device inhabits and a virtual 3D coordinate space where you can model content. When your app displays that content together with a live camera image, the user experiences the illusion that your virtual content is part of the real world.

Creating and maintaining this correspondence between spaces requires tracking the device's motion. The ARWorldTrackingConfiguration class tracks the device's movement with six degrees of freedom (6DOF): specifically, the three rotation axes (roll, pitch, and yaw), and three translation axes (movement in x, y, and z).

This kind of tracking can create immersive AR experiences: A virtual object can appear to stay in the same place relative to the real world, even as the user tilts the device to look above or below the object, or moves the device around to see the object's sides and back.

Figure 1

6DOF tracking maintains an AR illusion regardless of device rotation or movement

If you enable the planeDetection setting, ARKit analyzes the scene to find real-world horizontal or vertical surfaces. For each plane detected, ARKit automatically adds an ARPlaneAnchor object to the session.

If you provide images for the detectionImages property, ARKit analyzes the scene to recognize those images. For each detected image, ARKit automatically adds an ARImageAnchor object to the session.


Creating a Configuration


Creates a new world tracking configuration.

Enabling Plane Detection

var planeDetection: ARWorldTrackingConfiguration.PlaneDetection

A value specifying whether and how the session attempts to automatically detect flat surfaces in the camera-captured image.

struct ARWorldTrackingConfiguration.PlaneDetection

Options for whether and how ARKit detects flat surfaces in captured images.

Enabling Image Detection

var detectionImages: Set<ARReferenceImage>?

A set of images for ARKit to attempt to detect in the user's environment.

Managing Device Camera Behavior

var isAutoFocusEnabled: Bool

A Boolean value that determines whether the device camera uses fixed focus or autofocus behavior.


Inherits From

Conforms To

See Also

World Tracking

Building Your First AR Experience

Create an app that runs an AR session and uses plane detection to place 3D content using SceneKit.

Handling 3D Interaction and UI Controls in Augmented Reality

Follow best practices for visual feedback, gesture interactions, and realistic rendering in AR experiences.

class AROrientationTrackingConfiguration

A configuration that uses the back-facing camera and tracks only a device's orientation.

class ARPlaneAnchor

Information about the position and orientation of a real-world flat surface detected in a world-tracking AR session.