Skip to content

v0.24.0: Additive Display Simulation for VST Devices, DepthMesh Performance, WebGPU Lighting & Netblocks Upgrades

Latest

Choose a tag to compare

@dli7319 dli7319 released this 20 Oct 23:58
· 277 commits to main since this release
Immutable release. Only release title and notes can be modified.
e455e0e

XR Blocks v0.24.0 Release Notes

We are excited to announce XR Blocks 0.24.0, introducing additive display simulation for VST devices, high-performance DepthMesh raycasting, WebGPU lighting estimation, standalone and unreliable data channels for Netblocks, updated AI models, and TypeScript declaration improvements.

Highlights

  • Additive Display Simulation for VST devices: Added support for simulating optical see-through displays on video see-through (VST) headsets, including an opt-in additive display simulation (simulateAdditiveDisplay) with adjustable dimming, a high-contrast UI theme preset (highContrast), and configurable simulator diagonal FOV settings.
  • DepthMesh Raycasting Performance: Accelerated ray intersection tests against DepthMesh using 2D projective grid traversal, delivering much faster controller raycasting and reticle positioning against scene depth.
  • WebGPU Lighting Support: Extended THREE.WebGPURenderer support to Lighting estimation and directional lighting rigs, along with restored WebGPU UI panel clipping and material parity.
  • Netblocks Multiplayer Enhancements: Decoupled Netblocks byte transports from Three.js for standalone use, added optional negotiated unreliable data channels for real-time state streaming, and improved peer recovery.
  • Input & Interaction Refinements: Improved transient-pointer completion for pinch-to-click gestures (such as Apple Vision Pro style interactions), refined pinch filtering for hand tracking, and added explicit UI zoom controls.
  • AI Models & Dependency Updates: Updated default AI models across the SDK (Gemini Live to 3.8-live, Gemini Image to nano-banana-2.1, and OpenAI to gpt-6-luna), and upgraded @sparkjsdev/spark to 2.2.0.
  • TypeScript & Developer Experience: Resolved published SDK TypeScript declarations so external consumers can build without repository path aliases, and added script initialization failure logging.

What's Changed

  • feat(simulator): add mode-adapted idle overlay instructions by @dli7319 in #703
  • fix(simulator): hide hand pose panel until hands are shown by @dli7319 in #704
  • perf(depth): optimize DepthMesh updates, stereo depth extraction, and OcclusionPass by @dli7319 in #705
  • fix(input): only apply PinchFilter to hand input by @salmanmkc in #708
  • refactor(netblocks): decouple byte transports from three.js by @salmanmkc in #712
  • fix(input): complete transient-pointer clicks released between frames by @salmanmkc in #706
  • feat(input): support addon controller cleanup and explicit UI zoom by @salmanmkc in #711
  • feat(netblocks): add optional unreliable data channels by @salmanmkc in #716
  • fix(simulator): dispose day/night sun shadow resources by @salmanmkc in #718
  • docs: correct WebGPU and project setup guidance by @salmanmkc in #717
  • fix: resolve published TypeScript declarations without repo aliases by @salmanmkc in #719
  • feat(ui): add additive see-through display support by @salmanmkc in #709
  • fix(ui): restore WebGPU panel clipping and material parity by @salmanmkc in #724
  • fix(core): log script initialization failures by @salmanmkc in #729
  • fix(ui): correct alpha-hex brightness in UIKit by @salmanmkc in #727
  • fix(depth): read right-eye GPU depth in stereo by @salmanmkc in #726
  • perf(depth): use 2D projective grid traversal in DepthMesh.raycast() by @dli7319 in #715
  • fix(deps): align dependencies with airlock and pin uikit by @dli7319 in #732
  • feat(lighting): add WebGPU support to Lighting by @dli7319 in #733
  • chore(deps): update @sparkjsdev/spark to 2.2.0 by @dli7319 in #734
  • feat(netblocks): add negotiated unreliable channels and opt-in recovery by @salmanmkc in #720
  • chore(ai): update default Gemini live model to 3.8-live by @salmanmkc in #735
  • chore(ai): update default OpenAI model to gpt-6-luna by @salmanmkc in #739
  • chore(ai): update default Gemini image model to nano-banana-2.1 by @salmanmkc in #738
  • chore: align stale CDN pins in webcam_gestures and face_mirror by @salmanmkc in #740
  • fix(demos): port the diet helper to current sdk apis by @salmanmkc in #743
  • fix(demos): use the SDK default Gemini model in diet helper by @salmanmkc in #736
  • chore: bump to 0.24.0 by @dli7319 in #745

Full Changelog: v0.23.0...v0.24.0