Repository navigation
CloudXR.js samples 6.4.0
Updates the simple (WebGL) and React sample clients for CloudXR.js SDK 6.4.0, and adds a local metrics hub. Both samples now depend on the published @nvidia/cloudxr 6.4.0 package instead of the dev tag.
New
- Metrics hub (
hub/): a local WebSocket hub with a browser page that shows live client metrics as rolling charts and a headset log viewer. Start it withnpm start(HTTPS/WSS on port 8787 by default, ornpm run start:http). The React sample connects to it when opened with?oobEnable=1&hubPort=8787, streams its metrics, and accepts remote configuration pushes. - Microphone control: the React and simple samples can send microphone audio upstream. Permission is requested before the immersive session starts, because Chrome exits immersive mode when a permission dialog appears. The React sample has a new Microphone setting, and the simple sample handles a denied or missing microphone with a clear message and continues without audio.
- Client token: the React sample has an optional Client Token field for authenticating the connection. It is kept in memory only and is never saved or logged.
- Stream test: new Stream Test Configuration settings (Off / Warn / Block, 5–30 s) measure stream quality before rendering. Warn reports the result; Block disconnects on failure.
- Target frame rate: both samples apply and confirm the headset's target frame rate before the stream is negotiated, which avoids a frame-pacing mismatch that caused burst and freeze artifacts on Quest 3.
- URL parameters: the React sample's URL query parameters are declared in one place (
react/src/config/params.ts) and seed the matching form controls on load. URL values override stored values for that load only.
Changed
- Defaults: the React sample defaults to 100 Mbps (was 150 Mbps) and to the new Auto codec choice (AV1, then H.265, then H.264) instead of AV1 only. The 120/150/180/200 Mbps options are replaced by 10 and 50 Mbps options.
- Emulated AR on desktop: when running under IWER in AR mode, the samples show a dark checkerboard backdrop instead of letting the page's HTML bleed through the transparent XR layer.
- Source layout: shared helpers are reorganized. The React sample's code now lives under
src/cloudxr/,src/components/,src/hooks/,src/metrics/,src/utils/andsrc/config/, and the simple sample's helpers moved tosrc/utils/. If you copied files from the samples, check the new paths. - Dependencies: IWER 2.3.0,
@react-three/xr6.6.31, and React/React DOM pinned to the 19.2.x line. - Docs: the agent guidance (
AGENTS.md,SKILL.md,agent-api-reference.md) is updated, and the Dockerfile comments now note that the nginx image runs as root to bind port 80.
Install
npm install @nvidia/cloudxr@6.4.0Live samples: https://nvidia.github.io/cloudxr-js-samples/
Full changelog: 6.2.0...6.4.0