~/black-hole-visualizer ☕ Support me apps ← about me
██████╗ ██╗ █████╗ ██████╗██╗ ██╗ ██╗ ██╗ ██████╗ ██╗ ███████╗ ██╔══██╗██║ ██╔══██╗██╔════╝██║ ██╔╝ ██║ ██║██╔═══██╗██║ ██╔════╝ ██████╔╝██║ ███████║██║ █████╔╝ ███████║██║ ██║██║ █████╗ ██╔══██╗██║ ██╔══██║██║ ██╔═██╗ ██╔══██║██║ ██║██║ ██╔══╝ ██████╔╝███████╗██║ ██║╚██████╗██║ ██╗ ██║ ██║╚██████╔╝███████╗███████╗ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝

Black Hole Visualizer_

Real gravitational lensing · ray-traced on your GPU · accretion disk · photon ring · doppler beaming
⚠ WebGL is not available in this browser.
The black hole needs your GPU — try Chrome, Edge, Firefox or Safari.
⛶ click to fullscreen

What you're looking at

This is a ray-traced black hole rendered live on your GPU. For every pixel, a light ray is traced backwards from your eye through curved spacetime using the Schwarzschild geodesic approximation — the same technique behind the famous Interstellar renders and scientific visualizations of M87* and Sagittarius A*.

Gravitational lensing

Gravity bends light. The glowing ring arcing over and under the shadow is not a special effect — it's the far side of the accretion disk, whose light is bent around the black hole on its way to you. Crank up Inclination and the disk flattens into the iconic "hat" shape.

The photon ring

Hugging the edge of the shadow is a razor-thin photon ring — light that orbited the black hole one or more full times before escaping. It marks the photon sphere at 1.5 Schwarzschild radii, the closest distance at which light can (unstably) orbit.

Doppler beaming

The disk orbits at a hefty fraction of the speed of light. Material rushing toward you gets relativistically boosted — brighter and bluer — while the receding side dims and reddens. That's why real black hole images are lopsided. Toggle Doppler Beaming to compare.

Keyboard shortcuts

Ftoggle fullscreen SPACEpause / resume Dtoggle doppler beaming Rreset to defaults ↑ / ↓inclination ESCexit fullscreen

Great for

🖥️ Second monitor ambience — a slowly drifting black hole
🎓 Teaching relativity — lensing, photon ring & beaming, live
🎬 Sci-fi mood — your own Gargantua, fullscreen
✈️ Works offline — everything runs on your GPU
<

Guide — a ray-traced black hole with lensing, photon ring and Doppler beaming

A WebGL shader traces light rays through the curved spacetime of a non-rotating black hole, live on your GPU. Sliders, four presets, fullscreen and keyboard shortcuts.
1Let it render

The black hole renders as soon as the page loads; it needs a browser with WebGL. The tag in the corner shows the frame rate and the render resolution. Click the view (or press F) for fullscreen.

2Set the camera

Under Camera & View, Inclination (1–85°) sets how high above the disk plane the camera sits: low values look along the disk, high values look down on it. Distance runs from 10 to 30 Schwarzschild radii and Orbit Drift slowly circles the camera.

3Shape the disk

Under Accretion Disk, set Temperature (0–100, red to blue-white), Brightness (20–200%) and Flow Speed, and switch Doppler Beaming and the Accretion Disk itself on or off.

4Pick a look

Set Star Density and Quality (Low — fast, Medium, High — crisp), or press a preset: 🎬 Gargantua, 📡 M87*, 💠 Quasar or 🎩 Edge-On. Presets change the sliders; ↺ Reset Defaults restores the start values.

5Use the shortcuts

F fullscreen, Space pause / resume, D Doppler beaming, R reset, ↑/↓ inclination in 2° steps, Esc exit fullscreen. In fullscreen, move the mouse to show the ✕ Exit Fullscreen button.

Quick reference

QUALITYQuality levels
Low
50% resolution, up to 110 ray steps per pixel
Medium (default)
75% resolution, up to 190 steps
High
full resolution (pixel ratio capped at 2), up to 300 steps
SCALEDistances in Schwarzschild radii (rs)
event horizon
1 rs: rays that cross it are lost
photon sphere
1.5 rs: light can orbit here, unstably
drawn disk
2.45 to 11 rs
camera
10 to 30 rs
PRESETSPreset settings
Gargantua
8° · 15 rs · beaming off
M87*
17° · 21 rs · cool orange disk
Quasar
30° · 14 rs · very hot, fast disk
Edge-On
82° · 16 rs

Black holes and gravitational lensing, explained

A black hole bends the light around it so strongly that you see the back of its accretion disk arching over and under the dark shadow. This visualizer reproduces that by tracing a light ray for every pixel through the gravity of a non-rotating (Schwarzschild) black hole, in real time on your graphics card.

Is the gravitational lensing physically accurate?

The light paths are. Each pixel's ray is stepped backwards from the camera with the equation for light bending around a non-rotating (Schwarzschild) black hole, so the lensed far side of the disk above and below the shadow and the thin photon ring appear on their own instead of being painted on. The rest is simplified for speed and looks: the disk's colours, turbulence and brightness are artistic, the Doppler boost uses a simple formula, gravitational redshift is not modelled and the black hole does not spin. The frame rate depends on your GPU and the Quality setting; the corner tag shows it live.

Why is one side of the disk brighter than the other?

That's relativistic Doppler beaming. Disk material close to a black hole orbits at a significant fraction of the speed of light, so the side moving toward you appears brighter and bluer, while the receding side appears dimmer and redder. In this simulation the disk moves at about 0.3 times the speed of light at its outer edge and 0.55 at its inner edge. Toggle Doppler Beaming in the sidebar, or press D, to compare.

What is the thin bright ring around the shadow?

The photon ring — light that orbited the black hole one or more full times before escaping toward your eye. It appears naturally in this simulation because rays are actually traced through curved spacetime, not painted on.

It's slow on my machine — what can I do?

Switch Quality to Low — fast in the sidebar. Every pixel traces up to 110 (Low), 190 (Medium) or 300 (High) curved ray steps, and Low also renders at half resolution, so it is much lighter on your GPU. Making the browser window smaller helps too.

Does it work offline?

Once the page is open, yes: the simulation runs entirely on your GPU and does not download any data, so it keeps running if your connection drops. The page itself is not installed for offline use, so opening or reloading it needs an internet connection.

Can I use it on a second monitor or TV?

Yes! Hit fullscreen and let it drift — it makes a stunning ambient display. The "Orbit Drift" slider slowly circles the camera around the black hole for a screensaver feel.

What do the presets simulate?

Each preset sets the sliders. Gargantua is a warm disk seen from just above its plane with Doppler beaming off, like the film Interstellar, which left beaming out for a symmetrical look. M87* is a cooler, orange disk with beaming on, a nod to the Event Horizon Telescope image. Quasar is a very hot, bright, fast-flowing blue-white disk. Edge-On sets the inclination to 82°. For the classic lensing "hat", keep the inclination low so the camera looks along the disk.

More free tools

▸ More space tools
🔭 Cosmic Observatory 🪐 Exoplanet Archive 🚀 Satellite Launches 🛰️ Satellite Flyby 🌙 Artemis II Tracker 🌌 Aurora Watch 📡 Deep Space Comms 👨‍🚀 Astronaut Chatter 🛸 All Your Base 🚀 SpaceX IPO