verve.gl — SSAO

Cubes resting on a floor, rendered through the depth + view-space-normal G-buffer prepass and a screen-space ambient-occlusion pass: a 16-point hemisphere kernel sampled per fragment, blurred, and multiplied into the scene before bloom + tonemapping. Toggle SSAO compares contact shadows with/without AO; Toggle AO View shows the raw AO buffer. WebGPU when available, else WebGL2.

Cubes on a floor — screen-space ambient occlusion