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

# ARConfiguration

The base object that contains information about how to configure an augmented reality session.

```
class ARConfiguration
```

## Overview

[`ARConfiguration`](/documentation/ARKit/ARConfiguration) defines a base class for the different options you can configure in your AR experience.

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

To acquire the live-camera imagery, ARKit manages a camera-capture pipeline for you. Depending on the configuration you choose, it determines the cameras that capture imagery, and which camera feed the app displays.

AR apps recognize real-world regions of interest. At runtime, ARKit generates an [`ARAnchor`](/documentation/ARKit/ARAnchor) for a real-world object it recognizes, which allows an app to refer to its details, such as size and physical location. The configuration you choose determines the kinds of real-world objects ARKit recognizes and makes available to your app.

Don’t allocate [`ARConfiguration`](/documentation/ARKit/ARConfiguration) yourself; instead, instantiate one of its subclasses.

For more information about the camera-capture pipeline, see [Choosing Which Camera Feed to Augment](/documentation/ARKit/choosing-which-camera-feed-to-augment).

## Topics

### Verifying device support

[`isSupported`](/documentation/ARKit/ARConfiguration/isSupported)

A Boolean value indicating whether the current device supports this session configuration class.

### Enabling frame features

[`frameSemantics`](/documentation/ARKit/ARConfiguration/frameSemantics-swift.property)

The set of active semantics on the frame.

[`ARConfiguration.FrameSemantics`](/documentation/ARKit/ARConfiguration/FrameSemantics-swift.struct)

Types of optional frame features you can enable in your app.

[`supportsFrameSemantics(_:)`](/documentation/ARKit/ARConfiguration/supportsFrameSemantics(_:))

Checks whether a particular feature is supported.

### Configuring the AR session

[`isLightEstimationEnabled`](/documentation/ARKit/ARConfiguration/isLightEstimationEnabled)

A Boolean value specifying whether ARKit analyzes scene lighting in captured camera images.

[`worldAlignment`](/documentation/ARKit/ARConfiguration/worldAlignment-swift.property)

A value specifying how the session maps real-world device motion into a 3D scene coordinate system.

[`ARConfiguration.WorldAlignment`](/documentation/ARKit/ARConfiguration/WorldAlignment-swift.enum)

Options for how ARKit constructs a scene coordinate system based on real-world device motion.

### Managing video capture options

[`videoFormat`](/documentation/ARKit/ARConfiguration/videoFormat-swift.property)

Video format of the session output.

[`supportedVideoFormats`](/documentation/ARKit/ARConfiguration/supportedVideoFormats)

The set of video capture formats available on the current device.

[`ARConfiguration.VideoFormat`](/documentation/ARKit/ARConfiguration/VideoFormat-swift.class)

A video size and frame rate specification for use with an AR session.

[`videoHDRAllowed`](/documentation/ARKit/ARConfiguration/videoHDRAllowed)

Enables high dynamic range (HDR) for the session’s camera feed.

[`configurableCaptureDeviceForPrimaryCamera`](/documentation/ARKit/ARConfiguration/configurableCaptureDeviceForPrimaryCamera)

An object that enables you to alter the appearance of a frame’s captured image.

[`recommendedVideoFormatFor4KResolution`](/documentation/ARKit/ARConfiguration/recommendedVideoFormatFor4KResolution)

Provides a 4K video format if the device and configuration support it.

[`recommendedVideoFormatForHighResolutionFrameCapturing`](/documentation/ARKit/ARConfiguration/recommendedVideoFormatForHighResolutionFrameCapturing)

Returns a video format that the framework recommends for high-resolution-still-image capture.

### Recording Audio

[`providesAudioData`](/documentation/ARKit/ARConfiguration/providesAudioData)

A Boolean value that specifies whether to capture audio during the AR session.

### Reconstructing the Scene

[`ARConfiguration.SceneReconstruction`](/documentation/ARKit/ARConfiguration/SceneReconstruction)

Options that enable ARKit to detect the shape of 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)