This site has been archived and remains strictly as a historical reference for developers who actively maintain apps built using the legacy Google VR SDK, which was last updated in 2019 and is no longer receiving updates.
  • All developers actively developing experiences for Google Cardboard should use the new open source Cardboard SDKs for iOS, Android NDK, and Unity XR Plugin. These new SDKs offer streamlined APIs, improved device compatibility, and built-in viewer profile QR code scanning.
  • The Daydream View VR headset is no longer available for purchase as of October 15, 2019. Existing apps on supported devices are unaffected for users who previously installed those applications. It is no longer possible to opt-in to Daydream distribution via Google Play.

Degrees of freedom

Stay organized with collections Save and categorize content based on your preferences.

Degrees of freedom (DoF) refer to the number of basic ways a rigid object can move through 3D space. There are six total degrees of freedom. Three correspond to rotational movement around the x, y, and z axes, commonly termed pitch, yaw, and roll. The other three correspond to translational movement along those axes, which can be thought of as moving forward or backward, moving left or right, and moving up or down.

VR headsets and input devices are generally 3DoF or 6DoF.

3DoF means we can track rotational motion but not translational. For the headset, that means we can track whether the user has turned their head left or right, tilted it up or down, or pivoted left and right.

6DoF means we can additionally track translational motion. That means we can track whether the user has moved forward, backward, laterally, or vertically.

For example:

  • Daydream View features a 3DoF headset and 3DoF controller, commonly referred to as "3.3".
  • Daydream Standalone features a 6DoF headset and 3DoF controllers, commonly referred to as "6.3".

We recommend that developers target 3.3 and 6.3 in a single app.

Key development differences

  • 3DoF head-tracking means you can only track rotational movement.
  • 6DoF head-tracking means you can track both position and rotation.
  • In 3DoF you need to use a neck model to simulate realistic movement, which Daydream provides.
  • In 6DoF a neck model is not necessary because the actual position and rotation of the head are known.
  • When you use 6DoF tracking and WorldSense has to fall-back to 3DoF, WorldSense will handle the neck model implementation for your app so you don't have to write it in yourself.
  • When updating from 3DoF to 6DoF, if you wrote a custom neck model, you may need to remove it. If you used the Daydream neck model it will be turned off automatically.