Getting started with the Oculus Quest - utwente-interaction-lab/interaction-lab GitHub Wiki

Getting started with the Oculus Quest

The Quest 1 and Quest 2 are standalone headsets from Oculus/Facebook. They offer a great all-in-one user experience because they can operate wirelessly without a PC and can be deployed easily in almost any location. The Quest uses inside-out 6-DOF tracking with 4 camera's on the headset. In practice this works quite well, although the controllers may lose tracking if they are out of view from the headset. Additionally, there is experimental support for hand tracking without controllers. The headsets run on embedded Android and have good support for Unity development. However, they are obviously less powerful than a gaming PC, so the complexity and graphics of the project need to be adjusted accordingly. The battery lasts for around 2 hours, but can be charged with a USB battery pack for prolonged sessions.

The Quest 1 (black) was released in 2019 and was replaced with the Quest 2 (white) in 2020. The main differences in favour of the Q2 are:

  • Higher resolution screen (sharper image with less screen-door effect)
  • Higher refresh rate (72HZ vs 90HZ)
  • Faster processor and graphics (although this is mostly negated by the higher resolution and refresh rate)
  • Lower weight and smaller dimensions

Important - Facebook account required

With the release of Q2 Oculus forced the requirement of a Facebook account to use the headset. Note that a fake/dummy Facebook is not allowed and will result in a blocked device.

When developing for the headset you can get around this restriction by logging in with an Oculus Test User with an associated Facebook test account. We have created several of these Test Users that can be used with our headsets. The device is severely restricted when using a Test User: no app store, no browser, etc. You can only sideload APKs through ADB and install apps that are generated by the associated development account.

The login details for the Test User account are on the inside of the box ([email protected]).

Setting up the headset

The headset should already be setup out of the box with a Test User and configured as a developer device. If that is the case you can skip this step.

If that is not the case, you may need to do a factory reset and login again. This will completely erase the device. To factory reset, press and hold the Volume Down and Power buttons until you get a debug boot menu. Use the Volume keys to highlight the option "Factory Reset", press the Power button to select. Then highlight the "Yes, I accept..." and press Power again to acknowledge. The device will now take you through the initial setup steps.

Then install the Oculus app on your phone (or borrow a smartphone from the lab): Android or IOS. Pair a Quest 1 or Quest 2 device and follow the instructions. Log in with the Test User Facebook account listed on the box. Complete the setup on the headset and allow it to fully update to the latest firmware version.

When the initial headset setup is completed, open the app and enable the development mode. In the Oculus app, go to Menu -> Devices -> select the Quest or Quest 2 device -> Scroll down to 'Headset settings' -> Developer Mode -> toggle On.

Developing native applications in Unity

If you want, you can use the headset as a regular tethered headset through e.g. SteamVR by connecting it to the PC with a regular USB-C cable (see Oculus Link).

However, the ability to run standalone apps is the main selling point of the Quest headsets. Building such native applications is the preferred method for the Quest. Oculus has excellent instructions for creating a Unity project for the Oculus Quest. We recommend to use the latest 2019.4 LTS version, until Unity 2020 becomes more stable. Note that some of the steps require re-importing and re-building all assets, which may take a while - a good time to grab some coffee :)

Once the project is created you need to import the Oculus Integration Package, making sure you update the OVRPlugin and Spatializer to the latest version when prompted. After restarting Unity you need to configure the project (for future proofing your project, we recommend to use the modern XR Plugin Framework (available from Unity 2019.4 and higher), instead of the legacy/depricated XR Platform Integration). Follow all the steps in the documentation to configure build settings for Android and enable XR Plugin Management. Make sure you set all the required rendering preferences and quality settings as specified in the documentation. Finally, you generate an Android Manifest file through the menu Oculus -> Tools -> Create store-compatible AndroidManifest.xml

Now you are all set to create your scene using the Oculus Integration tools. When you have created your scene you should add it to the build: go to File -> Build Settings and press "Add Open Scenes" so that it shows up under "Scenes In Build".

To run your scene on the headset make sure it is connected with USB and developer mode is enabled. Then select from the main menu File -> Build and Run. It should now show up in the headset's app list under "Unknown Sources", you can disconnect the USB cable and play with your scene. Alternatively, for quick testing you can use OVR Build tools from the main menu Oculus -> OVR Build -> OVR Build APK And Run.

Returning the device

Please undo any (software) modifications you have made. If necessary you should perform a factory reset and login to the device with the Oculus Test user before returning it. Please remember to charge the device before returning it.

Warning: If you have logged in to the headset with your personal Facebook account, make sure you do a factory reset! If not, the next user may gain access to your Facebook.

Other resources

There are many excellent online tutorials on how to develop for Oculus Quest headsets. For example: