This guide walks you through the platform, helps you choose a development path, and shows you what it takes to build and deploy an app on Meta VR devices. You can also use AI-powered tools to accelerate every step — from searching docs to debugging your device.
What is Horizon OS
Horizon OS is Meta’s operating system for Meta VR devices. It’s built on the Android Open Source Project (AOSP), which means Android apps can run on it natively. It also supports fully immersive VR and mixed reality apps through game engines, native C/C++ via OpenXR, web-based experiences via WebXR, and Kotlin-first spatial apps via Meta Spatial SDK.
Feature
Standard Android
Horizon OS
Display
Flat screen
Stereoscopic VR / passthrough MR
Input
Touch screen
Controllers, hand tracking, gaze, voice
App rendering
2D window
2D panel in 3D space, or fully immersive
App distribution
Google Play
Meta Horizon Store
Apps render as flat panels floating in space by default. Mobile gestures (tap, swipe, scroll) automatically map to controller or hand input. You can optionally go deeper with immersive 3D environments, spatial audio, passthrough cameras, and mixed reality features. Learn more about platform capabilities on the Horizon OS page.
Google Mobile Services (Firebase, Google Auth, Google Play Billing) are not available on Horizon OS. You'll need alternatives for these dependencies.
The hardware
Meta Quest headsets are standalone, wireless VR/MR devices — no PC required. All models run Horizon OS and share the same developer ecosystem. Quest 3 and Quest 3S are the current-generation headsets. For detailed specs, see Compare devices.
What developers should know:
Memory budget — Proportional Set Size (PSS) kill limits are 4.4 GiB (Quest 2, Quest Pro) and 5.75 GiB (Quest 3, Quest 3S). Target well below these limits. See Memory / RAM
GPU — Mobile GPU. Think “high-end phone” not “desktop.” Optimization matters
Refresh rates — 72 Hz, 90 Hz, or 120 Hz depending on device and app settings. Dropping frames causes discomfort
Controllers — Touch Plus controllers ship with Quest 3/3S. All headsets support controller-free hand tracking
AV1 decode — Quest 3/3S only. Fall back to HEVC for Quest 2
Set up your developer environment
Before you can install your own apps on a Meta VR device, you need to set up a developer account and enable developer mode. This unlocks the ability to sideload apps — installing them directly from your computer instead of downloading from the Meta Horizon Store.
1. Create a developer account
Register at developers.meta.com/horizon/sign-up. This gives you access to the developer dashboard, documentation, and the ability to submit apps.
2. Install the Meta Horizon mobile app
Download the Meta Horizon app (iOS or Android) and pair your VR device through the app.
3. Enable developer mode
Developer mode lets your device accept apps installed from your computer, not just the Store. In the mobile app, go to Devices > your device > Developer Mode > ON.
Developer mode requires a Meta developer account. Complete step 1 first.
4. Connect your device
You need a USB-C data cable to communicate between your computer and device. The cable included in the box is charge-only and won’t work for development.
Developer tools
Meta Quest Developer Hub (MQDH) is the recommended tool for all developers. It handles device management, app deployment, log viewing, screen casting, and performance analysis — all from a desktop app. It also includes AI-powered tools that connect to your code editor. See AI tooling.
You can also iterate without a physical device using simulators like Meta XR Simulator (Unity, Unreal, Native) or the Spatial Simulator (Android, Spatial SDK) in Android Studio. Test on-device before shipping — simulators don’t support all spatial features.
Choose your development path
Which path you pick depends on your existing skills, whether you’re porting or building new, and how immersive you want to go.
I have a mobile app
Bring your Android or iOS app to Meta VR. Your app runs as a 2D panel floating in the user’s space. Mobile gestures automatically map to controller or hand input.
Android app — Ship your existing APK with minimal changes. Target the Horizon Store just like Google Play. Get started
Add spatial features — Use Meta Spatial SDK to add 3D panels, spatial anchors, and environment blending to your Android app. Get started
I have a web app
Your web app works on Meta VR out of the box. Package it as a Progressive Web App (PWA) for the Horizon Store, or go immersive with WebXR.
PWA — Package your web app and ship it to the Horizon Store. No engine or SDK required. Get started
WebXR — Add immersive VR/MR to your web app with Three.js, A-Frame, or Babylon.js. Cross-platform by default. Get started
Building something new
Choose based on what you’re building:
Games and immersive experiences — Unity (C#) or Unreal Engine (C++/Blueprints). Full access to hand tracking, passthrough, spatial audio, and scene understanding.
Utility, productivity, or social apps — Android with Meta Spatial SDK (Kotlin). Familiar mobile development with spatial superpowers.
Maximum control — Native OpenXR (C/C++) for custom engines or low-level access to every API.
Know nothing yet? Pick whichever language interests you most. Every path has tutorials that start from zero.
Build with AI
AI tools work with every development path. Instead of switching between docs, ADB commands, and trace tools, AI-powered tooling lets you query documentation, debug your device, analyze performance, and search 3D assets — all from your editor using natural language.
Once you've chosen your path, head to the Develop section for complete documentation, API references, and tutorials for your build path.
Deploy your first app
No matter which path you choose, deploying to a Meta VR device follows the same pattern:
Build your APK from Android Studio, Unity, Unreal, or CLI
Connect your device via USB-C data cable
Put on the device and accept the “Allow USB Debugging” prompt
Deploy:
adb install path/to/your.apk
Find your app on the device: Library > Unknown Sources
First deploy? The device will prompt you to allow USB debugging. You must accept this on the device, not on your PC. If adb devices doesn't show your device, check your cable, drivers, and that USB debugging was accepted.
Build with Store submission in mind from Day 1. Your app must pass Virtual Reality Checks (VRCs) before it can be published to the Meta Horizon Store. Review the common VRC failures and best practices early to avoid rework later.
After your first build
Once your app is running on the device, you’re ready to start working toward publishing. Here’s what comes next:
Test across devices — Verify your app runs on Quest 3, Quest 3S, and any older headsets you want to support
Meet the technical requirements — Review the Virtual Reality Checks (VRCs) — the minimum requirements every app must pass before it can be published
Complete the Data Use Checkup — Declare how your app uses data. Required before submission. See Data Use Checkup
Set up your organization — Verify your developer organization in the Developer Dashboard
Submit for review — Upload your build, fill out your store listing (description, screenshots, trailer), and submit. The review team checks your app against VRCs and content guidelines
Launch — Once approved, choose your pricing model (paid, free-to-play, subscription, or Try Before You Buy) and publish
The review process typically takes several business days. Use release channels to beta test with real users while you wait.
What to read next
Design for VRRead the Human Interface Guidelines before writing your first line of code. Comfort, spatial UI, and accessibility matter.