Fosforonero
DevJune 6, 2026 · 7 min read

Black hole vs Gargantua: same physics, less time

Same Kerr metric as Interstellar, same geodesics. Render farm vs 16ms in the browser: Doppler g⁴, thin disk, photon ring. What's identical and what changes.

Kerr black hole ray-traced in real time: lensed accretion disk, photon ring and relativistic Doppler beaming, Fosforonero simulator vs Interstellar's Gargantua

There's a question I get a lot when I show the black hole simulator: "is it like the one in Interstellar?" The honest answer is: the physics is the same, the rest isn't, and it's in the "rest" that all the interesting engineering lives. This article puts the two side by side, line by line, no cheating.

Kerr black hole ray-traced in real time: lensed accretion disk, photon ring and Doppler beaming, comparison with Interstellar's Gargantua The simulator: Kerr black hole with Doppler enabled. The approaching side is brighter (relativistic beaming). Gargantua in the film has a symmetric disk by artistic choice. Render: Fosforonero.

First photograph of a black hole: M87*, captured by the Event Horizon Telescope (2019) M87*: the asymmetric ring is real, not cinema. The brighter part (bottom) is the plasma approaching the observer: Doppler beaming, the same effect you can toggle in the simulator. Credit: EHT Collaboration (CC BY 4.0).

Gargantua, the film's black hole (2014), was computed by Double Negative with a dedicated engine, DNGR (Double Negative Gravitational Renderer), described in a genuine scientific paper (James, von Tunzelmann, Franklin & Thorne, 2015). It isn't graphics "by feel": it's integrated general relativity. The same is true of my renderer. The difference is not what you compute, but how much time you're allowed to take.

What's identical: the metric and the geodesics

Both start from the same geometry, the Kerr metric, the spacetime of a rotating black hole. I use it in Cartesian Kerr–Schild form:

gμν=ημν+fkμkν,f=2Mr3r4+a2z2g_{\mu\nu} = \eta_{\mu\nu} + f\,k_\mu k_\nu, \qquad f = \frac{2 M r^{3}}{r^{4} + a^{2} z^{2}}

where η\eta is flat spacetime, kk a null vector and a=J/Ma = J/M the spin. On this geometry a photon travels on a null geodesic, which I treat as the flow of a Hamiltonian:

H=12gμνpμpν=0H = \tfrac{1}{2}\,g^{\mu\nu} p_\mu p_\nu = 0

For each pixel I shoot a ray from the camera and integrate this equation backwards through curved spacetime. DNGR does exactly the same: ray-tracing the exact Kerr null geodesics. From this, not from a drawing, emerge the shadow, the bent light, the disk arcs passing above and below the hole. The edge of the shadow falls in precisely the same place for both:

bc=33M2.6rs(Schwarzschild)b_c = 3\sqrt{3}\,M \approx 2.6\,r_s \quad (\text{Schwarzschild})

On this we are level, and the differences are sub-pixel, numerical. It's the "wow" part and it is genuinely the same.

What changes: hours per frame vs 16 milliseconds

Here a chasm opens. DNGR ran offline, on a render farm: up to hours per frame at IMAX resolution (tens of megapixels), with hundreds of terabytes of data for some sequences. I have the budget of a WebGL fragment shader: about 16 milliseconds per frame, on a phone's GPU. Between the two time budgets there are five or six orders of magnitude.

That gap doesn't change which equations you solve, but how much care you can put in. Three concrete consequences:

  • Ray bundles vs one ray per pixel. DNGR didn't trace a ray but whole bundles of rays, propagating their cross-section. That let it accurately filter and anti-alias the razor-thin features: the thread of the photon ring, the disk edges. I have one ray per pixel; in their place I use supersampling, noise band-limiting and dithering. My edges are a touch more "alive", theirs surgical.
  • Aggressive adaptive stepping. To stay within 16 ms I refine steps only where curvature matters (near the photon sphere) and advance in a straight line through empty space. They could afford to be generous everywhere.
  • No second pass. They refined offline; I have to nail everything in a single shading pass.

Where I'm more honest than the film: the Doppler asymmetry

This is my favourite, because it's a case where the film cheated on purpose and I don't. The spinning disk: one side comes toward us, the other flees. Relativistic Doppler beaming makes the observed intensity scale with the fourth power of the Doppler factor:

Iobs=g4Iem,g=νobsνemI_{\rm obs} = g^{4}\,I_{\rm em}, \qquad g = \frac{\nu_{\rm obs}}{\nu_{\rm em}}

A little is enough for one side to turn blinding and the other to dim. In Interstellar the disk is instead almost symmetric: Christopher Nolan and Kip Thorne chose to suppress the asymmetry, because such a lopsided image would confuse the audience. A legitimate narrative choice. I do the opposite: there's a switch to turn on the real Doppler asymmetry and watch the disk lopside the way the physics demands. The goal here is educational, not cinematic, so I show what the film hid.

The disk: two different models, neither is GRMHD

Here's a point few people know: neither disk is a simulation of the plasma. A full solution, general-relativistic magnetohydrodynamics (GRMHD) with the magnetic fields, the magnetorotational turbulence and synchrotron, costs minutes to hours per frame on a supercomputer. Neither the film nor I can afford it in those settings.

Their disk was a bespoke artistic-volumetric model built by hand by the artists (textures, thickness, swirls). Mine is an optically-thick surface with real blackbody emission and a relativistic thin-disk flux profile (Shakura–Sunyaev):

F(r)(rinr)3(1rinr)F(r) \propto \left(\frac{r_{\rm in}}{r}\right)^{3}\left(1 - \sqrt{\frac{r_{\rm in}}{r}}\,\right)

with the inner edge rinr_{\rm in} pinned to the Kerr ISCO. From that flux I get each ring's temperature and hence its true Planckian colour, no arbitrary palettes. They are two models of the gas, both honest about what they are not. I recently added a volumetric veil too, to give my thin disk a hint of the "soft" halo that, in the film, comes from real volume.

The photon ring: neither of us draws it

Around the shadow there's a thread of light: the photon ring, the disk's light that has gone half a turn, a turn, two turns around the hole before coming back to us (the returning radiation). Neither they nor I draw it: it emerges from the integration. But how fast do those nested rings close in? The photon sphere is an unstable orbit, and each extra turn shrinks the image by a fixed factor set by the Lyapunov exponent γ=π\gamma = \pi (Schwarzschild):

wn+1wneγ=eπ123\frac{w_{n+1}}{w_n} \sim e^{-\gamma} = e^{-\pi} \approx \frac{1}{23}

Each successive ring is ~23 times thinner and fainter than the last. With ray bundles, DNGR resolved these sub-rings better than I do; I resolve the primary and the first ring well (with a slight contrast nudge so the second reads). The physics is the same; the sharpness is paid for, again, by the budget.

The sky: real stars at last

For a long time my background was a procedural starfield. Not anymore: the "Real sky" toggle projects a genuine photograph of the whole sky, NASA's "Deep Star Maps 2020" map, built from the real Gaia/Tycho star catalogs, onto the celestial sphere, and samples it with the already-bent ray direction. The trick is elegant: because the lensing is already inside the ray direction, the real Milky Way is smeared and curved around the shadow with no extra effort. It's the same idea by which a film puts real star plates behind the hole, only computed in real time, here and now.

The spin: they're fixed on Gargantua, I have a slider

Gargantua spins almost maximally, a/M0.999a/M \approx 0.999, and not for aesthetics: it serves the plot. Extreme spin pulls the innermost stable orbit (ISCO) almost to the horizon:

rISCO:6GMc2 (a=0)  GMc2 (aM)r_{\rm ISCO}:\quad 6\,\frac{GM}{c^{2}}\ (a=0)\ \longrightarrow\ \frac{GM}{c^{2}}\ (a\to M)

And it's this that lets Miller's planet orbit so close and survive, with the famous time dilation

ΔtfarΔτplanet6.1×104(7 years=1 hour)\frac{\Delta t_{\rm far}}{\Delta\tau_{\rm planet}} \approx 6.1\times 10^{4}\quad (7\ \text{years} = 1\ \text{hour})

In the film the spin is nailed to that value. With me it's a slider: move it and watch the ISCO, the shadow and the photon ring deform and flatten in real time. Same metric, but in your hands.

In one line

Same Kerr metric, same null geodesics. Them: offline, photorealistic, with artistic licences in service of the story. Me: real time, interactive, with the real physics laid bare and every approximation declared. The gap isn't in the physics: it's all in the five orders of magnitude between a render farm and a phone's 16 milliseconds. And maybe the best part is exactly this: the same general relativity that needed a render farm for a film now runs in the browser in your pocket.

Open the simulation → · The full equations → · "Is Interstellar's black hole real?" →