Roadmap
Development milestones and upcoming work for the DisplayXR runtime and ecosystem.
Done
Monado fork focused on spatial displays
Forked from the Monado OpenXR runtime, removed VR and headset-specific code, and refocused the codebase entirely on spatial displays
Native compositors for every major graphics API
Dedicated compositor implementations for D3D11, D3D12, Metal, OpenGL, and Vulkan — no cross-API translation layer required
Custom OpenXR extensions
Extensions for querying spatial display geometry, rendering modes, eye tracking, and binding compositor output to application windows across Windows, macOS, Android, and Linux (X11 and Wayland)
Unity plugin with sample scene
UPM package for Unity with a working sample scene to get started quickly
Unreal Engine plugin (beta)
Initial release of the Unreal plugin for UE 5.7 on Windows, macOS, and Android — eye-tracked Kooima stereo, camera- and display-centric rigs, Blueprint components, material expressions, and zero-copy atlas handoff
Standard OpenXR app compatibility
Apps built against the standard OpenXR API work with DisplayXR without modification
Multi-app compositing
Runtime support for compositing multiple applications into a single spatial scene — D3D11, D3D12, Vulkan, and OpenGL apps running simultaneously
Spatial desktop shell
A 3D window manager built on the runtime — spatial windowing, window chrome, layout presets, Z-depth, rotation, persistence, and 8 layout modes including Theater, Carousel, and Expose
2D app support
Standard desktop applications captured as flat panels in 3D space via Windows.Graphics.Capture, with auto-adoption of visible windows and head-tracked parallax
Focus-adaptive rendering
Display automatically switches between 2D and 3D mode based on the focused app type — 2D apps get full-resolution flat rendering, 3D apps get stereo with interlacing
App launcher, graceful exit, and lifecycle
Spatial app launcher with 3D icon tiles, system tray integration, registered apps config. Graceful exit restores captured windows to original desktop positions
3D screenshot and capture
Capture stereo atlas frames via hotkey (Ctrl+Shift+C) or IPC — full-resolution SBS output before display-specific processing, with JSON sidecar metadata
AI-native runtime control (MCP)
Live spatial state and control exposed to AI agents over the Model Context Protocol — introspect stereo projection, capture frames, arrange windows in 6-DOF, save/load workspaces, all via natural language. Framework extracted to displayxr-mcp (May 2026) so the runtime, the reference shell, and any third-party workspace controller can embed the same agent surface
WebXR Bridge (shipped, since retired)
A Chrome extension plus a local bridge that gave WebXR pages the full DisplayXR surface — display info, rendering mode switching, tracked eye poses, HUD overlay, and input forwarding. Retired in runtime v2.11: it only ever helped pages explicitly written against session.displayXR, and that audience is better served by inline 3D in the DisplayXR Browser. Standard WebXR still runs on the runtime unaugmented
Workspace controller surface
XR_DXR_spatial_workspace header shipped, launcher tiles via *.displayxr.json app manifests, controller registration via Windows registry contract, and the reference shell now ships separately as its own installer. Any third-party (OEM, vertical, kiosk, AI-agent driver) can ship a workspace controller with the same first-class authority
Multi-compositor performance pass
Cross-process D3D11 fence to move sync off the render thread, capture-thread as the sole workspace-render driver (3.2× per-cube fps), and vendor 3D-state poll caching (37→59 fps per cube to hit 60Hz P0)
Standalone demo apps
A growing family of demos ships from their own repositories — a real-time Gaussian-splat viewer, a glTF 2.0 PBR model viewer, a spatial media player for stereo photos and video, a transparent click-through 3D avatar that floats over the desktop, and a streaming 3D city viewer on Google Photorealistic 3D Tiles
Truthful per-mode eye tracking
Rendering modes now declare whether they consume live eye tracking, isTracking reports the real tracker state end-to-end (including out-of-process apps), and apps get an edge-triggered event on tracking loss/recovery — shipped as a coordinated runtime + Leia plug-in release
Android runtime
The same OpenXR runtime now ships on Android, driving integrated 3D tablets and handhelds (ZTE Nubia Pad 2, Red Magic Explorer 3D) through the native Vulkan compositor. The vendor display processor runs out-of-process with a zero-copy buffer handoff, rendering is orientation-aware across portrait and landscape, and mixed 2D/3D display zones, per-mode eye tracking, and see-through transparency all carry over from the desktop. Model-viewer and media-player demos ship Android builds
Extensions under the DXR vendor author tag
All fourteen DisplayXR extensions renamed from the provisional XR_EXT_* naming to XR_DXR_*, under the project's vendor author tag (officially registered with Khronos, July 2026), and shipped as a coordinated v2.0.0 release train — runtime, shell, vendor plug-in, engine plugins, demos, and meta-installer moving together. Apps built against the old names keep working on runtimes before v2.0.0 or rebuild against the v2.0.0 headers; migration is one command (scripts/dxr_rename.py in the runtime repo)
One compositor pipeline, with OS-native app switching
The service runs a single always-on compositor pipeline with one display processor per panel, so any number of concurrent apps share the display instead of contending for it. Which app the panel shows follows the operating system's foreground window — connected apps carry a taskbar and Alt-Tab entry, focusing one hands it the display, and an app can take the panel over a running workspace and hand it back without either being torn down. Panel ownership is leased with mode changes applied on the render thread, client commits are paced to the display, and a plug-in that implements the new re-bind slot switches apps without the panel dropping to flat and back
Linux runtime — native Wayland
Linux is a shipping platform, and native Wayland is its primary target: glasses-free 3D windows run as native Wayland apps on Ubuntu 24.04 and 26.04 with GNOME, through a native Vulkan compositor and XR_DXR_wayland_surface_binding. Windows carry a translucent, rounded client-side title bar that sits outside the weave; a GNOME Shell extension shipped with the runtime tells it where each window is and keeps every step of a drag on the lens's phase lattice at any output scale, so the 3D stays locked while a window moves; and a window spanning the 3D panel and another display weaves only the part on the panel. Transparent apps float 3D over the live desktop, captured with the app's own window excluded and only while the content is actually transparent, and an opaque window declares an opaque surface so GNOME can scan a fullscreen weave out directly. All five demos ship one binary per app that picks native Wayland automatically by capability probe. X11 and XWayland remain supported as the legacy path (XR_DXR_xlib_window_binding), weaving only when the panel is addressed 1:1 at an integer scale. Every component ships a .deb built on the oldest supported release, and the meta-bundle installs runtime, vendor display-processor plug-in and all five demos with one command. Ubuntu 22.04 is supported with an X11 session recommended, but not yet hardware-validated. The out-of-process service path on Linux remains on the roadmap
Now
Shell input forwarding
Keyboard and mouse input forwarding to captured 2D windows, including modern WinUI/XAML apps
macOS spatial shell
Port the multi-compositor and shell to macOS via Metal
DisplayXR Browser
A Chromium-based browser that renders the web normally and weaves glasses-free inline 3D on DisplayXR hardware, built on the runtime's window-bound weave service. The weave is GPU-resident — no per-frame CPU readback — and inline-3D web samples plus a JS helper library ship alongside it. 1.0 release channel: security updates follow Chrome stable
Expand demos and engine integrations
Next
3D capture pipeline
Session recording, spatial replay, and dataset generation from live spatial content
Multi-display workspaces
Extend the spatial desktop across multiple tracked displays, starting with a single machine
Later
Broader ecosystem and standardization
For detailed tracking, see individual repo milestones on GitHub.
Want to help build this?
DisplayXR is open source and vendor-neutral. Pick up an open issue, or read the architecture to see how the pieces fit.