Meta VR OS NSDK overview
Updated: Sep 11, 2026
What you can do with the NSDK
The NSDK gives you practical building blocks for native Horizon OS apps. Register a virtual camera to publish app-rendered frames as a camera device that Camera API clients, including the system Camera app, can open. Use shared types for 2D sizes, 3D bounds, vectors, and poses in NSDK APIs, and check the device SDK version to adapt your app across releases.
How NSDK fits alongside Android NDK and OpenXR
The Meta VR OS NSDK complements the Android NDK and OpenXR, and does not replace them. A typical immersive Quest app may use all three: Android NDK for standard platform features, OpenXR for core XR functionality such as rendering and input, and Meta VR OS NSDK for Horizon OS-specific capabilities.
| SDK | Purpose |
|---|
Android NDK | Access to standard Android platform APIs (sensors, audio, logging, and so on) from native code |
OpenXR | Cross-platform XR runtime APIs (rendering, tracking, input, and so on) |
Meta VR OS NSDK | Horizon OS-specific platform APIs not available through Android or OpenXR (versioning, Virtual Camera Publisher, and so on) |
The Meta VR OS NSDK is distributed as an AAR package containing:
- Header files — C API declarations included into your app at compile time (for example,
<metavr/versioning.h>). - Stub shared library (
libhzos.meta.so) — provides symbol definitions for the linker at build time. Contains no real implementation.
At runtime, the device supplies the real libhzos.meta.so with full implementations. The stub is never packaged into your APK.
Why a C API? A C interface provides maximum compatibility across compilers, build systems, and languages. It avoids C++ ABI fragility and makes the API accessible from any language that supports C foreign function interface (FFI).
| Feature | Description |
|---|
| Follow this guide to setup the NSDK to query the Meta VR OS SDK version available on the device |
| Register a custom camera that appears as a standard Android Camera2 device |
Graphics Types | Common 2D and 3D graphics data types |