Getting started with 6DoF controllers in the Android NDK

This guide shows you how to set up Google VR development with the Android NDK and build the HelloVRBeta sample app. This app is designed to help you learn about working with the see-through mode technology as well as the experimental 6DoF controllers and faceplate.

  1. Download and install the latest version of gvr-android-sdk\*.zip from the releases page.
  2. Follow these steps to build and run the HelloVRBeta sample app. The requirements and steps to build the sample app using the NDK are nearly the same as building the HelloVR sample app for the SDK, with the following key changes:

    1. Download the latest version of the Android NDK.
    2. Extract the NDK .so files by running:

        ./gradlew :extractNdk
    3. In settings.gradle, uncomment the following line:

        include ':samples:ndk-hellovrbeta'
    4. To build and run the sample app in Android Studio, select samples-ndk-hellovrbeta as your target.

If you're familiar with developing for Daydream, here are the changes you need to make in order to support the 6DoF controllers and faceplate:

  • To identify your app as supporting the 6DoF controllers and faceplate, add the following meta-data tag to your AndroidManifest.xml file within the <activity> element:

    <activity …
      <meta-data android:name="" 
  • Make sure your gvr_controller_create_and_init() call specifies GVR_CONTROLLER_ENABLE_POSITION; otherwise, the position data will be discarded.

Using the controllers after setup

Fluorescent lighting and HTC Vive Lighthouses are both known to interfere with tracking. Turn off the Vive Lighthouse if you have one, or move to a room with different conditions.