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

# ARRaycastResult

Information about a real-world surface found by examining a point on the screen.

```
class ARRaycastResult
```

## Overview

If you use <doc://com.apple.documentation/documentation/RealityKit/ARView> or [`ARSCNView`](/documentation/ARKit/ARSCNView) as your renderer, you can search for real-world surfaces at a screen point using the <doc://com.apple.documentation/documentation/RealityKit/ARView/raycast(from:allowing:alignment:)>, and [`raycastQuery(from:allowing:alignment:)`](/documentation/ARKit/ARSCNView/raycastQuery(from:allowing:alignment:)) functions, respectively.

If you use a custom renderer, you can find real-world positions using screen points with:

- The [`raycastQuery(from:allowing:alignment:)`](/documentation/ARKit/ARFrame/raycastQuery(from:allowing:alignment:)) function of [`ARFrame`](/documentation/ARKit/ARFrame).
- The [`raycast(_:)`](/documentation/ARKit/ARSession/raycast(_:)) function of [`ARSession`](/documentation/ARKit/ARSession).

For tracked raycasting, you call [`trackedRaycast(_:updateHandler:)`](/documentation/ARKit/ARSession/trackedRaycast(_:updateHandler:)) on your app’s current [`ARSession`](/documentation/ARKit/ARSession).

## Topics

### Identifying Results

[`worldTransform`](/documentation/ARKit/ARRaycastResult/worldTransform)

The position, rotation, and scale, of the ray’s intersection with the target.

[`anchor`](/documentation/ARKit/ARRaycastResult/anchor)

The anchor for the plane that the ray intersected.

[`target`](/documentation/ARKit/ARRaycastResult/target)

The type of surface that the ray intersects.

[`Target`](/documentation/ARKit/ARRaycastQuery/Target-swift.enum)

The types of surface you allow a raycast to intersect with.

[`targetAlignment`](/documentation/ARKit/ARRaycastResult/targetAlignment)

The alignment of the plane that the ray intersected.

[`TargetAlignment`](/documentation/ARKit/ARRaycastQuery/TargetAlignment-swift.enum)

A specification that indicates a target’s alignment with respect to gravity

## Relationships

### Conforms To

[`Hashable`](/documentation/Swift/Hashable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)