<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARFrame",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARFrame"
  },
  "title" : "ARFrame"
}
-->

# ARFrame

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

```
class ARFrame
```

## 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`](/documentation/ARKit/ARFrame) in two ways:

- Occasionally, by accessing an [`ARSession`](/documentation/ARKit/ARSession) object’s [`currentFrame`](/documentation/ARKit/ARSession/currentFrame)
- Constantly, as a stream of frames through the [`session(_:didUpdate:)`](/documentation/ARKit/ARSessionDelegate/session(_:didUpdate:)-9v2kw) callback

To automatically receive all frames as ARKit captures them, make one of your objects the [`delegate`](/documentation/ARKit/ARSession/delegate) of your app’s [`ARSession`](/documentation/ARKit/ARSession).

Each frame can contain additional data, for example, EXIF ([`exifData`](/documentation/ARKit/ARFrame/exifData)), or data based on any particular [`frameSemantics`](/documentation/ARKit/ARConfiguration/frameSemantics-swift.property) that you enable.

## Topics

### Accessing camera data

[`camera`](/documentation/ARKit/ARFrame/camera)

Information about the camera position, orientation, and imaging parameters used to capture the frame.

[`capturedImage`](/documentation/ARKit/ARFrame/capturedImage)

A pixel buffer containing the image captured by the camera.

[`timestamp`](/documentation/ARKit/ARFrame/timestamp)

The time at which the frame was captured.

[`cameraGrainIntensity`](/documentation/ARKit/ARFrame/cameraGrainIntensity)

A value that specifies the amount of grain present in the camera grain texture.

[`cameraGrainTexture`](/documentation/ARKit/ARFrame/cameraGrainTexture)

A tileable Metal texture created by ARKit to match the visual characteristics of the current video stream.

[`exifData`](/documentation/ARKit/ARFrame/exifData)

Auxiliary data for the captured image.

### Accessing scene data

[`lightEstimate`](/documentation/ARKit/ARFrame/lightEstimate)

An estimate of lighting conditions based on the camera image.

[`rawFeaturePoints`](/documentation/ARKit/ARFrame/rawFeaturePoints)

The current intermediate results of the scene analysis ARKit uses to perform world tracking.

[`capturedDepthData`](/documentation/ARKit/ARFrame/capturedDepthData)

Depth data captured in front-camera experiences.

[`capturedDepthDataTimestamp`](/documentation/ARKit/ARFrame/capturedDepthDataTimestamp)

The time at which depth data for the frame (if any) was captured.

[`sceneDepth`](/documentation/ARKit/ARFrame/sceneDepth)

Data on the distance between a device’s rear camera and real-world objects in an AR experience.

[`smoothedSceneDepth`](/documentation/ARKit/ARFrame/smoothedSceneDepth)

An average of distance measurements between a device’s rear camera and real-world objects that creates smoother visuals in an AR experience.

### Tracking and interacting with the real world

[`anchors`](/documentation/ARKit/ARFrame/anchors)

The list of anchors representing positions tracked or objects detected in the scene.

[`raycastQuery(from:allowing:alignment:)`](/documentation/ARKit/ARFrame/raycastQuery(from:allowing:alignment:))

Get a ray-cast query for a screen point.

[`hitTest(_:types:)`](/documentation/ARKit/ARFrame/hitTest(_:types:))

Searches for real-world objects or AR anchors in the captured camera image.

### Checking world-mapping status

[`worldMappingStatus`](/documentation/ARKit/ARFrame/worldMappingStatus-swift.property)

The feasibility of generating or relocalizing a world map for this frame.

[`ARFrame.WorldMappingStatus`](/documentation/ARKit/ARFrame/WorldMappingStatus-swift.enum)

A value describing the world mapping status for the area visible in a given frame.

### Checking for people

[`detectedBody`](/documentation/ARKit/ARFrame/detectedBody)

The screen position information of a body that ARKit recognizes in the camera image.

[`ARBody2D`](/documentation/ARKit/ARBody2D)

The screen-space representation of a person ARKit recognizes in the camera feed.

[`segmentationBuffer`](/documentation/ARKit/ARFrame/segmentationBuffer)

A buffer that contains pixel information identifying the shape of objects from the camera feed that you use to occlude virtual content.

[`estimatedDepthData`](/documentation/ARKit/ARFrame/estimatedDepthData)

A buffer that represents the estimated depth values from the camera feed that you use to occlude virtual content.

[`ARFrame.SegmentationClass`](/documentation/ARKit/ARFrame/SegmentationClass)

A categorization of a pixel that defines a type of content you use to occlude your app’s virtual content.

### Assessing geo-tracking condition

[`geoTrackingStatus`](/documentation/ARKit/ARFrame/geoTrackingStatus)

The session’s condition with respect to geographic tracking at the time the session captured the frame.

[`ARGeoTrackingStatus`](/documentation/ARKit/ARGeoTrackingStatus)

The state, accuracy, and reason that are possible for geo-tracking’s current condition.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)