A tribute to Jean-Pierre Luminet, 1979
Luminet’s first portrait of a black hole
Based on Luminet's original equations from Astronomy & Astrophysics 75, 228 (1979)
First computed on an IBM 7040 in 1978, then pen drawn by hand, this page rebuilds Luminet's image from his equations (noted below), live in the browser.
developing the plate…
The story
One IBM 7040. One bottle of ink.
In 1978 nobody had seen a black hole and nobody expected to.
Jean-Pierre Luminet, a young astrophysicist at the Paris Observatory in Meudon, decided to compute the view instead. Using Einstein's general relativity equations, he found that light from a glowing disk of spiraling gas should bend around the hole, so the disk should appear folded over itself. Oddly, you'd see its top and its underside at once, with a ghost of the far side wrapped around the central shadow.
Luminet traced the light curves and brightness (called isofluxlines) on an IBM 7040, a transistor-era machine programmed with punch cards. There was no software to draw the result, so he took artistic license: Black India ink on white paper, dot by dot, denser where the disk shone brighter.
A photographic negative turned his ink into light. The blazing, lopsided ring he revealed is remarkably similar to the Event Horizon Telescope photographed around the M87 galaxy's black hole in 2019, forty years later. His paper had even named M87 as a likely place to look.
How to read the image
Gravity bending spacetime
The disk is flat, like Saturn's rings and viewed almost edge-on. Gravity warps everything else.
The arch over the top
That is the far side of the disk, behind the hole. Its light is bent over the shadow on the way to us, so it appears hoisted above the plane.
The bright left, the dim right
Gas orbits at nearly half the speed of light. Where it races toward us its light is beamed and blue-shifted. Where it recedes, dimmed (red-shifted). The asymmetry shows us the disk's rotation.
The thin proton ring hugging the shadow
Light from the disk's underside that loops around the hole before escaping. Luminet called it the ghost image.
The dark moat
No stable orbits exist within three Schwarzschild radii (3M), so the disk has an inner edge where its glow dies to zero. The gap between edge and shadow is emptiness.
Historical interlude
Even Einstein didn’t think this was possible
In November 1915, Einstein stood before the Prussian Academy of Sciences and presented what many consider the most beautiful theory in the history of physics. Almost in the same breath, he admitted he didn’t think anyone could actually do anything with it—himself included.
His equations are complex and non-linear. There is no easy way to just add things up. Gravity gravitates: the gravity field is its own source, bending back on itself in ways that make the math nearly impenetrable. Einstein had rewritten the rules of the universe, but solving those rules was another problem entirely.
Then, just weeks later, he received a letter from the Russian front.
Karl Schwarzschild was an artillery officer, shell-trajectory calculator, and apparently one of the most gifted mathematical minds of his generation. In just weeks, he had found an exact solution. The first one. Einstein wrote back that he hadn’t expected the problem could be solved so simply, and then personally presented Schwarzschild’s paper to the Academy in January 1916.
The solution itself was remarkable. Schwarzschild had done this while serving in one of the deadliest theaters of World War I, stricken with an autoimmune skin disease that would kill him four months after his paper was read. (His annotated equation leads the “Six key equations” below.)
Buried inside his solution was something neither man was prepared to believe. There was a radius—a point of no return—where the mathematics broke down entirely, an infinitely deep gravitational hole that not even light could escape. Neither Einstein nor Schwarzschild read it as a prediction. Schwarzschild called it a mathematical boundary, not a physical place. Einstein argued as late as 1939 that nature would never permit a monstrous entity like that to exist.
They had discovered the black hole fifty years before anyone had the word for it.
Today, everyone has seen one. At the time, two of the greatest scientific minds of their era looked at the math they discovered and told themselves it couldn’t possibly be real.
The geometry
The skeleton of the image
Before the illustration, Luminet calculated the geometry: rings of constant distance from the hole. Each solid curve is the direct image of one ring. Each dashed curve is its ghost, folded around the shadow. These recreate Figs. 5 and 6 of the paper.
The geometry (interactive)
Tilt the accreation disk
The paper shows only two viewpoints. Here is you can explore every viewpoint. From high above, the rings are almost circles; approach the plane and they fold into the shape of the photograph. Each position of the slider re-solves the light-bending equations for about 3,000 rays.
The math
Six key equations, annotated
Everything on this page is six equations derived from general relativity (in the paper's own notation). To visualize the back hole, they have to be solved a few hundred thousand times per visit.
The six equations, annotated From metric to pixel
Radius is in units of the hole's mass (M) where (G = c = 1) and u = 1/r. Color marks a quantity wherever it recurs: hover or tap a symbol to follow it. This is still a work-in-progress.
Eq. 1 · the stage
The stage. Schwarzschild found this solution for the empty space around any static mass within weeks of Einstein's field equations, at an artillery post on the Russian front, in the winter of 1915. With G = c = 1 the mass M is a length, and every distance on this page is measured in it.
- The warp. Clocks slow and radial rulers stretch by this factor; at r = 2 M it reaches zero, and that surface is the horizon.
in code: nowhere explicitly; everything below is its consequence, so it is everywhere
↓ light follows the straightest paths this geometry allows
Eq. 3 · the law
The shape of every light path around the hole, one cubic. Far away its first term vanishes and rays run straight; close in it wins and they loop.
- Einstein's entire contribution. Newtonian gravity has no such term; it is why light can orbit.
- The aim. b is how far off-center the ray crosses the plate, and its one conserved label.
in code: the cubic's roots u1, u2, u3 drive sweepMono, sweepPeri and sweepPlunge
↓ one number, b, labels every trajectory
Eq. 5 · the dictionary
Closest approach and aim fix each other. At P = 3 M this gives b = 3√3 M ≈ 5.2 M, the photon ring: aim any closer and the ray spirals in. Every dark curve on this page is that number.
- Periastron: the trajectory's closest approach to the hole.
in code: auxP()
↓ now tilt a disk into view and pick a point of glowing gas
Eqs. 9 and 10 · the demand
Geometry sets the task. Spherical trigonometry turns a point of the disk into its position angle on the plate (Eq. 9), and that angle into the total sweep the ray must make around the hole to reach the eye.
- The sweep demanded of the ray.
- Position angle on the plate, measured from its vertical.
- The tilt: 80° from the disk's axis here, so 10° above the plane.
in code: alphaFromPhi(), gammaFromAlpha()
↓ the sweep demanded must equal a sweep delivered
Eqs. 11 and 12 · the solve
The sweep a trial periastron delivers (this is the branch with a turning point; the direct and plunging branches have siblings). Q, m and the ζ angles are built from the cubic's roots. The browser bisects on P until delivered matches demanded: that root is the ray. Ghost images solve for 2π − γ instead (Eq. 12).
- Legendre elliptic integrals, the circular functions' relativistic cousins; evaluated here by one 25-line Carlson routine.
in code: sweepMono(), sweepPeri(), sweepPlunge(), bisected by solveSweep(); integrals via ellK(), ellF(), rf()
↓ the ray is known; light the pixel
Eqs. 15 and 19 · the lamp and the toll
The lamp is the Page and Thorne flux of the steady thin disk, zero at the inner edge r = 6 M and peaking at r = 9.55 M. (The 1979 scan's coefficient reads like √3/3; deriving the formula afresh gives √3/2, confirmed by the paper's own quoted maximum.) The toll then dims or boosts it by four powers of the combined gravitational and Doppler shift.
- Four powers of the shift: one for photon energy, one for arrival rate, two for solid angle.
- The same b that aimed the ray: beaming is bought with bending.
- sin α > 0 is the receding right of the plate, dimmed and reddened; the approaching left can go net blue.
- The orbiting gas's own clock, slowing toward r = 3 M where circular orbits reach light speed.
in code: fluxIntrinsic(), onePlusZ(); painted per cell as F0 = Fs / (1+z)^4
The laboratory
Three views of a secret world
Luminet's first made his ink drawing by hand. But it was the negative that made it look real. Play with both below, along with a smooth photographic exposure of the same data. Lower exposure values lift the faint outskirts of the disk into view.
Note: The paper's disk is opaque, so the looping light from its own far side (below) is almost entirely reabsorbed. So only a thin line survives, threading the gap inside the inner edge. Try the "Transparent disk" that lets the photons pass through. The result? The thin line blooms to reveal the complete mirror image beneath the shadow. This is the view Interstellar later made famous. Same equations, one light absorption rule turned off.
The data
Luminet's brightness contours mapped
Each curve joins points of equal observed brightness, in units of the disk's own maximum emission. See where values climb past 1.0 on the left, where beaming makes the disk outshine its own source, and every curve cut dead at the dashed inner edge, where the flux falls to zero.
waiting for the plate…
waiting for the plate…
A stellar mirage
Warping the starfield
(This is a work-in-progress) Luminet left the stars out. But the same equations can be used to show how starlight from behind the hole is warped, too. Every background star appears at least twice, once on either side of the shadow. A star sitting exactly behind the hole smears out into a complete circle, the Einstein (photon) ring, and rays that skim the photon sphere can loop once, twice, infinitely. So, it's image upon image of the entire sky piles onto the thin rim (at b = 3√3 M). Unlike the disk's light, starlight arrives unshifted: The energy a photon spends climbing out exactly repays what it gained falling in.
Sources and notes
Why did I do this?
Some things just draw you inescapably down the rabbit, uh, black hole. During the Covid pandemic I read Sean Carroll's,"The Biggest Ideas in the Universe: Space, Time, and Motion." It made some complex but beautiful ideas accessible with out dumbing them down. That led me to being investigating one of the greatest achievements of human thought and creativity: Einstein's General Relativity. Before I knew it, I was deep into energy-momentum tensors and Christoffel symbols. And while I had a good science and computer programming background, the power of Claude, Cursor, and other models helped me immensely in some complex coding. So, why did I do this? Because I couldn't help it and now the tools remove any excuses I might have had.
The paper: J.-P. Luminet, “Image of a spherical black hole with thin accretion disk,” Astronomy & Astrophysics 75, 228 (1979). His own account of the hand-plotting, forty years on: “An illustrated history of black hole imaging” (2019). Prior recreations that informed this one: bgmeulem's Python package and mjbo's Observable notebook. The observation the paper anticipated: the Event Horizon Telescope image of M87* (2019).
Fidelity. This page solves the paper's geodesic equations (Eqs. 3 to 13) with elliptic integrals and reproduces its published anchors: the photon ring at b = 3√3 M; the ray of Fig. 4 from r = 9.8 M arriving at b = 1.70 M; the disk flux peaking at r = 9.55 M with the paper's stated maximum. Two scholarly footnotes. First, the flux formula as scanned is easy to misread: deriving Eq. 15 from Page & Thorne gives a √3/2 coefficient on the logarithm, which reproduces the paper's own numbers. Second, the paper quotes 2.62 for the brightest point of Fig. 10; that is the value on the ring of maximum intrinsic flux, where his method evaluated it. The exact field peaks at 2.81 slightly inside it. This page reproduces both.
Scale. One load of this page solves about 370,000 light trajectories: 132,000 rays for the plate, 78,000 more along the looping paths of the transparent disk, 145,600 for the two flux maps, and the rest in the curve figures, the anatomy overlays and the starlight deflection table. Each ray is a root-find whose every probe evaluates elliptic integrals: tens of millions of evaluations in the seconds after the page opens. The tilt slider re-solves its 2,888 points on every nudge. Luminet, rationing time on an IBM 7040 that ran in the tens of kFLOPS, could afford a few thousand points along isoradial curves and interpolated the brightness between them by hand. The physics costs exactly what it cost in 1978; what collapsed is the price of asking twice.
One image file lives on this page: the 1979 scan of Fig. 2. Every other figure is computed from the equations when the page loads: curve figures with Observable Plot, the plates on a canvas. The plotter stipple follows Mike Bostock's weighted Voronoi stippling of Secord's algorithm. The ghost ring follows Luminet's own estimate: the visible secondary image reduced to a thin line near b = 5.25 M.