Why Meta Quest?
Design
Develop
API references
Distribute
Blog
Support
Login
Develop
All platforms
Develop
Unity
OpenXR Mobile SDK
Overview
Basic Environment and Project Setup
System and Hardware Requirements
Device Setup
Android Development Software Setup
Android Studio Basics
Android Manifest Settings
Add a Splash Screen
Native Android Mixed Reality Capture
Set Display Refresh Rates
OpenXR Support Overview for Meta Quest Headsets
OpenXR Support for Meta Quest Headsets
Build and Run hello_xr Sample App
Native OpenXR Samples
OpenXR Core Concepts
Core Concepts
Creating Instances and Sessions
Collecting System Information
Input API
Creating Actions, Action Sets, and Suggested Bindings
Creating and Using Swapchains
Synchronizing and Submitting Frames
Mixed Reality Experience and Use Cases
OpenXR Meta Extensions
Passthrough
Overview
Customize Passthrough
Loading Screen
Passthrough over Link
Best Practices
Depth
Overview
Movement
Overview
Body Tracking
Face Tracking
Eye Tracking
Blendshape Visual Reference
Body Joints Visual Reference
API Reference
Scene
Overview
Best Practices
API Reference
Spatial Anchors
Overview
Developer Environment Setup
Features and Lifecycle
API Reference
Sample Apps
Colocation Discovery
Overview
API Reference
Sample Apps
Tracked Keyboard
Physical Keyboard Tracking Integration
Using Keyboard Tracking Sample
Virtual Keyboard
Overview
glTF Requirements
Native Integration
Sample Project
Haptic Feedback
Bicubic Filtering with OpenXR
Composition Layer Filtering
Application SpaceWarp Developer Guide
Enable Hand Tracking
Use Capsense
Use Wide Motion Mode
Use Multimodal
Testing and Troubleshooting
Screenshots and Video Capture
Wired Monitoring with ADB
MSAA Analysis for Meta Quest
Android Debugging and Performance Analysis
SysTrace
Native Debugging
Native Debugging with Android Studio
Native Debugging with ndk-gdb
Developer Tools
Meta Quest Developer Hub
Overview
Getting Started
Set Up Headset with MQDH
Managing Your Headset
Debugging Tools
Create Custom Command
Performance Analyzer and Metrics
Overview
How to Take Perfetto Traces
Layer Visibility Control
Explore File Manager
Add, Remove, and Switch Between Multi-User Accounts
MQDH Downloads
Deploy Build on Headset
Troubleshooting MQDH
Report a Bug
Android Tools
Collect VrApi Logs with Logcat
Overview
Logcat Stats Definitions
Configure Android System Properties on Meta Quest
Use ADB with Meta Quest
Performance Tools
RenderDoc Meta Fork
Overview
Taking and Loading a Capture
Performing a Render Stage Trace
Performing a Draw Call Trace
Accessing Vulkan Shader Stats
Recommended Settings
Draw Call Metrics
OVR Metrics Tool
Overview
OVR Metrics Tool Stats Definition Guide
Best Practices - OVR Metrics Tool for Non-Engineers
gpumeminfo
GPU Systrace
ovrgpuprofiler
Simpleperf
Testing and Automation Tools
Use Meta Quest Scriptable Testing Services to Enable E2E Testing
Using AutoDriver to Record Inputs
Using Oculus Debugger for VS Code
Vulkan Validation Layers
Performance and Optimization Guides
Overview
Operating system
CPU and GPU levels
OpenXR, VRAPI, and LibOVR
OpenGL ES and Vulkan
Compatibility mode
Graphics subsystems
Fixed Foveated Rendering (FFR)
App spacewarp
Compositor
Compositor layers
Graphics architecture
Mobile GPUs and tiled rendering
Mobile GPUs and improved algorithms
Mobile GPUs and impaired algorithms
Boosting CPU and GPU Levels
Accurately Measure an App's Per-Frame GPU Cost
Advanced GPU Pipelines and Loads, Stores, and Passes
Art Direction for All-in-One VR Performance
Basic Optimization Workflow for Meta Quest Apps
Using RenderDoc Meta Fork to Optimize Your App - Part 1
Using RenderDoc Meta Fork to Optimize Your App - Part 2
PC SDK
Overview
PC SDK Getting Started Guide
Getting Started with the SDK
Oculus Rift SDK Setup
Getting Started with the Demos
Launching Third-Party Applications
PC SDK Developer Guide
LibOVR Integration
Initialization and Sensor Enumeration
Rendering to the Oculus Rift
Advanced Rendering Configuration
Oculus Dash
VR Focus Management
Guardian System
Touch Plus Controllers
Rift Audio
Rift Touch Controllers
Controllers Overview
Controller Data
Controller Tracking
Button State
Button Touch State
Haptic Feedback
Oculus Avatars
Overview
Native C/C++ Mirror Sample Guide
Avatar SDK C/C++ Developer Reference
SDK Samples and Gamepad Usage
Oculus Debug Tool
Optimizing Your Application
VR Performance Optimization Guide
Overview
Guidelines for VR Performance Optimization
Workflows: The process flows you should follow
Performance Optimization Tools
Tutorial: Optimizing a Sample Application
Additional Resources
Lost Frame Capture Tool
SDK Performance Statistics
Performance Profiler
Performance Head-Up Display
Performance Indicator
Compositor Mirror
Pairing the Oculus Touch Controllers
Asynchronous SpaceWarp
Mixed Reality Capture
OpenXR Support for PC Development
Reference Content
Developer Reference
Troubleshooting
Platform Solutions
Overview
Get Started
Multiplayer Enablement
Getting Started Guide
Server-to-Server API Basics
Request and Messages
Set Up for Platform Development
Multiplayer Features
Multiplayer Overview
Multiplayer Enablement
Travel Features
Travel Overview
Destinations
Group Presence
Invite to App
Testing and Use Cases
Invite Link
Quick Invites
App to App Travel
Roster
Rejoin
Invokable Error Dialogs
SharedSpaces Multiplayer Showcase
Test Cases
User Engagement
User Engagement Overview
User Notifications
Overview
Create User Notifications
Event-Based Notifications
Analytics
Developer Posts
Leaderboards
Leaderboard Client APIs
Leaderboard Server APIs
Events
Achievements
Challenges
Challenges Client APIs
Challenges Server APIs
Share Content from Meta Apps
Monetization
Monetization Overview
Add-ons - Downloadable Content and In-App Purchases
Add-ons Integration
Add-ons Server APIs
Testing Add-ons
Subscriptions
Server APIs for Subscriptions
Social Features
Social Features Overview
Blocking
Parties and Party Chat
Parties and Party Chat
Mic Switcher
User Info, Friends and Relationships
Overview
Verify the User
Enable Friend Requests (Mobile)
Managed Accounts