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.

Asynchronous Reprojection

Asynchronous reprojection is a graphics technology that ensures high performance VR rendering, even during times of high system load. It provides consistent and judder-free motion when the user rotates their head.

The 'reprojection' part of asynchronous reprojection works by adjusting the position of the rendered frame just before it is seen by the user to account for rotational user head movement while the frame is being rendered. The 'asynchronous' part means that the technology will always use the most recent rendered frame, ensuring that even if the app drops a frame, the user-visible frame rate does not drop.

Asynchronous reprojection has three major effects:

  • It ensures that the frame rate experienced by the user remains high, which is critical to user comfort in VR.
  • It reuses frames when the application isn't able to draw.
  • It ensures that movement within the app feels smooth and does not judder.

Supported platforms

All Daydream and Daydream Standalone applications have asynchronous reprojection automatically enabled.

Cardboard does not support asynchronous reprojection.

3DoF vs 6DoF

Asynchronous reprojection is designed for 3DoF head movement, as it only corrects for rotational movement.

Asynchronous reprojection does not correct for positional movement in 6DoF apps, which means if the app framerate drops the user will begin to experience a disconnect between the rendered and actual position. The lower the app frame rate, the larger the disconnect. Lower frame rates can also introduce errors associated with animations and other visual effects.

Performance recommendations:

  • In 6DoF, apps should target 75 FPS. Drops below 60 FPS will have noticeable artifacts and cause user discomfort.
  • In 3DoF, apps should target 60 FPS. Drops below 45 FPS will have noticeable artifacts and cause user discomfort.