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

# ARPlaneAnchor

An anchor for a 2D planar surface that ARKit detects in the physical environment.

```
class ARPlaneAnchor
```

## Overview

When you enable [`planeDetection`](/documentation/ARKit/ARWorldTrackingConfiguration/planeDetection-swift.property) in a world tracking session, ARKit notifies your app of all the surfaces it observes using the device’s back camera. ARKit calls your delegate’s [`session(_:didAdd:)`](/documentation/ARKit/ARSessionDelegate/session(_:didAdd:)) with an [`ARPlaneAnchor`](/documentation/ARKit/ARPlaneAnchor) for each unique surface. Each plane anchor provides details about the surface, like its real-world position and shape.

The width and length of a plane (the [`planeExtent`](/documentation/ARKit/ARPlaneAnchor/planeExtent)) span the xz-plane of an [`ARPlaneAnchor`](/documentation/ARKit/ARPlaneAnchor) instance’s local coordinate system. The y-axis of the plane anchor is the plane’s normal vector.

## Topics

### Orientation

[`alignment`](/documentation/ARKit/ARPlaneAnchor/alignment-swift.property)

The general orientation of the detected plane with respect to gravity.

[`ARPlaneAnchor.Alignment`](/documentation/ARKit/ARPlaneAnchor/Alignment-swift.enum)

The kinds of alignment — horizontal or vertical — that a plane anchor can have.

### Geometry

[`geometry`](/documentation/ARKit/ARPlaneAnchor/geometry)

A coarse triangle mesh representing the general shape of the detected plane.

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

A 3D mesh describing the shape of a detected plane in world-tracking AR sessions.

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

A SceneKit representation of the 2D shape of a plane, for use with plane detection results in an AR session.

### Dimensions

[`center`](/documentation/ARKit/ARPlaneAnchor/center)

The center point of the plane relative to its anchor position.

[`planeExtent`](/documentation/ARKit/ARPlaneAnchor/planeExtent)

The estimated width, length, and y-axis rotation of the detected plane.

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

The size and y-axis rotation of a detected plane.

[`extent`](/documentation/ARKit/ARPlaneAnchor/extent)

The estimated width and length of the detected plane.

### Classifying a Plane

[`isClassificationSupported`](/documentation/ARKit/ARPlaneAnchor/isClassificationSupported)

A Boolean value that indicates whether plane classification is available on the current device.

[`classification`](/documentation/ARKit/ARPlaneAnchor/classification-2r4x8)

A general characterization of what kind of real-world surface the plane anchor represents.

[`ARPlaneAnchor.Classification`](/documentation/ARKit/ARPlaneAnchor/Classification-swift.enum)

Possible characterizations of real-world surfaces represented by plane anchors.

[`classification`](/documentation/ARKit/ARPlaneAnchor/classification-2hi2p)

A general characterization of what kind of real-world surface the plane anchor represents.

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

Possible characterizations of real-world surfaces represented by plane anchors.

[`classificationStatus`](/documentation/ARKit/ARPlaneAnchor/classificationStatus)

The current state of ARKit’s process for classifying the plane anchor.

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

Possible states of ARKit’s process for classifying plane anchors.



---

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)