Develop

App SpaceWarp sample overview

Updated: May 7, 2026

Overview

This sample demonstrates how Application SpaceWarp (ASW) improves perceived frame rate by generating interpolated frames, and how to identify and mitigate common rendering artifacts that occur with transparent materials, complex geometry, and UI elements. It provides five interactive scenes that isolate specific ASW behaviors, each with runtime controls to toggle ASW on and off and compare material configurations.

Learning objectives

Complete this guide to learn how to:
  • enable Application SpaceWarp in an Unreal Engine project using console variables
  • understand how transparent materials interact with ASW motion vectors and apply progressive mitigation techniques
  • implement UI using compositor layers versus standard widgets to avoid ASW-related ghosting
  • identify motion vector artifacts with opaque objects (disocclusion shimmer) and elongated geometry
  • use runtime controls to toggle ASW and compare material variants for debugging

Requirements

  • Meta Quest 2, Quest 3, or Quest 3S
  • Oculus fork of Unreal Engine 5.6 with OpenXR and OculusXR plugins
For detailed SDK version and build prerequisites, see the sample README.

Get started

Clone the App SpaceWarp repository. Open AppSpaceWarp.uproject in the Oculus fork of Unreal Engine. Build the project for Android and deploy to your Quest device. The sample opens to the Opaque Objects scene with a hamburger menu button for scene selection.

Explore the sample

SceneWhat it demonstratesKey concepts
Opaque Objects
Baseline ASW behavior with fully opaque geometry
Disocclusion artifacts (shimmer and halo around moving object silhouettes)
Railings
Edge-case artifacts with elongated geometry
Motion vector buffer resolution artifacts at thin edges
Transparent Objects
Progressive mitigation of transparency artifacts
Material variants: no motion vectors → with motion vectors → with motion vectors and depth output
User Interfaces
Two UI rendering approaches under ASW
Widget-based UI (affected by ASW) versus compositor layer UI (bypasses ASW)
Benchmark
Performance comparison with ASW enabled versus disabled
Frame rate impact analysis

Runtime behavior

When you run the sample, each scene includes on-screen explainer text describing the artifact or technique being demonstrated. Use the controller inputs to toggle ASW on and off, switch between material variants, and adjust object movement speed.
The Transparent Objects scene shows the most dramatic artifact progression: basic transparent materials exhibit severe “pulling” and ghosting, materials with motion vectors reduce the effect, and materials with both motion vectors and depth output provide the cleanest interpolation.

Key concepts

Enabling Application SpaceWarp

The sample enables ASW using two console variables in DefaultEngine.ini:
r.Mobile.Oculus.SpaceWarp.Enable=True
vr.SupportMobileSpaceWarp=True
Projects using Unreal Engine 5.7 or later should use xr.OpenXRFrameSynthesis instead, as the Oculus-specific CVars are deprecated. The sample also enables forward shading and Multi-View rendering, both required for ASW compatibility.

Transparent object mitigation

The sample demonstrates three material variants that progressively reduce ASW artifacts on transparent geometry:
  • M_Transparent: No motion vectors — ASW pulls transparent pixels incorrectly, creating severe ghosting
  • M_Transparent_With_MotionVectors: Includes motion vectors — object movement stabilizes, but intersecting objects still show artifacts
  • M_Transparent_With_MotionVectors_And_Depth: Adds depth output — best mitigation using the “Output depth and velocity” material setting

UI and compositor layers

The User Interfaces scene demonstrates two rendering approaches: standard Unreal widget components that are affected by ASW interpolation (potentially causing ghosting), and compositor layers that bypass ASW entirely, rendering UI at full frame rate without interpolation artifacts.

Motion vector artifacts

The Opaque Objects scene demonstrates disocclusion shimmer, where moving foreground objects reveal background pixels that ASW must reconstruct. The Railings scene isolates a different artifact class: because the motion vector buffer is lower resolution than the RGB eye buffer, thin elongated geometry produces visible edge artifacts.

Extend the sample

  • Modify the Transparent Objects scene to test your own transparent materials and observe how different shader complexity affects ASW interpolation quality.
  • Add a new scene demonstrating ASW behavior with particle effects or skeletal mesh animation.
  • Integrate the ASW toggle and material switching patterns into your own VR project for debugging.