Skip to content

DisplayXR/displayxr-runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10,453 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DisplayXR

DisplayXR Runtime

Build Windows Build macOS License: BSL-1.0

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.

Architecture

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

Quick Start

One-command dev install

# macOS
git clone https://github.com/DisplayXR/displayxr-runtime
cd displayxr-runtime
./scripts/setup-displayxr.sh                  # runtime + sim-display
./scripts/setup-displayxr.sh --with mcp       # also DisplayXR MCP Tools (AI-agent / voice control)
:: Windows — run from an ELEVATED command prompt
git clone https://github.com/DisplayXR/displayxr-runtime
cd displayxr-runtime
scripts\setup-displayxr.bat                   :: runtime + Shell + Leia plug-in
scripts\setup-displayxr.bat --with mcp        :: also DisplayXR MCP Tools (AI-agent / voice control)

Downloads each component's installer from its GitHub Releases page (versions pinned in versions.json), runs it silently, verifies the install. See docs/getting-started/full-stack-install.md for --with-demos, --dry-run, --uninstall, and the per-component platform availability matrix.

Manual install

For full control, install each component directly from its release page. Order: runtime → Shell → Leia plug-in → MCP Tools.

Component Windows macOS
DisplayXR Runtime (required) DisplayXRSetup-*.exe DisplayXR-Installer-*.pkg
DisplayXR Shell (optional, spatial workspace UX) DisplayXRShellSetup-*.exe — (deferred)
Leia SR plug-in (Leia hardware only) DisplayXRLeiaSRSetup-*.exe — (vendor SDK is Windows-only)
MCP Tools (optional, AI-agent / voice control) DisplayXRMCPSetup-*.exe — (future)

The website's Get Started page walks through the manual flow end-to-end with verification steps.

Build from source

# Windows — one command (ELEVATED prompt): build + register sim-display + set active runtime + VS solution
scripts\dev-setup.bat                 # add --leia to also build+register the Leia SR plug-in from source
scripts\build_windows.bat test-apps   # then build the test apps
_package\run_cube_handle_d3d11_win.bat

# ...or build only, auto-fetching vcpkg + OpenXR loader (no vendor SDK; Leia ships as a separate plug-in):
scripts\build_windows.bat all
# Outputs: _package/DisplayXRSetup-*.exe (installer) + _package/bin/
# NOTE: a from-source build must register the sim-display plug-in before it runs
# (Windows discovery is registry-only). dev-setup.bat does this; standalone, run
# `scripts\register_dev_plugin.bat` once from an elevated prompt.

# macOS — runtime + sim-display plug-in + .pkg installer
brew install cmake ninja eigen vulkan-sdk && ./scripts/build_macos.sh --installer
# Outputs: _package/DisplayXR-Installer-*.pkg (installer) + _package/DisplayXR-macOS/
# Install: sudo installer -pkg _package/DisplayXR-Installer-*.pkg -target /
# (Gatekeeper warns on double-click — the .pkg is unsigned today; sudo installer
#  from terminal bypasses Gatekeeper. Notarization tracked in issues #280/#281.)

# Run a dev build without installing
XR_RUNTIME_JSON=./build/Release/openxr_displayxr-dev.json ./your_openxr_app

See Building DisplayXR for full instructions and CMake options.

Simulation Driver

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

Documentation

I want to... Start here
Build apps for 3D displays Getting Started
Contribute to DisplayXR Contributing Guide
Integrate my display hardware Vendor Plug-in Onboarding
See the full docs index Documentation Index
See the project roadmap Roadmap

Key References

  • 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 at displayxr-mcp/docs/mcp-spec.md.

Related Repos

Repo Description
displayxr-installer Meta-installer — one bundle that installs runtime + Shell + plug-ins
displayxr-shell-releases DisplayXR Shell — spatial workspace controller (installer + bug reports)
displayxr-leia-plugin Leia SR display-processor plug-in (DisplayXRLeiaSRSetup-*.exe)
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
displayxr-common Generalized off-axis frustum projection math library (displayxr::math + displayxr::common)

Contributing

We welcome contributions! See the contributing guide for workflow, code style, and CI expectations.

License

Boost Software License 1.0

About

Lightweight OpenXR runtime for 3D displays · Windows, macOS, Android

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors