Develop with OpenXR

Android XR supports apps built with OpenXR through its support for the OpenXR 1.1 specification and select vendor extensions. OpenXR is an open standard that lets you create immersive and interactive experiences using a common set of APIs across a wide range of XR devices.

Features

Android XR supports features that allow you to build apps that take full advantage of the unique capabilities of XR devices, using OpenXR. These features include the following.

Trackables
Supports plane detection, which is the ability to identify and track flat surfaces within the environment, enabling the placement of virtual objects in relation to the real world and Anchors which are virtual points of reference that can be attached to real-world objects or locations, ensuring that virtual content remains accurately positioned and oriented even as the user moves around.
Raycasting
A technique used to determine the intersection point between a virtual ray and objects in the scene, facilitating interactions such as selecting and manipulating virtual elements.
Anchor persistence
The capability to save and restore anchors across multiple sessions, allowing for persistent and consistent placement of virtual content within the environment.
Object tracking
The ability to track mouse, keyboard and other objects in the real-world.
Depth textures
The generation of depth maps that provide information about the distance between the camera and objects in the scene, enabling more realistic occlusion and interaction effects.
Passthrough
The ability to blend real-world camera footage with virtual content, creating a mixed reality experience that seamlessly combines the physical and digital worlds.
Composition layer passthrough
Allows for a polygon passthrough composition layer cutout, can be used for bringing real world objects into a scene.
Face tracking
The ability to track the features of the user's face, enabling the creation of more realistic and expressive avatars and virtual characters.
Eye tracking
Provides position and orientation of the user's eye, which is designed to make eye pose for avatars more realistic.
Hand tracking
The ability to track the position and movement of the user's hands.
Hand mesh
Provides an accurate representation of the user's hands as a low poly mesh. Optimized for platform-to-application delivery to make sure you get the best performance possible. This is an alternative to other extensions which use a bind pose and blend weights.
Light estimation
Used for lighting models to match the user's real world lighting conditions.

Supported input devices

Android XR also supports the following input devices.

Hand Interaction
The recognition of specific hand gestures, such as pinching, swiping, and pointing, enabling the users to interact with virtual objects using gestures and hand movements.
Eye Gaze Interaction
The ability to track the user's eye movements, allowing them to select and interact with virtual objects using their gaze.
6DoF Motion Controllers
The ability to track the controllers position and movement along with Dpad and button bindings for triggering actions, or hover events within the application.
Mouse Interaction
The ability for users to interact with objects through a mouse pointer in 3D space

Supported performance features

Android XR supports the following performance-related features.

Eye-tracked foveation
Allows an app to render higher resolution content only at the eyes focal point.
Space warp
Uses velocity vectors and depth texture information to generate tween frames which effectively boosts the framerate required to keep your users immersed in your experiences
Performance metrics
Provides Android XR performance metrics at runtime of the current XR device, compositor, and XR application. This includes cpu frametime, gpu frame time, gpu utilization, cpu frequency, frames per second and more.

See the OpenXR Feature Overview for a full list of supported features and extensions.

Supported engines

Unity

Android XR's Unity support, built on top of OpenXR, allows developers to create experiences using Unity 6. Learn more about building XR apps with Unity in the Unity overview.