The abstract base class for AR session configurations.


ARConfiguration is an abstract class; you do not create or work with instances of this class.

To run an AR session, create an instance of the concrete ARConfiguration subclass that provides the kind of augmented reality experience you want to use in your app or game. Then, set up the configuration object's properties and pass the configuration to your session's run(_:options:) method. ARKit includes the following concrete configuration classes:


Provides high-quality AR experiences that use the rear-facing camera precisely track a device's position and orientation and allow plane detection and hit testing.


Provides basic AR experiences that use the rear-facing camera and track only a device's orientation.


Provides AR experiences that use the front-facing camera and track the movement and expressions of the user's face.


Verifying Device Support

class var isSupported: Bool

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

Configuring the AR Session

var isLightEstimationEnabled: Bool

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

var worldAlignment: ARConfiguration.WorldAlignment

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

enum ARConfiguration.WorldAlignment

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

Managing Video Capture Options

var videoFormat: ARConfiguration.VideoFormat

The video capture size and frame rate to be used for sessions running this configuration.

class var supportedVideoFormats: [ARConfiguration.VideoFormat]

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

class ARConfiguration.VideoFormat

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


Recording Audio

var providesAudioData: Bool

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


Inherits From

See Also

First Steps

About Augmented Reality and ARKit

Discover supporting concepts, features, and best practices for building great AR experiences.

class ARSession

A shared object that manages the device camera and motion processing needed for augmented reality experiences.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software