<!--
{
  "documentType" : "article",
  "framework" : "USD",
  "identifier" : "/documentation/USD/usd-schemas-for-ar",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "OpenUSD schemas for AR"
}
-->

# OpenUSD schemas for AR

Add augmented reality functionality to your 3D content using USD schemas.

## Discussion

Universal Scene Description (USD) is a widely-supported specification for the interchange and storage of 3D graphic data. USD files are the preferred interchange format for apps displaying 3D and AR content using the <doc://com.apple.documentation/documentation/ARKit> and <doc://com.apple.documentation/documentation/RealityKit> frameworks. Apple, in collaboration with Pixar, developed a set of schemas to extend USD for AR use cases. These schemas, among other things, add the ability to:

- Anchor 3D content at a specific location in the real world.
- React to real-world situations.
- Participate in a physics simulation.
- Connect audio effects to a location.
- Annotate the environment by displaying text.

These schemas allow you to include the data needed to support augmented reality features in AR Quick Look, and also let you use USD files in place of `.reality` files when writing <doc://com.apple.documentation/documentation/RealityKit> apps. Reality Composer Pro uses these schemas to store data for AR features, like anchoring, in its USDA scene files.

To enable AR features in assets from a third-party digital content-creation (DCC) tool that doesn’t support these schemas, export the file as a `.usda` file using the [USD Toolset](https://openusd.org/release/toolset.html) and edit them by hand.

> Note:
> These new schemas (see <doc://com.apple.usd/documentation/USD/schema-definitions-for-third-party-dccs>) are included in the Universal Scene Description specification as an addendum and are marked as preliminary. The addendum also adds metadata (name-value pairs; see [Metadata](https://openusd.org/release/glossary.html#usdglossary-metadata)), and new data properties ([Property](https://openusd.org/release/glossary.html#usdglossary-property)). To provide feedback on the addendum, use the [Feedback Assistant](https://feedbackassistant.apple.com/welcome).

### Implement AR functionality

The following illustration depicts a virtual castle rendered by a *runtime*, the app or system framework that implements the AR functionality described in the schemas. The prim for the virtual castle (USD refers to individual units of 3D content as *prims;* see [UsdPrim](https://openusd.org/docs/api/class_usd_prim.html)) instructs the runtime to place the castle on a known image in the physical environment, called the image anchor. When the user comes into proximity with the anchor, the runtime displays the 3D visualization of the castle. Falling snowflakes represent additional prims that behave as if in accordance with gravity, and disappear as they approach a real-world surface.

![An illustration of two tables. On the surface of the table on the left, a two-dimensional image of a castle labeled “image anchor” is outlined by a dotted line to indicate that it is replaceable. The table on the right is the same table, viewed through an AR experience created by the app’s camera pass-through on an iOS device. A virtual castle rests on top of the table in place of the 2D image. Virtual snowflakes descend from virtual clouds to fall around the 3D visualization of the castle. Shadows on the table beneath the snowflakes indicate that the runtime projects the location at which each snowflake will land on the table.](images/com.apple.usd/usdz-schemas-for-ar-1@2x.png)

## Topics

### Animation

Control animation playback with metadata.

[autoPlay](/documentation/USD/autoplay)

Metadata that specifies whether an animation plays automatically on load.

[playbackMode](/documentation/USD/playbackmode)

Metadata that controls animation idling until a behavior takes over.

### Anchoring

Place a prim at the physical location of a real-world object.

[Placing a prim in the real world](/documentation/USD/placing-a-prim-in-the-real-world)

Anchor a prim to a real-world object that the runtime recognizes in the physical environment.

[Preliminary_AnchoringAPI](/documentation/USD/preliminary-anchoringapi)

A schema that defines the placement of a prim and its children at a real-world location.

[Preliminary_ReferenceImage](/documentation/USD/preliminary-referenceimage)

A schema that defines the properties of an image in the physical environment.

### Behaviors

[Actions and triggers](/documentation/USD/actions-and-triggers)

Enable visual and audible responses to programmatic or environmental events.

### Text

[Preliminary_Text](/documentation/USD/preliminary-text)

A prim that renders 3D text in a scene.

### Scenes and lighting

  <doc://com.apple.documentation/documentation/ARKit/specifying-a-lighting-environment-in-ar-quick-look>

[preferredIblVersion](/documentation/USD/preferrediblversion)

Metadata that determines the lighting environment of virtual content.

[sceneLibrary](/documentation/USD/scenelibrary)

Metadata that partitions an asset into scene-based units.

### Digital content creation

[Schema definitions for third-party DCCs](/documentation/USD/schema-definitions-for-third-party-dccs)

Update your local USD library to add interactive and augmented reality features.



---

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)