Skip to content

Immersive XR

comfuture edited this page Aug 10, 2026 · 1 revision

Immersive XR

Codori serves the independently built @codori/webxr application under /xr/. Its Vite assets remain under /xr/assets/, and nested immersive routes fall back to the WebXR entry document without changing the dashboard fallback or any /api/* REST and WebSocket route.

Entering the immersive workspace

Open a materialized project or chat thread in the dashboard and use its immersive launch action. An immersive session needs both a materialized workspace and a thread, so the entry screen asks you to continue in 2D when either is missing.

The WebXR entry gate checks browser support and still requires an explicit user action before requesting an immersive-vr session. Unsupported browsers and users who choose Continue in 2D remain in the normal dashboard.

Secure origin requirement

Remote HMD access requires a secure HTTPS origin for both WebXR and microphone access. Plain HTTP is suitable only for browser secure-context exceptions such as localhost; a LAN address such as http://192.168.x.x is not sufficient.

Use a private HTTPS ingress such as Tailscale Serve, described in Remote Access, and keep the existing Codori security boundary in mind: the immersive application reuses the same same-origin /api/* routes and does not add authentication.

Voice inside XR

The immersive workspace reuses the shared voice settings described in Realtime Voice, including the stored voice preference and the instruction override. Because both microphone capture and WebXR require a secure context, an HTTPS origin covers each of them at once.

Reduced effects

The entry screen offers a Use reduced immersive effects option, pre-checked when the browser reports prefers-reduced-motion: reduce. It lowers the visual intensity of the immersive scene while keeping the workspace usable.

Clone this wiki locally