Carlos Toledo · instruments · the black hole in M87

M87*: a black hole where every line says what it rests on

The shadow’s edge decided, the image computed, the disk assumed, on M87*’s own clock

M87*, the black hole the Event Horizon Telescope imaged, drawn so that each element carries its standing. The edge of its shadow is decided in interval arithmetic and drawn solid. The image is computed, ray by ray, through the Kerr metric and drawn as computed. The glowing disk is an assumed thin disk, and it turns at its Keplerian rate on M87*’s own clock, sped up and shown. Nothing here models the plasma, and the page says where the assumptions begin.

M87*’s view, 17° (assumed, from the jet)
t 0 tg · M87* day [0.0, 0.0]
The shadow’s edge, Bardeen’s critical curve, is the one solid line: Phase 0 encloses it in interval arithmetic and the line is drawn at least as wide as the boxes that cover it (0.02 M across at most), so the true curve lies inside it. The image under it is computed: each pixel is a light ray traced backward through the Kerr metric in double precision (the lensing maps, which agree with the decided curve on every pre-registered check) and shaded in your tab as an assumed thin disk, Σ g³J; its frame is dashed for that standing. The jet is a dotted sketch, chosen to be legible: no jet image is drawn. Every image of the disk shows it at one moment; the light-travel delay between them is not applied. Records: certs/bh-shadow.json · sha256 8019e1ed10db; certs/bh-maps-check.json · sha256 eb4fddd7572b; corpus/bh-maps/manifest.json · sha256 bd7f6cf3367f; playground/black-hole/out/scene.json · sha256 7416887baeb3The build refuses this figure if the scene record does not re-derive from Phase 0’s decider, if a map does not agree with the decided curve or is not its pinned file, or if the solid line is drawn thinner than the boxes it covers.
decided
exact arithmetic backs it
computed
float, or a number someone printed; nothing decided it
chosen
one member of a set the data admits
spin a, chosen: the data do not constrain it
the view

17° is M87*’s view, taken from its jet; leaving it draws a picture of the model.

layers
θg = GM/c²D, µas
[3.400000, 4.200000]
the shadow, d̄ over every spin at 17°, µas
[32.8810, 43.6497]
the ring the EHT measures
43.9 ± 0.6 µas, persistent 2017–2021
ring ÷ shadow, compared
[0.9919, 1.3534]

This row’s θg was fitted to the 2017 ring with the GRMHD calibration, so the ratio returns that calibration: printed, never a test.

the clock
one second here
4 tg = … h of M87* (tg = [7.6618, 10.1247] h, EHT 2019 (the ring, GRMHD-calibrated))
the inner edge goes round in
[23.993115, 23.993116] tg = [7.6596, 10.1218] days, … s here (a = 47/50 = 0.94 (the chosen default))
drawn by …. The map files are checked against their pinned sha256 as they load.

What each line rests on

elementdrawn asstandingwhat it rests on
the shadow’s edge (the critical curve)the solid linedecidedPhase 0: interval enclosure by two deciders that share no code; drawn as a cover of boxes, the line wider than any of them
the image of the disk and its photon ringsthe grey field, its frame dashedcomputedrays traced in double precision through the Kerr metric (the lensing maps), graded against the decided curve; shaded in float32 in your tab
the disk, its brightness and its motionthe pattern in the grey fieldassumeda thin disk on Keplerian orbits; the pattern turns at Ω(r) = 1/(r3/2 + a) per tg, born and faded every 40 tg
the spinthe pressed buttonchosenfour precomputed values; the decided band over every spin is in the table below
the view17° (or 45°, 80° as a model)assumedM87*’s inclination from its jet; the other two are pictures of the model
the jetthe dotted funnelchosenan assumed sketch; no jet image is drawn
the clockt in tg and M87* daysdecided × chosentg per mass row and the ISCO periods are Phase 0’s; four tg a second is chosen; the elapsed time is measured by your browser

The chain the image travelled through, in order, each premise with the grade its checking reached:

  1. assumed
    The Kerr metric general relativity, an uncharged black hole in vacuum, no plasma lensing: adopted, not checked here
  2. assumed
    The inclination, 17° from the jet’s motions (Mertens et al. 2016, 17.2° ± 3.3°); the EHT’s 163° is the same curve mirrored
  3. assumed
    The spin, swept over four values the data constrain nothing; 0.94 is the chosen default
  4. verified
    The ray tracer (instruments/kerr/rays.js) its crossings against Gralla & Lupsasca’s closed form and its shadow against Phase 0’s decided curve: AGREES on every check, at every map (certs/bh-maps-check.json)
  5. assumed
    The thin disk and its emission equatorial, prograde Keplerian, cut at the ISCO, optically thin, J ∝ r⁻², I = Σ g³J; the brightness pattern that turns with it is chosen to be legible
  6. compared
    The ring-to-shadow factor (the mass-row comparison only) calibrated on GRMHD in the EHT’s Paper VI; a thin disk’s lensing ring sits about 5 % outside the curve (Gralla, Holz & Wald 2019)

The image is as checked as its weakest premise: assumed, the thin disk. The shadow’s edge rests only on the Kerr metric, the spin and the view.

The shadow against the ring, per mass row

The size of the shadow on the sky is the curve’s mean diameter d̄ in M times θg = GM/c²D, and θg for a dynamical mass does not depend on the distance assumed (the mass scales with it). The EHT measures a ring of 43.9 ± 0.6 µas, persistent 2017–2021. The ring is not the shadow’s edge: the factor between them is calibrated on simulations, so the last column is the factor each row would need, compared, never a verdict on the black hole, on general relativity, or on which mass is right.

mass rowθg, µasshadow over every spin, 17°, µasover 13.9–20.5°ring ÷ shadow
EHT 2019 (the ring, GRMHD-calibrated)
EHT Collaboration 2019, First M87 EHT Results VI, ApJL 875, L6 (arXiv:1906.11243)
[3.400000, 4.200000][32.8810, 43.6497][32.8359, 43.7001][0.9919, 1.3534]
stars (Gebhardt+11)
Gebhardt et al. 2011, ApJ 729, 119 (arXiv:1101.1954), Gemini/NIFS stellar dynamics
[3.418876, 3.860023][33.0636, 40.1164][33.0182, 40.1627][1.0793, 1.3459]
stars (Liepold+23)
Liepold, Ma & Walsh 2023, ApJL 945, L35 (arXiv:2302.07884), Keck IFS, triaxial orbit models
[3.008191, 3.372465][29.0919, 35.0493][29.0519, 35.0898][1.2354, 1.5297]
gas (Walsh+13)
Walsh et al. 2013, ApJ 770, 86 (arXiv:1304.7273), HST/STIS gas dynamics
[1.544008, 2.426300][14.9319, 25.2160][14.9114, 25.2452][1.7171, 2.9802]

The EHT row’s θg was fitted to the 2017 ring with that calibration, so its ratio returns the calibration. The last column of the gas-dynamical row (Walsh et al. 2013) starts above every other row’s; the stellar rows and the EHT’s own overlap. Every interval is printed outward from certs/bh-shadow.json.

The clock

The disk turns as a disk of matter on circular orbits would: at radius r its pattern goes round once every 2π(r3/2 + a) tg, where tg = GM/c³ is the black hole’s own unit of time. Here one second of the screen is four tg, and the clock on the image counts tg from the moment the page opened and prints them as days of M87*, an interval because the mass is one. The inner edge turns fastest, the outer disk slowest, so the pattern shears and never returns: the picture does not loop, and nothing resets it. Its features are born and fade every 40 tg (assumed), so the shear never winds the disk into stripes. The periods at the inner edge, the ISCO of Bardeen, Press & Teukolsky, decided in Phase 0:

spinrisco, Mperiod, tgdays, EHT 2019 (the ring, GRMHD-calibrated)days, stars (Gebhardt+11)days, stars (Liepold+23)days, gas (Walsh+13)
a = 0[5.999999, 6.000001][92.343584, 92.343588][29.4802, 38.9560][32.6388, 36.8503][26.9533, 30.2173][14.7401, 23.1631]
a = 1/2[4.233002, 4.233003][57.862420, 57.862421][18.4722, 24.4098][20.4514, 23.0904][16.8889, 18.9341][9.2361, 14.5140]
a = 47/50 = 0.94 (the chosen default)[2.023593, 2.023594][23.993115, 23.993116][7.6596, 10.1218][8.4803, 9.5746][7.0031, 7.8512][3.8298, 6.0184]
a = 499/500 = 0.998[1.236970, 1.236971][14.914702, 14.914703][4.7614, 6.2920][5.2715, 5.9519][4.3533, 4.8805][2.3807, 3.7412]

These are coordinate times at infinity in the hole’s rest frame; an observer on Earth sees them stretched by M87’s redshift, not applied here.

What this does not show

Sources

The decided layer, its pre-registration and every deviation: notes/black-hole-phase0-preregistration-2026-10-31.md (Phases 0, 1 and 2), certs/bh-shadow.json and certs/bh-maps-check.json, re-derived by tools/run-bh-shadow.js --check and tools/run-bh-maps.js --check in the test suite.

contact

Write to Carlos

Sent by Web3Forms to Carlos’s inbox; nothing stored here.

Or write to carlos@carlostoledo.co, or open the public pilot form on GitHub.