<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARWorldTrackingConfiguration",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARWorldTrackingConfiguration"
  },
  "title" : "ARWorldTrackingConfiguration"
}
-->

# ARWorldTrackingConfiguration

A configuration that tracks the position of a device in relation to objects in the environment.

```
class ARWorldTrackingConfiguration
```

## Overview

The [`ARWorldTrackingConfiguration`](/documentation/ARKit/ARWorldTrackingConfiguration) class tracks the device’s movement with six degrees of freedom (6DOF): 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.

![Three illustrated variations of an iPhone running an app that displays an AR experience using the rear camera. The physical environment is depicted with a couch, in front of which, the app displays a virtual character. In the left picture, the iPhone views the couch straight on with the virtual character centered onscreen. In the middle picture, the device is rotated 30 degrees about the y-axis to the right, and the right-most portion of the couch and virtual character are visible onscreen only. In the right picture, the device is translated slightly to the left, and the left-most portions of the couch and virtual character are visible onscreen only.](images/com.apple.arkit/media-2923906@2x.png)

World-tracking sessions also provide several ways for your app to recognize or interact with elements of the real-world scene visible to the camera:

- Find real-world horizontal or vertical surfaces with [`planeDetection`](/documentation/ARKit/ARWorldTrackingConfiguration/planeDetection-swift.property). Add the surfaces to the session as [`ARPlaneAnchor`](/documentation/ARKit/ARPlaneAnchor) objects.
- Recognize and track the movement of 2D images with [`detectionImages`](/documentation/ARKit/ARWorldTrackingConfiguration/detectionImages). Add 2D images to the scene as [`ARImageAnchor`](/documentation/ARKit/ARImageAnchor) objects.
- Recognize 3D objects with [`detectionObjects`](/documentation/ARKit/ARWorldTrackingConfiguration/detectionObjects). Add 3D objects to the scene as [`ARObjectAnchor`](/documentation/ARKit/ARObjectAnchor) objects.
- Find the 3D positions of real-world features that correspond to a touch point on the device’s screen with ray casting.

## Topics

### Creating a Configuration

[`init()`](/documentation/ARKit/ARWorldTrackingConfiguration/init())

Initializes a new world-tracking configuration.

[`new`](/documentation/ARKit/ARWorldTrackingConfiguration/new)

Creates a new world-tracking configuration.

[`initialWorldMap`](/documentation/ARKit/ARWorldTrackingConfiguration/initialWorldMap)

The state from a previous AR session to attempt to resume with this session configuration.

### Tracking Surfaces

[`planeDetection`](/documentation/ARKit/ARWorldTrackingConfiguration/planeDetection-swift.property)

The configuration’s plane detection options.

[`ARWorldTrackingConfiguration.PlaneDetection`](/documentation/ARKit/ARWorldTrackingConfiguration/PlaneDetection-swift.struct)

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

[`sceneReconstruction`](/documentation/ARKit/ARWorldTrackingConfiguration/sceneReconstruction)

A flag that enables scene reconstruction.

[`supportsSceneReconstruction(_:)`](/documentation/ARKit/ARWorldTrackingConfiguration/supportsSceneReconstruction(_:))

Checks if the device supports scene reconstruction.

### Detecting or Tracking Images

[`detectionImages`](/documentation/ARKit/ARWorldTrackingConfiguration/detectionImages)

A set of images that ARKit searches for in the user’s environment.

[`maximumNumberOfTrackedImages`](/documentation/ARKit/ARWorldTrackingConfiguration/maximumNumberOfTrackedImages)

The number of image anchors to monitor closely for position and orientation updates.

[`automaticImageScaleEstimationEnabled`](/documentation/ARKit/ARWorldTrackingConfiguration/automaticImageScaleEstimationEnabled)

A flag that instructs the framework to estimate and set the scale of a detected or tracked image on your behalf.

### Detecting and tracking 3D objects

[`detectionObjects`](/documentation/ARKit/ARWorldTrackingConfiguration/detectionObjects)

A set of 3D objects that the framework attempts to detect in the user’s environment.

[`trackingObjects`](/documentation/ARKit/ARWorldTrackingConfiguration/trackingObjects)

Objects to track in the scene.

### Tracking the User’s Face

[`userFaceTrackingEnabled`](/documentation/ARKit/ARWorldTrackingConfiguration/userFaceTrackingEnabled)

A flag that determines whether ARKit tracks the user’s face in a world-tracking session.

[`supportsUserFaceTracking`](/documentation/ARKit/ARWorldTrackingConfiguration/supportsUserFaceTracking)

A Boolean value that tells you whether the iOS device supports tracking the user’s face during a world-tracking session.

### Creating Realistic Reflections

[`environmentTexturing`](/documentation/ARKit/ARWorldTrackingConfiguration/environmentTexturing-swift.property)

An option that determines how the framework generates environment textures.

[`ARWorldTrackingConfiguration.EnvironmentTexturing`](/documentation/ARKit/ARWorldTrackingConfiguration/EnvironmentTexturing-swift.enum)

The available environment texturing options for world tracking.

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

An object that provides environmental lighting information for a specific area of space in a world-tracking AR session.

[`wantsHDREnvironmentTextures`](/documentation/ARKit/ARWorldTrackingConfiguration/wantsHDREnvironmentTextures)

A flag that instructs the framework to create environment textures in HDR format.

### Managing Device Camera Behavior

[`isAutoFocusEnabled`](/documentation/ARKit/ARWorldTrackingConfiguration/isAutoFocusEnabled)

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

### Enabling Collaboration

[`isCollaborationEnabled`](/documentation/ARKit/ARWorldTrackingConfiguration/isCollaborationEnabled)

A flag that opts you in to a peer-to-peer multiuser AR experience.

### Accessing App Clip Codes

  <doc://com.apple.documentation/documentation/AppClip/interacting-with-app-clip-codes-in-ar>

[`supportsAppClipCodeTracking`](/documentation/ARKit/ARWorldTrackingConfiguration/supportsAppClipCodeTracking)

A flag that indicates if the device tracks App Clip Codes.

[`appClipCodeTrackingEnabled`](/documentation/ARKit/ARWorldTrackingConfiguration/appClipCodeTrackingEnabled)

A Boolean value that indicates if the framework searches the physical environment for App Clip Codes.

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

An anchor that tracks the position and orientation of an App Clip Code in the physical environment.



---

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)