DisplayXR — inline-3D web samples

Glasses-free 3D elements inside ordinary web pages, for the DisplayXR Browser. The analog of immersive-web/webxr-samples.
Get the DisplayXR Browser and open a sample below on DisplayXR hardware to see it in glasses-free 3D — in any other browser the pages render as normal 2D, so they're safe to view anywhere.

hello cube

The minimal sample — one rotating three.js cube in a bordered canvas, re-projected off-axis so you look around it. Start here to see the smallest complete inline-3D page.

mixed 3D windows

Still 3D photos, a live 3D video, and a real-time three.js scene — every kind of glasses-free-3D content, each woven with one SDK call, all on one session. The runtime batches every visible window into a single weave per frame, so it scales to a wall.

demo gallery

A grid of the DisplayXR demo logos, each woven inline as a glasses-free-3D tile — a compact showcase of the multi-element weave.

3D picture wall

A lazy-loading scrolling wall of 3D pictures — each tile's weave layer is created as it nears the viewport and closed as it scrolls away, so a long wall only pays for what's on screen.

The SDK — js/inline3d.js

A dependency-free helper over the inline-3d WebXR surface: wall.addImage() / addVideo() / addScene() turn any canvas into a weaved 3D window and manage the side-by-side buffer, feature detection, and (for many windows) a lazy create/close lifecycle. Optional three.js glue in js/inline3d-three.js. Start here: Authoring inline-3D pages.

Build your own

Clone displayxr-web and turn any canvas into a woven 3D window with one SDK call:

import { createInline3D } from './js/inline3d.js';
const wall = await createInline3D();
if (wall.supported) wall.addImage(canvas, 'photo-sbs.png');

Full API in the SDK reference, authoring details in Authoring inline-3D pages.