<!--
{
  "documentType" : "article",
  "framework" : "USD",
  "identifier" : "/documentation/USD/preliminary-anchoring-type",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "preliminary:anchoring:type"
}
-->

# preliminary:anchoring:type

A option that specifies the type of anchor.

## Discussion

The [Preliminary_AnchoringAPI](/documentation/USD/preliminary-anchoringapi) specifies an anchor’s center as the prim’s origin, and the top of the anchor as its normal vector points. The runtime requires an asset to supply a value for this property.

### Declaration

```other
uniform token preliminary:anchoring:type (
    allowedTokens = ["plane", "image", "face", "none"]
)
```

### Anchor Types

- `plane`: Requests that the runtime center the prim on top of a surface.
- `image`: Requests that the runtime center the prim on top of an image.
- `face`: Requests that the runtime center the prim on a detected face.
- `none`: Requests that the runtime doesn’t anchor the prim. This option has the same effect as omitting the anchoring schema.

### Anchor a cube to a real-world surface

By adding the anchoring schema and defining [preliminary:anchoring:type](/documentation/USD/preliminary-anchoring-type) of `plane`, the following cube instructs the runtime to place it on the first horizontal surface the runtime detects in an AR experience.

```swift
def Cube "PlaneAnchoredCube" (
    prepend apiSchemas = [ "Preliminary_AnchoringAPI" ]
)
{
    uniform token preliminary:anchoring:type = "plane"
    ...
}
```

---

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)