VOXEL REFLECTIONS
THREE.JS · TSL · WORLD SPACE

Beyond the edge
of the screen.

Reflections from the scene, not its screenshot.
A directional voxel cache keeps hidden and
off-screen surfaces in the picture.

Initializing WebGPU
The three colored sources are behind the camera.WORLD-SPACE CACHE
Preparing the voxel cache
—VOXELS / AXIS
—OCCUPIED CELLS
—RADIANCE MEMORY
—LAST CACHE UPDATE
01 / SCENE COVERAGE

Not limited to visible pixels.

World-space rays cross a bounded scene cache. Camera movement does not require rebuilding static geometry.

02 / SURFACE RESPONSE

Sharp cells. Broader cones.

Smooth materials use voxel DDA. Rough materials gather directionally filtered mip levels with front-to-back opacity.

03 / EXPLICIT TRADE-OFFS

A cache, not a path tracer.

Finite resolution, single reflected transport, and explicit scene updates. Glossy-of-glossy and glass transport are outside this release.

A SMALL, EXPLICIT API

One cache.
Any number of receivers.

Bring your own render loop. Bind node materials or compose the raw reflection nodes into a custom TSL graph.

Read the complete guide ↗

Release candidate. Read the validation report for native WebGPU and WebGL2 results, device details, and remaining limits.

const reflections = new VoxelReflections({
  staticVolume: { resolution: 64, bounds },
  maxDistance: 40
});

reflections.bind(mirror.material);

// After a geometry or material change:
reflections.invalidateGeometry();

// Inside your render loop:
reflections.update(renderer, scene);
renderer.render(scene, camera);