Black Hole

General relativity · real-time ray tracing

Drag to orbit · scroll or pinch to zoom

The physics

Every pixel traces a light ray backwards through the curved spacetime of a Schwarzschild black hole. No textures, no tricks: the lensing, the photon ring and the disk's asymmetry all emerge from the equations below.

Light bending

Null geodesics in the equatorial plane of the ray obey Binet's equation, with u = 1/r in units of the Schwarzschild radius rs = 2GM/c2:

d²u/dφ² = 3M u² - u

It is integrated per pixel with a fourth-order Runge-Kutta scheme, starting from the exact impact parameter b = r sin ψ / √(1 - r_s/r). Rays that spiral below the photon sphere at 1.5 rs are captured; the black disk you see is the shadow, with apparent radius √27/2 rs.

Rotation

The spin slider turns this into a Kerr black hole. Rotation breaks spherical symmetry, so rays are instead integrated in horizon-penetrating Kerr-Schild coordinates via Hamilton's equations:

H = ½ g^μν p_μ p_ν, g^μν = η^μν - f k^μ k^ν, f = 2Mr³/(r⁴ + a²z²)

Frame dragging pulls prograde light closer to the hole: the shadow shifts sideways and grows D-shaped, and the photon orbits split (at a/M = 0.9: 1.42 rs prograde vs 3.42 rs retrograde). The disk's inner edge follows the Kerr ISCO, plunging from 3 rs down to 0.62 rs at a/M = 0.998, with the exact circular-orbit kinematics Ω = ±√M/(r3/2 ± a√M).

The accretion disk

A geometrically thin, optically thick disk extends inward to the innermost stable circular orbit, 3 rs for zero spin. Its temperature follows the Shakura-Sunyaev profile:

T(r) ∝ [ (1 - √(r_in/r)) / r³ ]^¼

Each patch orbits at the relativistic Kepler rate Ω = √(M/r³). The observed frequency shift combines gravitational redshift and Doppler effect:

g = √(1 - 3M/r) / [ √(1 - r_s/r₀) (1 - Ω L_z/E) ]

Observed brightness scales as g⁴, which is why the side of the disk rotating toward you glows brighter and bluer: relativistic beaming. Colors come from Planck's blackbody law evaluated at the Doppler-shifted temperature.

What you are seeing

Two extra render modes visualize the physics directly: the redshift map paints the disk by the frequency-shift factor g (blue = boosted toward you, red = redshifted), and the deflection map colors the sky by how far each light ray was bent on its way to your eye.

How big is it?

The geometry is scale-free: the same image describes any mass, with rs = 2.95 km × (M/M):

ObjectMassr_s
Stellar black hole10 M☉≈ 30 km
Sagittarius A*4.15×10⁶ M☉≈ 0.08 AU
M87*6.5×10⁹ M☉≈ 128 AU

Controls

Drag to orbit, scroll or pinch to zoom. Arrow keys orbit, +/- zooms. The camera pose and spin live in the URL (?az=&pol=&dist=&spin=), so any viewpoint can be shared as a link.

Built with Three.js and WebGL2 · MIT licensed