VOXEL REFLECTIONS
1.0.0-rc.1Open the lab ↗GitHub ↗

Reflections beyond the screen.

A world-space radiance cache for Three.js TSL and WebGPU.

Reflect geometry behind the camera, study rough surfaces, and share one cache across your receivers. No screen-color buffer, temporal history, or camera-centered voxelization.

Open the interactive lab → · Start integrating → · Read the GPU validation →

Reflective floor and curved receiver in the material gallery

Explore the examples

Scene What to try
Off-screen proof Toggle reflections, block the middle source, then move that source. All three sources remain behind the camera.
Roughness study Compare sharp voxel traversal with directionally filtered cones across three receivers.
Material gallery Inspect reflections across a floor and curved receiver. Switch between combined shading, radiance, and accumulated opacity.

The lab uses native WebGPU and reports initialization failures explicitly. An explicit WebGL2 comparison is also available.

Choose your cache

Portable static cache. Bake supported scene geometry and direct lighting on the CPU. Upload half-float textures; trace reflections and filter the hierarchy on the GPU. Rebuild only when geometry, materials, or lighting change.

Native VXGI adapter. Reuse Three.js r186's experimental GPU voxel volume. Ownership and update scheduling are explicit. Read the adapter contract and limits.

A library, with explicit trade-offs

The npm package name is three-voxel-reflections. It exports typed ESM entry points for the main API, CPU core, and optional VXGI adapter. Three.js stays a peer dependency; the library does not bundle a second renderer.

This is 1.0.0-rc.1. See the validation report for the tested browser, GPU, assertions, and remaining cross-device release gates. Finite voxel resolution, bounded scenes, approximate rough filtering, and single reflected transport are deliberate constraints.

  • API reference: options, lifecycle, material bindings, and raw TSL nodes.
  • Architecture: conservative voxelization, directional hierarchy, traversal, and resource ownership.
  • Getting started: installation, render-loop integration, and supported inputs.
  • Contributing: reproducible checks and development commands.