Contribute
DisplayXR is open source and vendor-neutral. Whether you want to add a feature, an extension, or a new platform, here's how the project is laid out and where to start.
Understand the design first
Where the code lives
DisplayXR is a multi-repo project under the DisplayXR org. External contributors PR directly against the relevant repo.
Core
Engine plugins
displayxr-unityUnity engine plugin (UPM package) with eye-tracked stereo rendering, sample scenes, and standalone editor preview.
displayxr-unity-samplesReady-to-open Unity sample projects — Built-in/URP/HDRP pipeline tests plus a transparent Desktop Avatar showcase — wired to the DisplayXR Unity plugin, with one shared installer. Consolidates the earlier per-feature test repos into a single monorepo.
displayxr-unrealUnreal Engine plugin (UE 5.3+) with eye-tracked Kooima stereo, camera- and display-centric rigs, Blueprint components, material expression nodes, and zero-copy atlas handoff. Windows, macOS, Android.
Libraries & tools
displayxr-commonShared math and common library — off-axis (Kooima) projection, atlas tiling, and window/canvas helpers consumed by the runtime, engine plugins, and demos from a single source of truth.
displayxr-mcpTiny embeddable Model Context Protocol server framework, plus the DisplayXR MCP Tools installer that end users download to opt in to AI-agent / voice control. The framework lets the runtime, the reference shell, and any third-party workspace controller expose live spatial state and control to AI agents (Claude Code, voice CLIs, custom drivers); the installer writes a registry capability flag the runtime and shell read at startup.
displayxr-vendor-templateVendor-neutral starter kit for building a DisplayXR display-processor plug-in — the ABI, discovery, and build scaffolding a new 3D-display maker needs, with no vendor SDK required. Fork it to bring up a plug-in against the sim_display path, then swap in your own weaver.
displayxr-cef-hostA CEF (Chromium Embedded Framework) offscreen-render browser host that drives the real DisplayXR display-processor weave through XR_DXR_weave — the reference present-owner for inline 3D in a browser surface. The host itself never weaves; it hands the runtime a stereo texture and a window rect and composites the weaved result.
Demo apps
displayxr-demo-gaussiansplatReal-time 3D Gaussian Splatting viewer (.spz / .ply) for spatial displays. macOS + Windows.
displayxr-demo-modelviewerGlasses-free 3D glTF 2.0 PBR model viewer (OpenXR + Vulkan). Drag-and-drop a .glb / .gltf model.
displayxr-demo-mediaplayerSpatial media player — photos, GPU-decoded video with synchronized audio, Leia Image Format (LIF) pictures, and folder slideshows, with playback controllable by AI agents. Windows, macOS, Android.
displayxr-demo-avatarA transparent, click-through 3D avatar that floats over your desktop (OpenXR + native Vulkan) — weaved in 3D with a flat 2D speech bubble beside it, and clicks passing through to whatever is behind. Showcases the see-through transparency and mixed 2D/3D display-zone path.
displayxr-demo-earthviewStreaming glasses-free 3D city viewer on Google Photorealistic 3D Tiles (OpenXR + Vulkan). Fly the full-scale world camera-style, or double-click to frame a neighborhood as a tabletop diorama. Requires a Google Map Tiles API key.
displayxr-webInline-3D web samples and the JS helper library for the DisplayXR Browser — the DisplayXR analog of the webxr-samples gallery, served via GitHub Pages.
Workspace controllers
displayxr-shell-releasesReference spatial workspace controller — a 3D window manager with multi-app compositing, 2D window capture, dynamic layouts, and focus-adaptive rendering. Ships as a standalone installer; build your own controller for verticals, kiosks, or OEM-branded workspaces using the same extension surface.
displayxr-browserDisplayXR Browser — a developer-preview Chromium that renders the web normally and weaves glasses-free inline 3D on DisplayXR hardware. The productization of the inline-3D browser work validated by the CEF host, with a GPU-resident weave (no per-frame CPU readback).
Key decisions (ADRs)
Architecture Decision Records capture why the runtime is built the way it is. A few you'll want before touching the pipeline — the full set is in docs/adr.
ADR-001Native compositors per graphics APIADR-007The compositor never weaves (that's the display processor's job)ADR-019Vendor plug-in / aux boundaryADR-022Per-mode capability flags + frozen enumerated app structsADR-025Android vendor display processors run out-of-processADR-027Display zones — decoupled mixed 2D/3D layout with per-zone rigsAdd a feature, extension, or platform
The deep guides live in the runtime repo; these are the entry points. (Writing a plug-in for a 3D-display panel instead? See the Display Vendors guide.)
Pick up an issue
Runtime dev issues live in the runtime repo; external contributors open a PR directly against it. New here? Filter for good first issue.