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, and Android

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.3+ 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

Chrome extension plus local bridge giving browser WebXR apps the full DisplayXR surface — display info, rendering mode switching, tracked eye poses, HUD overlay, and input forwarding. Ships with a three.js reference sample and a standalone minimal starter; falls back gracefully to standard WebXR when the extension isn't installed

Workspace controller surface

XR_EXT_spatial_workspace and XR_EXT_app_launcher headers shipped, 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 photos, video, and Leia Image Format pictures, 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

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

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.