Standalone test app to validate Quest OpenXR + Passthrough AR support before integrating into fastn-shell.
- OpenXR instance creation on Quest
- Extension enumeration (especially
XR_FB_passthrough) - System/HMD detection
- View configuration
# macOS with Homebrew
brew install openjdk@17
brew install android-ndk
brew install android-commandlinetools
# Or download from https://developer.android.com/ndk/downloadscargo install cargo-apkrustup target add aarch64-linux-android- Download from: https://developer.oculus.com/downloads/package/oculus-openxr-mobile-sdk/
- Extract
libopenxr_loader.sofromOpenXR/Libs/Android/arm64-v8a/Release/ - Place in
quest-test/libs/arm64-v8a/libopenxr_loader.so
mkdir -p libs/arm64-v8a
# Copy libopenxr_loader.so there- Create developer account at https://developer.oculus.com/
- Enable Developer Mode in Oculus mobile app
- Connect Quest via USB and allow debugging
# Build APK
cargo apk build --release
# Install to connected Quest
adb install -r target/release/apk/quest-test.apk# Watch logs
adb logcat -s quest-test:* RustStdoutStderr:*You should see output like:
=== Quest OpenXR Test Started ===
Initializing OpenXR...
Available OpenXR extensions:
KHR_vulkan_enable2: true
FB_passthrough: true
OpenXR runtime: Oculus v1.x.x
System: Oculus Quest 3
Passthrough support: true
SUCCESS: This device supports AR passthrough!
You can verify the code compiles on desktop:
cargo check
cargo run # Will fail at runtime without VR runtime, but checks compilationOnce this test confirms passthrough support:
- Add Vulkan rendering (render a cube in VR)
- Enable passthrough layer (AR mode)
- Integrate into fastn-shell as Android target
export JAVA_HOME="/opt/homebrew/opt/openjdk@17" export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH" export ANDROID_HOME="/opt/homebrew/share/android-commandlinetools" export ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"