---
title: ARConfiguration
framework: arkit
role: symbol
role_heading: Class
path: arkit/arconfiguration
---

# ARConfiguration

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

## Declaration

```swift
class ARConfiguration
```

## Mentioned in

Verifying Device Support and User Permission

## Overview

Overview 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 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 yourself; instead, instantiate one of its subclasses. For more information about the camera-capture pipeline, see Choosing Which Camera Feed to Augment.

## Topics

### Verifying device support

- [isSupported](arkit/arconfiguration/issupported.md)

### Enabling frame features

- [frameSemantics](arkit/arconfiguration/framesemantics-swift.property.md)
- [ARConfiguration.FrameSemantics](arkit/arconfiguration/framesemantics-swift.struct.md)
- [supportsFrameSemantics(_:)](arkit/arconfiguration/supportsframesemantics(_:).md)

### Configuring the AR session

- [isLightEstimationEnabled](arkit/arconfiguration/islightestimationenabled.md)
- [worldAlignment](arkit/arconfiguration/worldalignment-swift.property.md)
- [ARConfiguration.WorldAlignment](arkit/arconfiguration/worldalignment-swift.enum.md)

### Managing video capture options

- [videoFormat](arkit/arconfiguration/videoformat-swift.property.md)
- [supportedVideoFormats](arkit/arconfiguration/supportedvideoformats.md)
- [ARConfiguration.VideoFormat](arkit/arconfiguration/videoformat-swift.class.md)
- [videoHDRAllowed](arkit/arconfiguration/videohdrallowed.md)
- [configurableCaptureDeviceForPrimaryCamera](arkit/arconfiguration/configurablecapturedeviceforprimarycamera.md)
- [recommendedVideoFormatFor4KResolution](arkit/arconfiguration/recommendedvideoformatfor4kresolution.md)
- [recommendedVideoFormatForHighResolutionFrameCapturing](arkit/arconfiguration/recommendedvideoformatforhighresolutionframecapturing.md)

### Recording Audio

- [providesAudioData](arkit/arconfiguration/providesaudiodata.md)

### Reconstructing the Scene

- [ARConfiguration.SceneReconstruction](arkit/arconfiguration/scenereconstruction.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [ARBodyTrackingConfiguration](arkit/arbodytrackingconfiguration.md)
- [ARFaceTrackingConfiguration](arkit/arfacetrackingconfiguration.md)
- [ARGeoTrackingConfiguration](arkit/argeotrackingconfiguration.md)
- [ARImageTrackingConfiguration](arkit/arimagetrackingconfiguration.md)
- [ARObjectScanningConfiguration](arkit/arobjectscanningconfiguration.md)
- [AROrientationTrackingConfiguration](arkit/arorientationtrackingconfiguration.md)
- [ARPositionalTrackingConfiguration](arkit/arpositionaltrackingconfiguration.md)
- [ARWorldTrackingConfiguration](arkit/arworldtrackingconfiguration.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
