A rebuild of the ultramock.io depth-of-field blurs on top of the three.js WebGPU renderer. The circle of confusion is derived from a thin-lens model (focal length, aperture, focus distance) in TSL node shaders, then fed to a separable bokeh gather pass; the floor is a procedural blueprint grid generated in the same node graph.
Built by Niccolò Fanton. Browse all WebGL demos on the demo hub, or read the source code for this demo on GitHub.