Getting Started With Meta Quest 3

Introduction

This topic provides instructions on how to get up and running with the Meta™ Quest and OpenXR. Deploying applications to the Meta Quest can be done in two ways: As a "low-immersion" application, where the application is contained in a window in the headset's default VR environment or as a "high-immersion" VR application where the application takes over the entire rendering of the VR environment.

Note: The instructions are primarily for the Quest 3, but many steps should also apply for other Android-based headsets using OpenXR.

Prerequisites

You'll need Qt 6.8 or later and the Qt Quick 3D Xr module to get started. The Qt Quick 3D Xr module is part of QtQuick3D and will be installed with it. You'll also need the Android NDK, SDK, and JDK installed and configured. You can find more information on setting up Qt Creator for Android development here Getting Started with Qt for Android.

Setting up the Quest

You'll need to enable developer mode on the device to deploy applications to the Meta Quest. Download the Meta Quest Developer Hub to stream video from the device, enable wireless debugging, and more.

Deploying a low-immersion application

Deploying a low-immersion application follows the same steps as when developing and deploying for Qt for Android. You can already deploy Qt examples to the Quest in this way with no modifications.

Project changes needed for XR applications to be Meta Quest ready

Preparing an XR application for the Quest requires a few extra steps, as the QtQuick3D the application entry point in QML is slightly different. In a regular QtQuick3D application, the view into the 3D scene is through the View3D type, but in an XR application, the view is through the XrView type. In addition, there are APIs in Qt Quick 3D Xr that are specific for implementing XR applications, for example, handtracking, spatial anchors, and passthrough.

The AndroidManifest.xml file will also need to be modified to include the necessary permissions and features specified by the OEM of the target device. For the Quest, the following:

 <meta-data android:name="com.oculus.intent.category.VR" android:value="vr_only"/>
 <uses-permission android:name="com.oculus.permission.HAND_TRACKING" />
 <uses-feature android:name="oculus.software.hand-tracking" android:required="false" />

See Meta's Manifest docs for more information.