---
title: ARFrame
framework: arkit
role: symbol
role_heading: Class
path: arkit/arframe
---

# ARFrame

A video image captured as part of a session with position-tracking information.

## Declaration

```swift
class ARFrame
```

## Mentioned in

Displaying an AR Experience with Metal

## Overview

Overview A running session continuously captures video frames from the device’s camera while ARKit analyzes the captures to determine the user’s position in the world. ARKit can provide this information to you in the form of an ARFrame in two ways: Occasionally, by accessing an ARSession object’s currentFrame Constantly, as a stream of frames through the session(_:didUpdate:) callback To automatically receive all frames as ARKit captures them, make one of your objects the delegate of your app’s ARSession. Each frame can contain additional data, for example, EXIF (exifData), or data based on any particular frameSemantics that you enable.

## Topics

### Accessing camera data

- [camera](arkit/arframe/camera.md)
- [capturedImage](arkit/arframe/capturedimage.md)
- [timestamp](arkit/arframe/timestamp.md)
- [cameraGrainIntensity](arkit/arframe/cameragrainintensity.md)
- [cameraGrainTexture](arkit/arframe/cameragraintexture.md)
- [exifData](arkit/arframe/exifdata.md)

### Accessing scene data

- [lightEstimate](arkit/arframe/lightestimate.md)
- [displayTransform(for:viewportSize:)](arkit/arframe/displaytransform(for:viewportsize:).md)
- [rawFeaturePoints](arkit/arframe/rawfeaturepoints.md)
- [capturedDepthData](arkit/arframe/captureddepthdata.md)
- [capturedDepthDataTimestamp](arkit/arframe/captureddepthdatatimestamp.md)
- [sceneDepth](arkit/arframe/scenedepth.md)
- [smoothedSceneDepth](arkit/arframe/smoothedscenedepth.md)

### Tracking and interacting with the real world

- [anchors](arkit/arframe/anchors.md)
- [raycastQuery(from:allowing:alignment:)](arkit/arframe/raycastquery(from:allowing:alignment:).md)
- [hitTest(_:types:)](arkit/arframe/hittest(_:types:).md)

### Checking world-mapping status

- [worldMappingStatus](arkit/arframe/worldmappingstatus-swift.property.md)
- [ARFrame.WorldMappingStatus](arkit/arframe/worldmappingstatus-swift.enum.md)

### Checking for people

- [detectedBody](arkit/arframe/detectedbody.md)
- [ARBody2D](arkit/arbody2d.md)
- [segmentationBuffer](arkit/arframe/segmentationbuffer.md)
- [estimatedDepthData](arkit/arframe/estimateddepthdata.md)
- [ARFrame.SegmentationClass](arkit/arframe/segmentationclass.md)

### Assessing geo-tracking condition

- [geoTrackingStatus](arkit/arframe/geotrackingstatus.md)
- [ARGeoTrackingStatus](arkit/argeotrackingstatus.md)

### Instance Properties

- [metadataObjects](arkit/arframe/metadataobjects.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.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)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Accessing the camera frame

- [currentFrame](arkit/arsession/currentframe.md)
- [captureHighResolutionFrame(completion:)](arkit/arsession/capturehighresolutionframe(completion:).md)
