An open-source OpenXR runtime for spatial displays — 3D monitors and laptops with tracked stereo and multiview lightfield display technology.
Built on Monado by Collabora, DisplayXR strips away headset-centric infrastructure (34 VR drivers, Vulkan server compositor, tracking subsystems) and replaces it with a lightweight runtime purpose-built for 3D displays: ~150 files, 3 drivers, native compositors for every graphics API.
App (any graphics API)
|
OpenXR State Tracker
|
Core xrt interfaces
|
+----+-----+--------+--------+
| | | | |
D3D11 D3D12 Vulkan Metal OpenGL ← native compositors
| | | | |
Display Processor (LeiaSR / sim_display)
|
Display
Every graphics API gets its own native compositor — no Vulkan intermediary, no interop overhead. Vendor-specific processing (interlacing, lenticular weaving) is isolated in the display processor layer.
| API | Windows | macOS |
|---|---|---|
| D3D11 | Shipping | — |
| D3D12 | Shipping | — |
| Metal | — | Shipping |
| OpenGL | Shipping | Shipping |
| Vulkan | Shipping | Shipping |
# Windows — recommended (auto-fetches vcpkg, OpenXR loader, LeiaSR SDK)
scripts\build_windows.bat all
# Outputs: _package/DisplayXRSetup-*.exe (installer) + _package/bin/
# macOS
brew install cmake ninja eigen vulkan-sdk && ./scripts/build_macos.sh
# Run without installing
XR_RUNTIME_JSON=./build/Release/openxr_displayxr-dev.json ./your_openxr_appPre-built installers from GitHub Releases. For the spatial-workspace experience, also install the DisplayXR Shell (separate installer, registers with the runtime via the workspace controller contract).
See Building DisplayXR for full instructions and CMake options.
No 3D display required. The sim_display driver provides a simulated tracked display with WASD + mouse eye position control:
XR_RUNTIME_JSON=./build/openxr_displayxr-dev.json ./build/test_apps/cube_handle_vk_macos/cube_handle_vk_macos| I want to... | Start here |
|---|---|
| Build apps for 3D displays | Getting Started |
| Contribute to DisplayXR | Contributing Guide |
| Integrate my display hardware | Vendor Integration Guide |
| See the full docs index | Documentation Index |
| See the project roadmap | Roadmap |
- App Classes — handle, texture, hosted, IPC
- XR_EXT_display_info — display properties and rendering mode extension
- Kooima Projection — stereo math and projection pipelines
- Separation of Concerns — layer boundaries
- displayxr-mcp — embeddable MCP server framework. End users opt in to AI-agent / voice control by installing DisplayXR MCP Tools (releases), which writes
HKLM\Software\DisplayXR\Capabilities\MCP\Enabled=1; the runtime reads this at startup and spawns a per-app MCP server.DISPLAYXR_MCP=1(or=0) is still supported as a process-local override for CI / dev. Runtime registers Phase A handle-app introspection tools (list_sessions,get_display_info,capture_frame,tail_log, …) per app process; the reference shell hosts Phase B workspace tools. Spec atdisplayxr-mcp/docs/mcp-spec.md.
| Repo | Description |
|---|---|
| displayxr-shell-releases | DisplayXR Shell — spatial workspace controller (installer + bug reports) |
| displayxr-extensions | OpenXR extension specs and headers |
| displayxr-mcp | Embeddable MCP server framework + DisplayXR MCP Tools installer (end-user opt-in for agent / voice control) |
| displayxr-demo-gaussiansplat | 3D Gaussian Splatting reference demo |
| displayxr-unity | Unity engine plugin (UPM package) |
| displayxr-unreal | Unreal Engine plugin |
| kooima-projection | Off-axis frustum projection math library |
We welcome contributions! See the contributing guide for workflow, code style, and CI expectations.
Boost Software License 1.0