To unlock the full potential of Android XR, it helps to understand spatial
computing, immersion, and how to blend digital content with a user's physical
environment.

Great XR design delivers a comfortable experience that's natural and
intuitive. It draws users in and encourages them to explore all that your app
has to offer. Android XR apps can help users throughout their day to:

- Focus on work, and be more productive and creative
- Watch videos, play games, listen to music, and browse photos
- Discover and learn
- Communicate and connect with family and friends
- Improve mental and physical health

## Considerations for a high-quality XR app

### Start from where you are

Android XR supports designing from where you are today. You can develop a new
app or update an existing one with Android Jetpack XR, Unity, OpenXR, or WebXR.


**Build a new app or spatialize an Android app**


You can build a new app from scratch, or adapt an Android large screen or mobile
app for XR by adding spatial components.

Alas, your browser doesn't support HTML5 video. That's OK! You can still [download the video](https://developer.android.com/static/videos/design/ui/xr/xr-design-1-opt.mp4) and watch it with a video player.

An Android large screen app adapted for Android XR  
**Build a new app or port a Unity, OpenXR, or WebXR app**


You can bring existing immersive experiences to a new audience, with minimal
development lift.

Alas, your browser doesn't support HTML5 video. That's OK! You can still [download the video](https://developer.android.com/static/videos/design/ui/xr/onehandedcv1.mp4) and watch it with a video player.

Vacation Simulator, a Unity app ported to Android XR

<br />

**Follow established patterns** . You can use [Material Design
guidelines](https://m3.material.io/) and [components](https://m3.material.io/components) to create a
consistent experience across platforms. For Android apps, adopt established
[UI patterns](https://developer.android.com/design/ui/large-screens). For [Unity](https://docs.unity3d.com/Manual/index.html), [OpenXR](https://registry.khronos.org/OpenXR/specs/1.0/styleguide.html), or
[WebXR](https://immersiveweb.dev/) apps, apply platform-specific design guidelines to ensure
a seamless user experience.

**Leverage users' knowledge**. Use common elements like buttons, menus, and text
fields that users already know from other platforms. Design consistent
interactions to help users navigate your app. Add visual cues to show how they
might interact with objects.

## Make users feel comfortable and safe

Keep comfort in mind in every part of your design, with considerations for how
people naturally move. Allow users to interact with your app in different body
positions, using their hands, eyes, voice, physical keyboard, mouse, or
controller.

**Design comfortable interactions**. Center interactable elements in a user's
field of view to minimize head and eye strain. Keep content within clear
boundaries to help users stay oriented and prevent sensory overload. Reserve
large-scale head and body movements for interactions that genuinely enhance the
experience.

**Accommodate seated, standing, and reclined experiences**. Position UI
elements, controls, and interactive objects within the user's field of view.
Enable custom height settings so users can personalize their experience.

**Prevent motion sickness during movement** . Use predictable [motion](https://developer.android.com/design/ui/xr/guides/motion) and
stable frame rates to help users anticipate changes in the environment. Avoid
unexpected movements such as abrupt accelerations, decelerations, or direction
changes. It helps to keep some items stationary for a frame of reference.

**Allow users to choose between real and virtual worlds** . If your app supports
full immersion to transport users to a virtual space, consider offering a
[passthrough](https://developer.android.com/design/ui/xr/guides/foundations#give-users) option so users can see their physical space alongside your app
when possible.

## Explore experiences that feel special in XR

Android XR includes features to help you harness the infinite display and create
engaging, immersive experiences.

**Interactive 3D models**. You may want to add interactive 3D objects that are
realistic, stylized, or playful. Typically, 3D objects are rendered with depth
and volume, can be viewed from all angles, and be moved with natural
interactions using gestures.

**Fully-immersive virtual environments**. Save full immersion for experiences
that significantly benefit from it. Choose a key moment to transport a user to a
new reality, replacing their physical surroundings with a virtual space.

**Consider immersive blending** . In [passthrough](https://developer.android.com/design/ui/xr/guides/foundations#give-users) mode, you can blend virtual
elements with a user's physical environment. Design virtual objects with natural
lighting and occlusion to add a realistic feel.

**Spatial audio**. To add another layer of realism and immersion, position
sounds accurately in an environment to create a believable soundscape that
increases a user's spatial awareness.

## Make your app accessible

Android XR is designed to make it easy for all users to navigate, understand,
and enjoy your app.  
Alas, your browser doesn't support HTML5 video. That's OK! You can still [download the video](https://developer.android.com/static/videos/design/ui/xr/xr-accessible-design.mp4) and watch it with a video player.

**System features** . Android XR includes mobile and large-screen accessibility
features such as voice to text, live captions, color inversion and correction,
magnification, and [dwell control](https://support.google.com/accessibility/android/answer/7071579). The platform is also adapted
for [Google's TalkBack screen reader](https://developer.android.com/guide/topics/ui/accessibility/apps#describe-ui-element).

**Colors and lighting** . Provide sufficient [color contrast](https://m3.material.io/foundations/designing/color-contrast) to
aid users with color vision differences. Keep contrast ratios for readability,
especially if you use any transparent backgrounds. Use dimming to create
contrast between your app and the user's surroundings. Avoid sudden shifts in
brightness or color to prevent eye discomfort.

**Consider dynamic size and scale** . Larger UI and pointer [targets](https://developer.android.com/design/ui/xr/guides/visual-design#targets-android) make it
easier for users to select and manipulate elements in space. If you are building
an Android app, it will automatically scale when users move or resize it.

**Reduce cognitive load**. Present users with a limited number of choices at a
time. Offer visual or audio feedback to confirm actions. Reveal advanced
features gradually to avoid overwhelming users with excessive information.

**Design for both direct and distance interactions**, so users can comfortably
interact with objects near and far. Users should be able to pick up a virtual
tool, press a button, or resize a 3D object whether it's in arm's reach or
further away.

[Learn about accessible multimodal inputs](https://developer.android.com/design/ui/xr/guides/foundations#design-multimodal).

*** ** * ** ***

OpenXR™ and the OpenXR logo are trademarks owned
by The Khronos Group Inc. and are registered as a trademark in China,
the European Union, Japan and the United Kingdom.