// the find
brunosimon/webgl-black-hole
A WebGL black hole visualization built with Three.js, featuring gravitational lensing distortion, an accretion disc, particle-based stars, and post-processing effects. It's a creative demo / learning resource from Bruno Simon, the guy behind Three.js Journey. Not a library — there's nothing to install and use in your own project.
The shader architecture is clean and educational: distortion, disc, particles, and final composite are each in separate GLSL files with their own materials, making it easy to read one effect in isolation. The gravitational lensing is done via a multi-pass render — distortion mask → active distortion → final composite — which is a solid technique worth studying. Perlin noise partials (2D, 3D periodic, 4D) are included as reusable GLSL snippets. The Vite + Three.js setup is minimal and gets out of the way.
This is an abandoned work-in-progress: the README's TODO list has more unchecked boxes than checked ones, and the last commit is from mid-2022. The README is effectively just a Vite boilerplate — no explanation of the rendering technique, the shader math, or how the lensing works, which is the whole interesting part. There are no comments in the GLSL files. If you're trying to learn from this, you're reading uncommented shaders with no guide.