---
title: ObjectCaptureSession
framework: realitykit
role: symbol
role_heading: Class
path: realitykit/objectcapturesession
---

# ObjectCaptureSession

A session object that monitors and controls image capture for photogrammetry.

## Declaration

```swift
@MainActor class ObjectCaptureSession
```

## Overview

Overview An ObjectCaptureSession is used together with an ObjectCaptureView to present a view that assists in capturing images of an object for reconstruction of a 3D model by using a PhotogrammetrySession. A capture session contains functions for starting and advancing the capture session through a state machine that controls the image capture process. Your app can also observe several properties of the capture session to determine the current state of the capture process. Once a session enters the .completed state, your app can transfer the images to a Mac or use them locally on the iOS device for use in object reconstruction using PhotogrammetrySession. Model reconstruction is a separate phase which this session does not directly monitor or control.

## Topics

### Creating a session

- [init()](realitykit/objectcapturesession/init().md)

### Checking availability

- [isSupported](realitykit/objectcapturesession/issupported.md)

### Configuring a session

- [feedback](realitykit/objectcapturesession/feedback-swift.property.md)
- [ObjectCaptureSession.Feedback](realitykit/objectcapturesession/feedback-swift.enum.md)
- [isPaused](realitykit/objectcapturesession/ispaused.md)
- [state](realitykit/objectcapturesession/state.md)
- [cameraTracking](realitykit/objectcapturesession/cameratracking.md)
- [ObjectCaptureSession.Tracking](realitykit/objectcapturesession/tracking.md)

### Monitoring the session

- [ObjectCaptureSession.CaptureState](realitykit/objectcapturesession/capturestate.md)
- [ObjectCaptureSession.Error](realitykit/objectcapturesession/error.md)

### Controlling the session

- [cancel()](realitykit/objectcapturesession/cancel().md)
- [finish()](realitykit/objectcapturesession/finish().md)
- [pause()](realitykit/objectcapturesession/pause().md)
- [requestImageCapture()](realitykit/objectcapturesession/requestimagecapture().md)
- [resume()](realitykit/objectcapturesession/resume().md)
- [startCapturing()](realitykit/objectcapturesession/startcapturing().md)

### Structures

- [ObjectCaptureSession.Configuration](realitykit/objectcapturesession/configuration-swift.struct.md)
- [ObjectCaptureSession.Updates](realitykit/objectcapturesession/updates.md)

### Instance Properties

- [cameraTrackingUpdates](realitykit/objectcapturesession/cameratrackingupdates.md)
- [canRequestImageCapture](realitykit/objectcapturesession/canrequestimagecapture.md)
- [canRequestImageCaptureUpdates](realitykit/objectcapturesession/canrequestimagecaptureupdates.md)
- [configuration](realitykit/objectcapturesession/configuration-swift.property.md)
- [feedbackUpdates](realitykit/objectcapturesession/feedbackupdates.md)
- [isAutoCaptureEnabled](realitykit/objectcapturesession/isautocaptureenabled.md)
- [isPausedUpdates](realitykit/objectcapturesession/ispausedupdates.md)
- [maximumNumberOfInputImages](realitykit/objectcapturesession/maximumnumberofinputimages.md)
- [numberOfShotsTaken](realitykit/objectcapturesession/numberofshotstaken.md)
- [numberOfShotsTakenUpdates](realitykit/objectcapturesession/numberofshotstakenupdates.md)
- [shouldPlayHaptics](realitykit/objectcapturesession/shouldplayhaptics.md)
- [stateUpdates](realitykit/objectcapturesession/stateupdates.md)
- [userCompletedScanPass](realitykit/objectcapturesession/usercompletedscanpass.md)
- [userCompletedScanPassUpdates](realitykit/objectcapturesession/usercompletedscanpassupdates.md)

### Instance Methods

- [beginNewScanPass()](realitykit/objectcapturesession/beginnewscanpass().md)
- [beginNewScanPassAfterFlip()](realitykit/objectcapturesession/beginnewscanpassafterflip().md)
- [resetDetection()](realitykit/objectcapturesession/resetdetection().md)
- [start(imagesDirectory:configuration:)](realitykit/objectcapturesession/start(imagesdirectory:configuration:).md)
- [startDetecting()](realitykit/objectcapturesession/startdetecting().md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Escapable](swift/escapable.md)
- [Identifiable](swift/identifiable.md)
- [Observable](observation/observable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Model creation

- [Capturing photographs for RealityKit Object Capture](realitykit/capturing-photographs-for-realitykit-object-capture.md)
- [Creating 3D objects from photographs](realitykit/creating-3d-objects-from-photographs.md)
- [Scanning objects using Object Capture](realitykit/scanning-objects-using-object-capture.md)
- [Building an object reconstruction app](realitykit/building-an-object-reconstruction-app.md)
- [Creating a photogrammetry command-line app](realitykit/creating-a-photogrammetry-command-line-app.md)
- [Using object capture assets in RealityKit](realitykit/using-object-capture-assets-in-realitykit.md)
- [PhotogrammetrySession](realitykit/photogrammetrysession.md)
- [PhotogrammetrySample](realitykit/photogrammetrysample.md)
- [ObjectCaptureView](realitykit/objectcaptureview.md)
- [ObjectCapturePointCloudView](realitykit/objectcapturepointcloudview.md)
