Develop with the Jetpack XR SDK

The Jetpack XR SDK lets you build immersive XR experiences using modern tools like Kotlin and Compose, as well as previous generation tools such as Java and Views. You can spatialize your UI, load and render 3D models and semantically understand the real world.

If you already have a mobile or large screen app on Android, Jetpack XR SDK extends your app into a new dimension by spatializing existing layouts and enhancing your experiences with 3D models and immersive environments. See our quality guidelines for our recommendations on spatializing your existing Android app.

The Jetpack XR SDK consists of the following libraries. Together, they provide a comprehensive toolkit for building rich and diverse spatialized experiences and are designed to work seamlessly with each other.

  • Jetpack Compose for XR: Declaratively build spatial UI layouts that take advantage of Android XR's spatial capabilities.
  • Material Design for XR: Build with Material components and layouts that adapt for XR.
  • Jetpack SceneCore: Build and manipulate the Android XR scene graph with 3D content.
  • ARCore for Jetpack XR: Bring digital content into the real world with perception capabilities.

Jetpack Compose for XR

With Jetpack Compose for XR, you can use familiar Compose concepts such as rows and columns to create spatial UI layouts in XR, whether you're porting an existing 2D app to XR or creating a new XR app from scratch.

This library provides a type of composable: subspace composables such as spatial panels and orbiters, which let you place your existing 2D Compose or Views-based UI in a spatial layout.

See Develop UI with Jetpack Compose for XR for detailed guidance.

Develop UI XR components orbiter generic example

Compose for XR introduces the Volume subspace composable, which lets you place SceneCore entities, such as 3D models, relative to your UI.

Learn how to spatialize your existing Android app or view the API reference for more detailed information.

Material Design for XR

Material Design provides components and layouts that adapt for XR. For example, if you're building with adaptive layouts, if you update to the latest alpha of the dependency, with a simple EnableXrComponentOverrides wrapper, panes will be placed in Spatial Panels and navigation rail in an Orbiter. Learn more about implementing Material Design for XR.

Jetpack SceneCore

The Jetpack SceneCore library allows you to place and arrange 3D content, defined by entities, relative to each other and your environment. With SceneCore you can:

The Jetpack SceneCore library also provides support for spatializing applications built using Views. See our guide to working with views for more details.

View the API reference for more detailed information.

ARCore for Jetpack XR

Inspired by the existing ARCore library, the ARCore for Jetpack XR library provides capabilities for blending digital content with the real world. This library includes motion tracking, persistent anchors, hit testing, and plane identification with semantic labeling (for example, floor, walls, and tabletops). This library leverages the underlying perception stack powered by OpenXR, ensuring compatibility with a wide range of devices and helping to future-proof applications.

View Work with ARCore for Jetpack XR for more detailed information.

Note on Developer Preview

Please note that this release is part of a Developer Preview and these APIs are still under development. See the release notes for known issues:

If you run into an issue that is not on that list, please report a bug or submit feedback.