docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Spatial Entities Planes feature

    Learn how to use planes with OpenXR Spatial Entities.

    This page is a supplement to the AR Foundation Plane detection manual. The following sections only contain information about APIs where Spatial Entities exhibits unique platform-specific behavior.

    Tip

    When developing an AR app, refer to both the AR Foundation documentation as well as the required packages for each platform you support.

    Enable Spatial Entities Planes

    To configure planes in your Spatial Entities project:

    1. Open the OpenXR section of the XR Plug-in Management settings (menu: Edit > Project Settings > XR Plug-in Management > OpenXR tab).
    2. Under OpenXR Feature Groups, select Spatial Entities to open the list of Spatial Entities features.
    3. Enable Spatial Entities: Planes.

    Spatial Entities: Planes feature in Project Settings
    Spatial Entities: Planes feature in Project Settings.

    Resolve subsystem conflicts

    AR Foundation supports only one enabled plane provider at a time. If your project also uses other AR Foundation provider plug-ins such as Unity OpenXR: Meta or Unity OpenXR: Android XR, you must disable plane features among these packages to ensure that only one plane provider is enabled at a time.

    Refer to the following table to understand the expected behavior of Spatial Entities Planes relative to other OpenXR-based AR Foundation providers:

    Runtime Behavior of Spatial Entities Planes feature
    Android XR Parity with Android XR Planes feature
    Meta Horizon OS Parity with Meta Quest Planes feature's XR_FB_scene provider type

    The Spatial Entities Planes feature offers a reliable multi-vendor planes implementation, so Unity generally recommends Spatial Entities for best portability across multiple OpenXR runtimes. However, note that on Meta Horizon OS, the Spatial Entities Planes feature doesn't expose the higher-fidelity plane data offered by Meta's vendor-specific room meshes. If your app requires more nuanced plane data on Meta Quest devices, compare the Spatial Entities Planes implementation with OpenXR Meta's XR_META_spatial_entity_room_mesh provider type on your target devices to determine which implementation best meets your needs.

    Permissions

    Your app can't access any spatial data until the user grants the necessary permissions on their device. Refer to Permissions for more information.

    Plane classifications

    This package maps OpenXR's XrSpatialPlaneSemanticLabelEXT to AR Foundation's PlaneClassifications, as outlined in the following table:

    AR Foundation Label OpenXR Label
    Table XR_SPATIAL_PLANE_SEMANTIC_LABEL_TABLE_EXT
    Couch
    Floor XR_SPATIAL_PLANE_SEMANTIC_LABEL_FLOOR_EXT
    Ceiling XR_SPATIAL_PLANE_SEMANTIC_LABEL_CEILING_EXT
    WallFace XR_SPATIAL_PLANE_SEMANTIC_LABEL_WALL_EXT
    WallArt
    DoorFrame
    WindowFrame
    InvisibleWallFace
    InnerWallFace
    Other XR_SPATIAL_PLANE_SEMANTIC_LABEL_UNCATEGORIZED_EXT
    Note

    AR Foundation supports all semantic labels contained in the OpenXR Spatial Entities extensions. Empty cells indicate that the XR_EXT_spatial_plane_tracking extension can't provide the given semantic label.

    OpenXR boundary data sources

    The OpenXR provider generates vertex boundaries using one of the following component types:

    • XR_SPATIAL_COMPONENT_TYPE_POLYGON_2D_EXT
    • XR_SPATIAL_COMPONENT_TYPE_MESH_2D_EXT

    If a runtime supports both components, this package prioritizes the Polygon 2D component.

    Note

    To maintain compatibility with AR Foundation’s boundary requirements, any internal holes (cutouts) provided by the Mesh 2D component are ignored, creating a polygonal plane boundary that uses only the outer perimeter vertices.

    In This Article
    Back to top
    Copyright © 2026 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)