3D model design

In Android XR, 3D models are digital objects rendered with depth and volume to add a sense of realism and spatial understanding to your app. Users can naturally interact with 3D models, creating a transformative and engaging experience.

Android XR supports 3D models with either a .glTF or .glb file extension. GL Transmission Format (glTF) is a standard 3D file format that minimizes asset size, loads fast, and is operable across platforms. You can export these file formats from third-party digital content creation tools such as Blender, Maya, Spline, among others.

To optimize performance, prioritize small file sizes. Avoid excessive polygon counts or high-resolution textures that could impact rendering speed.

Methods to integrate 3D models

Android XR offers different tools to add interactive 3D models in your app: with SceneCore APIs or Scene Viewer. If you're building with Compose for XR, you can place 3D models relative to your UI using the volume subspace composable.

  • SceneCore APIs. You can create your own interactions including rotate, move, and scale. This allows users to interact with 3D models alongside your app's spatial panels and environment. You can also create parent relationships between panels and 3D models. Learn about SceneCore APIs.
  • Scene Viewer can be used to load and display 3D models with interactions including rotate, move, and scale. However, Scene Viewer runs as a separate app. As a result, users will not be able to see your app's panels and environment while interacting with 3D models. Learn about Scene Viewer.

SceneCore APIs

With SceneCore APIs, you can develop rich interactions for 3D models while keeping users in the context of your app. Since SceneCore lets you keep showing panels and environments alongside 3D models, you can create relationships between 3D models and panels, and use scene perception to anchor content to a user's physical space.

With SceneCore, you can also add:

  • Annotations to the 3D models
  • Multiple 3D models
  • A custom menu and launch positions

Relationships

3D models can have parent relationships with panels or other 3D models, so that the child element follows the parent's movement.

Anchors

Users can fix 3D models to a specific point in the real world. You have the option to add anchors to general horizontal or vertical surfaces or specific surfaces such as the floor or wall.

Scene Viewer

Scene Viewer allows users to see and interact with 3D models. Users can open supported .glTF 3D models like a .glb file and place objects in space. You can integrate the 3D viewer in your app to make it simple for users to visualize products, explore educational content, and experience 3D models. Scene Viewer provides built-in UI for basic interactions including moving, rotating, scaling, and anchoring.

Launch position

3D models launch at 1.5 meters and 15 degrees below a user's line of sight, in the center of their field of view. They open in the miniature size of 1.5 meters per axis.

A map showing the distance between a woman's line of sight and a 3D
globe.

Interactions Includes

UI and interactions that allow users to move, rotate, anchor, and scale 3D models using natural gestures.

Interaction menu

The 3D model menu can be customized with additional actions. If the glTF file contains different sizes such as a suggested size and an actual size, the 1:1 button allows users to quickly switch between them. To exit the 3D model view and return to the app, users can click the mandatory close button.

To increase a 3D globe's size from 100% to 135%, a user pinches their thumb
and index finger on each hand, and gestures
outward.