---
title: ARObjectScanningConfiguration
framework: arkit
role: symbol
role_heading: Class
path: arkit/arobjectscanningconfiguration
---

# ARObjectScanningConfiguration

A configuration that recognizes objects and collects high-fidelity data about specific objects using the rear-facing camera.

## Declaration

```swift
class ARObjectScanningConfiguration
```

## Overview

Overview To create an app that recognizes objects in the physical environment, first you scan them during development using ARObjectScanningConfiguration. After you’ve scanned an object, call createReferenceObject(transform:center:extent:completionHandler:) to turn it into an ARReferenceObject that you can use to detect it again at run-time. When users run your app, you ask ARKit to look for your scanned obects by running a world tracking configuration and assigning reference objects to its detectionObjects property. important: ARObjectScanningConfiguration is for use only in development scenarios. Because the high-fidelity spatial mapping required by object scanning has a high performance and energy cost, many ARKit features are disabled that aren’t required for object scanning.

## Topics

### Creating a Configuration

- [init()](arkit/arobjectscanningconfiguration/init().md)

### Enabling Plane Detection

- [planeDetection](arkit/arobjectscanningconfiguration/planedetection.md)
- [ARWorldTrackingConfiguration.PlaneDetection](arkit/arworldtrackingconfiguration/planedetection-swift.struct.md)

### Managing Device Camera Behavior

- [isAutoFocusEnabled](arkit/arobjectscanningconfiguration/isautofocusenabled.md)

## Relationships

### Inherits From

- [ARConfiguration](arkit/arconfiguration.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)
