The Lattice We Build ── bonusBonus ④ / And still the speed of light is constant

The episode that walks head-on into the trap Bonus ② set

And still the speed of light is constant Bonus ② read "\(ct=\) constant" three ways and ended like this ──
one function (conformally flat) cannot write a star. The wall's name is the Weyl tensor.
And it pressed the point ── "that the refractive-index picture produces light bending is trivial and carries zero information. What distinguishes them is everything other than light (clocks, matter orbits, tidal forces)."
This time we go through all of that. And it went through, just by going from one function to two.
And past it we hit a wall of exactly the same shape as ②'s ── this time named conformal flatness. But every one of these walls is a "wall of description," not a wall of the world ── I rewrote that part three times (§11).

Tools needed: two scalar functions and the canonical equations The core of this episode: what varies is the coordinate speed of light. The physical speed of light does not move

Bonus ②'s conclusion was correct and still stands. Read as "\(c\) varies," it dies ── \(c\) carries dimensions, so its having changed has no observer-independent meaning. And conformally flat (\(ds^2=\Omega^2\eta_{\mu\nu}dx^\mu dx^\nu\), one scalar) cannot write a star ── because the Weyl tensor does not vanish.
But ② also wrote this: "what distinguishes them is everything other than light."
That is an instruction to go and try it. This episode does ── but with two scalars.

◆ ◆ ◆

01All I changed was the number of functions

Bonus ② (conformally flat)this episode
form\(ds^2=\Omega^2(x)\,\eta_{\mu\nu}dx^\mu dx^\nu\)\(ds^2=-A^2dt^2+B^4\,\delta_{ij}dx^idx^j\)
number of scalars12
what is flatspacetimespace only
can a star be written?× (Weyl \(\ne0\))○ exactly

These two are different things. \(-A^2dt^2+B^4\delta_{ij}dx^idx^j\) is conformally flat only when \(A/B^2\) is constant. So it sidesteps ②'s wall ── it does not make the Weyl tensor vanish. Without making it vanish, it flattens space alone.

And the Schwarzschild solution can be written exactly in this form (isotropic coordinates). With \(u=m/2\rho\),

THIS IS THE WHOLE INPUT $$A^2=\left(\frac{1-u}{1+u}\right)^2,\qquad B^4=(1+u)^4,\qquad u=\frac{m}{2\rho},\quad m=\frac{GM}{c^2}$$

The speed of light on the lattice is \(c(\rho)=A/B^2=\dfrac{1-u}{(1+u)^3}\) ── a function of position.

WHY THIS DOES NOT COLLIDE WITH ②'S READING ① ② wrote that "read as '\(c\) varies' it dies." That is still correct.
The \(c(\rho)\) above is the speed of light measured in the coordinates, a quantity that depends on the choice of coordinates. The locally measured speed of light is \(c\) everywhere ── so no physical constant is changing. What is changing is how the rulers and clocks are graduated.
This distinction matters all the way to the end. It is the title.
◆ ◆ ◆

02The tools ── not one Christoffel symbol appears

Setting \(F\equiv1/A^2\) and \(G\equiv1/B^4\), the super-Hamiltonian fits in two lines.

THIS IS ALL OF IT $$H=\tfrac12\left(-E^2F(\rho)+|p|^2G(\rho)\right)=-\tfrac12\mu^2\qquad(\mu=1\ \text{matter},\ \mu=0\ \text{light})$$ $$\frac{dx^i}{d\lambda}=p_iG,\qquad \frac{dp_i}{d\lambda}=-\tfrac12\left(-E^2F'+|p|^2G'\right)\frac{x^i}{\rho},\qquad \frac{dt}{d\lambda}=EF$$

At any one point we need only four numbers (\(F,G,F',G'\)). The \(\Gamma^\mu_{\nu\lambda}\) of a static spherically symmetric metric has more than twenty non-vanishing components in Cartesian coordinates, and we build not one of them. No geodesic equation, no curvature tensor.

HONESTLY What is making this light is not "because the lattice is flat" but "because it is the canonical formalism." The canonical formalism is a standard tool independent of any interpretation of the speed of light, and numerical codes that ray-trace around black holes now use it routinely. That the textbook route (Christoffel → geodesic equation → numerically solving it in second-order form) is heavy is a problem of pedagogy.
Even so, this episode's point stands ── can two scalars and the canonical equations produce everything ② said "distinguishes them"? That is the question.
◆ ◆ ◆

03Walking into ②'s trap ── everything other than light

②'s point was this ── null geodesics being conformally invariant, any picture that tinkers with the conformal factor is bound to hit light. A hit from something bound to hit carries zero information. What distinguishes them is clocks, matter orbits and tidal forces.

observable②'s classflat latticereferenceratio
light bending (solar limb)light1.751201 ″VLBI 1.75119 ″1.000006
Mercury's perihelion advancematter orbit42.9806 ″/centuryGR 42.9805781.000000
gravitational redshiftclock\(2.458454\times10^{-15}\)\(gh/c^2\)0.999996
the GPS clockclock + speed38.610 μs/dayliterature +38.61.0003
Shapiro delay (round trip)light247.295 μsViking ≈ 2501.000223

All three of the things ② said "distinguish them" went through. And the perihelion agrees to \(10^{-6}\), the redshift to \(4\times10^{-6}\).

GPS produces the gravitational \(+45.65\) and the velocity \(-7.11\) simultaneously from the same single formula ── \(d\tau/dt=\sqrt{(1-v^2F/G)/F}\). The residual \(3\times10^{-4}\) is not numerical error but the choice of ground reference surface, swinging between 38.543 (equatorial radius), 38.610 (mean radius) and 38.744 (polar radius); the literature value uses the geoid and \(J_2\).

HOLE I FELL INTO ①: CANCELLATION The redshift first came out at 0.9935 times \(gh/c^2\). A 0.65% discrepancy, so I thought it was physics. It was not.
The answer is of order \(2.4\times10^{-15}\), and I was building it as a "subtraction of numbers close to 1," \(d\tau/dt|_2 / d\tau/dt|_1 - 1\). That leaves only 11 times double precision's \(\varepsilon=2.2\times10^{-16}\). Rewritten in closed form $$\frac{A(\rho_2)}{A(\rho_1)}-1=\frac{2(u_1-u_2)}{(1+u_2)(1-u_1)},\qquad u_1-u_2=\frac{m}{2}\frac{\rho_2-\rho_1}{\rho_1\rho_2}$$ it became 0.999996. The same hole I fell into in main-series Episode 17, fallen into again inside my own tool.
HOLE I FELL INTO ②: STEP SIZE, AND THE LOCATION OF PERIHELION Mercury did not precess at all at first. Since \(\lambda\) is proper time, writing \(h=\eta\rho\) makes 200 million steps per orbit ── fixed by dividing by the spatial stride \(|p|G\).
Then it gave 65762 ″/century. I was picking perihelion as "the point of minimum \(\rho\) within one step," so the step angle (~6″) completely buried the signal (0.10″/orbit). Interpolating at the zero crossing of \(\vec x\cdot\vec p=0\) gave 42.9806. Exactly the lesson of main-series Episode 19 (there are bugs an invariant cannot catch).
◆ ◆ ◆

04The tidal side too ── into the strong field

The last of ②'s three is tidal forces. That is thin in a weak field, so let us take it into the strong field.

\(c(\rho)=(1-u)/(1+u)^3\) goes to zero at \(\rho\to m/2\) (\(u\to1\)). In isotropic coordinates that is the horizon. No coordinate singularity and no infinite curvature appear ── in the language of a flat lattice, the horizon is nothing but "the surface where light stops."

THE SIZE OF THE SHADOW COMES OUT IN ONE LINE

Split the null \(H=0\) into \(|p|^2=p_\rho^2+L^2/\rho^2\) and the turning condition becomes \(\rho/c(\rho)=b\). \(V(\rho)\equiv\rho/c(\rho)\) is \(\infty\) at \(\rho\to\infty\) and also \(\infty\) at \(\rho\to m/2\) (since \(c\to0\)) ── so it has a minimum.

$$b_{\rm crit}=\min_\rho\ \frac{\rho}{c(\rho)}$$

The size of a black hole's shadow is the minimum of "radius ÷ the speed of light there." Curvature is never used (meaning we did not need to, not that we could not ── the curvature comes out of the same \(A,B\). See the correction box in §11).

flat lattice (numerical)analytic / observed
location of the minimum1.866025382 \(m\)\(1+\sqrt3/2=1.866025404\)
\(b_{\rm crit}\)5.196152423 \(m\)\(\sqrt{27}=5.196152423\) 12 digits
M87*'s shadow diameter39.69 μasEHT 42.0 ± 3.0 0.8σ
Sgr A*'s shadow diameter53.25 μasEHT 51.8 ± 2.3 0.6σ

And since the deflection angle diverges logarithmically as \(b\to b_{\rm crit}\), photon rings line up at \(\Delta\phi=\pi,3\pi,5\pi,\dots\)

orbit number\(b/b_{\rm crit}-1\)ratio to previous
1\(3.09\times10^{-2}\)
2\(5.41\times10^{-5}\)572×
3\(1.01\times10^{-7}\)535.6×
4\(1.89\times10^{-10}\)535.5× (\(e^{2\pi}=535.4917\))

\(e^{2\pi}\) came out. We never taught it. All we put in was \(\rho/c(\rho)\).

AN INDEPENDENT CHECK CAUGHT ONE BUG I obtained the weak-field deflection angle two ways: a 2d RK4 ray trace (1.751201″) and a 1d integral about the turning point (1.751203″). The latter first gave −22.6″, the cause being that I wrote 0/0 as 0 at Simpson's endpoint (the turning point) ── the evidence was that the error fell as \(1/N\) rather than \(1/N^4\). The invariant's drift stayed at \(10^{-15}\) and told me nothing.
◆ ◆ ◆

05So how much freedom is left in this lattice?

So far we have put only "the same one set as Schwarzschild" into \(F,G\). Let us attach knobs, turn them, and trim with observables.

TWO KNOBS $$A^2=1-2U+2\beta U^2,\qquad B^4=1+2\gamma U,\qquad U=\frac{m}{\rho}$$

\(\beta=\gamma=1\) is GR. In the language of the lattice, \(\gamma\) is the stretch of the ruler and \(\beta\) is the second-order non-linearity of the clock.

observable∂ln/∂γ (numerical)analytic∂ln/∂β (numerical)analytic
light bending0.5000004771/2\(-1.2\times10^{-6}\)0
perihelion advance0.6666663392/3−0.333333867−1/3

The tool produced the PPN coefficients by itself. We never taught them. The point is that the directions are not orthogonal ── light bending sees only \(\gamma\), while the perihelion sees \(2\gamma-\beta\). So with both in hand they can be separated.

Cassini's radio link gives \(\gamma-1=(2.1\pm2.3)\times10^{-5}\). Translated into \(c(\rho)\):

\(\rho\)\(c/c_\infty-1\) (GR)how much the \(\gamma\) tolerance moves it
solar limb\(-4.245\times10^{-6}\)\(4.88\times10^{-11}\) = \(1.1\times10^{-5}\) of it
1 AU\(-1.974\times10^{-8}\)\(2.27\times10^{-13}\) = the same ratio
THE MOST PRACTICAL CONCLUSION OF THIS EPISODE

A flat lattice is "permitted," not "free to write as you like."

The form of \(c(\rho)\) is pinned down to five digits. If "explaining gravity with a varying speed of light" sounds like freedom, that is because the degrees of freedom have not been counted.

◆ ◆ ◆

06Space does not twist. So flow the lattice

The strongest objection is this ── "in a flat lattice space does not twist, so frame dragging will not come out."

The answer was do not twist it. put in a flow. Add one function.

THE THIRD FUNCTION = THE FLOW $$ds^2=-A^2dt^2+B^4\left|d\vec x-\vec V\,dt\right|^2,\qquad \vec V=\Omega(\rho)\left(\hat z\times\vec x\right),\quad \Omega=\frac{2\mathcal J}{\rho^3(1+u)^6},\quad \mathcal J\equiv\frac{GJ}{c^3}$$

Compute it and the form of the Hamiltonian does not change at all:

$$H=\tfrac12\left(-FW^2+G|p|^2\right),\qquad W\equiv E-\vec V\cdot\vec p$$

Only \(E\) becomes \(W\) ── the wind merely Doppler-shifts the energy. And

$$\frac{dx^i}{d\lambda}=\underbrace{Gp_i}_{\text{travel through the lattice}}+\underbrace{FV^iW}_{\text{carried by the wind}}$$

That first line is literally the picture of a river. The Sun's wind speed at its surface is \(1.97\times10^{-12}c\).

CORRECTION (POST-PUBLICATION, FROM A READER) ── the shape of the vortex The first draft wrote \(\Omega=2\mathcal J/\rho^3\). That is the weak-field form and is not a solution of the Einstein equations.
How it was found is the point ── the first draft said "curvature is not used," but that meant we did not use it, not that it does not come out. \(A,B,\vec V\) are the metric itself, so differentiating them yields Riemann, Ricci, Weyl, even Pontryagin. When I did, with the wind on (\(\mathcal J\ne0\)) \(R_{\mu\nu}\) survived at first order in \(\mathcal J\).
The correct form matches Lense–Thirring's \(g_{t\phi}=-2\mathcal J\sin^2\theta/r\) using the areal radius \(r=\rho(1+u)^2\), giving $$\Omega=\frac{2\mathcal J}{\rho^3(1+u)^6}$$ With this, \(R_{\mu\nu}\) drops to \(O(\mathcal J^2)\) (down to the numerical floor \(2\times10^{-8}\)).
This error cannot in principle be found by computing observables. The Hamiltonian invariant \(H=-\frac12\mu^2\) is conserved regardless of whether the given metric satisfies the equations ── it only watches whether the geodesic is being integrated correctly. A check on the reading side of the sheet does not tell you whether the sheet is filled in correctly (the table in §10 is exactly that boundary).
The numbers in this episode do not change. The correction is \((1+u)^{-6}\approx1-6u\), i.e. \(6.4\times10^{-6}\) at the solar limb and \(1.1\times10^{-9}\) for LAGEOS ── smaller than the quoted precision (1.000027, 1.000002), so the coefficient 8 and the 30.593 mas/yr stand as they are. Only the wording of the formula changes.
And this correction solved §11's homework. We write that below.
observableflat latticereferenceratio
difference in light bending, prograde/retrogradecoefficient 8\(8\mathcal J/b^2\)1.000027
LAGEOS node precession30.593 mas/yranalytic / literature ≈311.000002

The difference is exactly proportional to \(\mathcal J\) (the ratio does not move over \(10^5\)–\(10^8\) times). Extrapolated to the real Sun, 1.62 μas (0.81 μas one-sided).

I GOT THE CONTROL EXPERIMENT WRONG ONCE At first I used inclination 0° (an equatorial orbit) as the control. Unusable ── an equatorial orbit has \(L_x=L_y=0\) so the ascending node is not even defined, and I was measuring the noise of atan2(0,0) as "\(5\times10^6\) times the signal."
Switching the control to turning the wind off (\(\mathcal J=0\)), the drift fell to \(6.5\times10^{-12}\) of the signal. Confirmed: what rotates the orbital plane is the wind.
◆ ◆ ◆

07Where is the inside of the horizon?

Past \(c\to0\) is not "the inside." The lattice turns back there.

The areal radius is \(r(\rho)=\rho+m+\dfrac{m^2}{4\rho}\). \(dr/d\rho=1-\dfrac{m^2}{4\rho^2}\) vanishes at \(\rho=m/2\) ── \(r\) takes its minimum \(2m\) there, and \(r\to\infty\) again as \(\rho\to0\). What is more, the inversion \(\rho\to m^2/4\rho\) is an exact isometry (confirmed numerically to zero difference).

THAT IS TO SAY

A static flat lattice covers two exteriors glued together, and never covers the interior at all.

\(\rho

And that bridge opens and closes. Solving \(T^2-X^2=(1-r/2m)e^{r/2m}\) in Kruskal coordinates gives throat radius \(2m\) at \(T=0\) and 0 at \(|T|=1\). A causal curve attempting to cross reaches the singularity before getting across.

The reason it cannot be covered is not a matter of coordinate convenience ── it is that no observer can be at rest inside. A "lattice" is a picture premised on "being at rest," so a static picture necessarily ends there.

If flowing is allowed, it can be written. And more beautifully than the static version.

PAINLEVÉ–GULLSTRAND ── space is exactly Euclidean $$ds^2=-dt^2+\left(dr+v(r)dt\right)^2+r^2d\Omega^2,\qquad v(r)=\sqrt{\frac{2m}{r}}$$

Not even a conformal factor. The lapse is 1. That is, \(c\) is exactly constant and what moves is the lattice itself.
And \(v(r)=\sqrt{2m/r}\) is Newton's escape velocity. Radial light obeys

$$\frac{dr}{dt}=\pm1-v(r)$$

The horizon is not "the surface where light stops" but "the surface where the river reaches the speed of light." Inside, "the river is superluminal." Not one quantity ever goes negative.

flat latticeflowregion covered
at rest (isotropic coords)noneI + III (two exteriors)
flowing inward (PG)\(v=+\sqrt{2m/r}\)I + II (exterior + interior)
flowing outward (time-reversed)\(v=-\sqrt{2m/r}\)I + IV (a white hole)

In all of them space is flat. Only the direction of the flow differs. And there is no single flat lattice covering all four regions ── this is where "language independent of coordinates" genuinely becomes necessary.

However ── a real black hole has neither III nor IV. Those are products of the assumption "it has existed forever and its surroundings are perfectly vacuum"; in a hole formed by a collapsing star, the region corresponding to \(\rhothe interior of the collapsing star. The flat lattice a real hole needs is just the one flowing inward.

Inside, \(r\) becomes not "a place" but "a time." The proper time from horizon to singularity, by numerical integration, is \(\tau_{\text{from}\ \infty}=1.333333332\,m\) (\(=4/3\)), with a maximum of \(3.141592654\,m\) (\(=\pi\)). For a solar mass that is 6.567 μs; for M87*, 711.5 minutes.

Figure: two flat lattices, and the same shadow

The horizontal axis is radius in units of \(m\). The buttons switch between three views ── ① the static lattice (\(c\) varies with place and vanishes at the throat) ② the flowing lattice (\(c\) is exactly constant and the river exceeds the speed of light) ③ the minimum of \(V=\rho/c\), which fixes the shadow

◆ ◆ ◆

08This turned out to be a spreadsheet

Summed up in one line, all of the above is: a workbook with several sheets, each a lattice of flat cells, where you decide the width of each row step and how the cells slide sideways. Not a metaphor ── it is literally the formalism: ADM's 3+1 decomposition.

ADM $$ds^2=-N^2dt^2+\gamma_{ij}\left(dx^i+\beta^idt\right)\left(dx^j+\beta^jdt\right)$$
spreadsheetrelativitywhat appeared in this episode
one sheet = a lattice of flat cellsthe spatial slice \(\gamma_{ij}\)\(B^4\delta_{ij}\) in isotropic coords; exactly \(\delta_{ij}\) in PG
the time width of one row stepthe lapse \(N\)\(N=A\) in isotropic coords, \(N=1\) in PG
how far cells slide sidewaysthe shift \(\beta^i\)the river's speed \(\sqrt{2m/r}\), the vortex \(2\mathcal J/\rho^3\)
several sheets in a workbookseveral chartsI+III (static) / I+II (inward) / I+IV (outward)
referencing with =Sheet2!A1coordinate transformations and overlapsthe inversion \(\rho\to m^2/4\rho\)
the same value read from any sheetobservables do not depend on coordinates\(b_{\rm crit}=5.1961524227\) agrees to 10 digits on two lattices
◆ ◆ ◆

09Numerical relativity already does this

Bonus ② had one line at the end ── "since the lattice does not warp it can be solved by finite differences ── which is exactly what numerical relativity does." Let us make that concrete.

Solving the null condition \(0=-\alpha^2dt^2+\gamma_{ij}(dx^i+\beta^idt)(dx^j+\beta^jdt)\) gives

THE COORDINATE SPEED OF LIGHT $$\frac{dx^i}{dt}=-\beta^i\pm\alpha\,n^i$$

"A speed of light \(\alpha\) that differs with place" + "a wind \(\beta^i\)" ── the same form as what we built in this episode. And \(\alpha,\beta^i\) are not fixed by the equations but are quantities we choose.

numerical-relativity practicecontent
the time stepthe CFL condition is \(\Delta t\lesssim\Delta x/(\alpha+|\beta|)\) ── the speed at which information crosses the lattice is not \(c\) but \(\alpha+|\beta|\). Every code chooses its step each timestep from "the coordinate speed of light here and now"
singularity avoidancethe Bona–Massó family \(\partial_t\alpha=-\alpha^2f(\alpha)K\), with the most-used 1+log being \(f=2/\alpha\). As a hole starts forming, \(K\) diverges and \(\alpha\) collapses to 0 (collapsed lapse) ── dropping the coordinate speed of light to zero freezes the evolution and keeps the code from crashing
keeping the coordinates from being sucked ingamma-driver / puncture gauge actively blows \(\beta^i\) (co-rotating for a binary)
a bonus pathologygauge modes propagate at \(\alpha\sqrt f\). For 1+log that is \(\sqrt{2\alpha}\), whose ratio to the coordinate speed of light \(\alpha\) is \(\sqrt{2/\alpha}\) ── greater than 1 whenever \(\alpha<2\). And they can form shocks, which even have a name: gauge shock

The most blatant evidence that the coordinate speed of light is not remotely sacred in this field is that last row.

A gauge shock is "a bug inside perfect physics"

The character of this is clear ── a gauge shock is not a bug in the world but a bug in how the world is written. Spacetime is intact, the observables are intact, and yet the computation alone breaks.

So the fix is not physics either. You just re-choose the functional form of \(f(\alpha)\) (forms like \(f=1+\kappa/\alpha^2\) are used). Squash the bug in the description without touching the physics.

This passage went in on a reader's suggestion. That a choice of coordinates can create a bug is the single point that surprised readers most in this episode.

◆ ◆ ◆

10And still the speed of light is constant

WHAT THE TITLE MEANS

Everything above was computed in a picture where the coordinate speed of light varies with place. At the horizon it even reached zero.

And still the physical speed of light never changed once. What changed was how rulers and clocks are graduated ── a gauge quantity. Bonus ②'s reading ① ("read as '\(c\) varies' it dies") stands unchanged.

The evidence came out numerically ── a lattice where \(c\) varies with place and a lattice where \(c\) is exactly constant give the same shadow (\(b_{\rm crit}=5.1961524227\,m\)) to ten digits. Which means a quantity that depends on the choice is not an observable.

And to the question "so are you just computing the same thing the hard way?", the accurate answer is half yes.

the light sidethe side that does not get lighter
what you doread the sheet (produce observables)fill in the sheet (determine the fields)
what you need\(F,G\) (and the wind) + the canonical equationsthe Einstein equations
in this episodedid all of itnever did any of it ── \(F,G\) were put in by hand
exampleslight, clocks, orbits, tides, shadows, draggingthe two-body problem, gravitational waves, stellar interiors

That is why binary pulsars were left out of this episode. With two masses the background field itself becomes unknown ── and there a flat lattice does not get lighter.

◆ ◆ ◆

11The wall ── the same shape as Bonus ②'s, with a different name

② ended with "one function cannot write a star; the wall is the Weyl tensor." This episode used five functions and got a star through ── one lapse \(A\), one spatial conformal factor \(B\), and three shift components \(\vec V\). So how far can this form go?

CORRECTION (POST-PUBLICATION, THIRD TIME) ── the wall was pitched too high twice The first draft called the wall "rotation," and the first correction changed it to "rotation beyond first order." Both took the requirement too strongly.
Correctly ── what dies is only "conformally flat," and "the river" survives exactly even past \(O(a^2)\). The table below sorts it out.

Break the requirement into stages and it becomes clear. What dies for Kerr is only the flatness of the riverbed; the river itself does not die.

requirementSchwarzschildKerrbasis
space exactly flat + lapse 1○ (PG)×Visser & Liberati
space conformally flat○ (isotropic coords)×Garat & Price
lapse 1 + \(\det\gamma=1\) (unimodular)the Doran form
general ADM (no restriction)but then "flat" says nothing
THE THIRD ROW IS WHERE KERR ACTUALLY LIVES

Visser and Liberati sort this out head-on ── "for the Kerr spacetime, the best that seems achievable is to set the lapse function to unity and represent the spatial slices by a 3-metric in factorized unimodular form. This comes from considering the Doran version of Kerr in Cartesian coordinates" (arXiv:2210.11057).

Translated, what remains is unexpectedly good ──

lapse = 1: the speed of light relative to the water is exactly \(c\). You do not even need a varying speed of light.
\(\det\gamma=1\): the lattice distorts, but volumes do not change.

In Natário's phrasing, "the Kerr metric can be interpreted as space flowing on a curved Riemannian 3-manifold" (Gen. Rel. Grav. 41 (2009) 2579) ── the river survives; only the flatness of the riverbed dies.

The boundary between \(O(a)\) and \(O(a^2)\) remains correct as a statement about requiring conformal flatness. In Boyer–Lindquist, the spatial corrections (\(g_{rr}=\Sigma/\Delta\), \(g_{\phi\phi}\)) are all \(O(a^2)\), and the \(O(a)\) term is \(g_{t\phi}\) ── the shift alone. So this episode's calculations (dragging, the shadow offset \(2a\)) are self-contained at first order. Conformal flatness breaks from \(O(a^2)\) (Garat & Price, PRD 61 (2000) 124011; for discussion under broader conditions see arXiv:1908.03456) ── and that has a direct practical consequence: it is why Bowen–York's conformally flat initial data cannot be used for a rotating hole and comes with spurious radiation.

requirement (number of functions)what can be writtenthe wall
Bonus ②spacetime conformally flat (1)FRWthe Weyl tensor (a star cannot be written)
this episodespace conformally flat + lapse + shift (1+1+3 = 5)Schwarzschild (through to the interior) + Kerr at \(O(a)\)conformal flatness breaks at \(O(a^2)\)
the Doran formlapse 1 + unimodular (1+3+5 = 9)exact Kerrthe riverbed distorts (volume preserved)
numerical relativityevolve \(\gamma_{ij}\) too (1+3+6 = 10, of which 6 are physical)anythingdesigning the initial data and \(\alpha,\beta\)
GENERALITY AND THE PICTURE ARE TRADED ONE FOR ONE Go all the way and there is nothing that cannot be written (that is ADM). But then "the lattice is flat" says nothing ── the lattice is a label and the geometry sits inside \(\gamma_{ij}\).
The value of a flat lattice was never generality but that, thanks to the restriction, the picture "variable \(c\) + a wind" becomes true. Remove the restriction and you can write anything, but the picture dissolves into "a metric is a metric."
EVERY WALL IN THIS SECTION IS A "WALL OF DESCRIPTION"

There is something to say here from one step back ── changing coordinates does not change physics. So the "×"s in the table above do not mean that something stops happening there. It only means the same spacetime cannot be written in that formalism.

The evidence is inside this episode ── a lattice where \(c\) varies with place and a lattice where \(c\) is exactly constant gave the same shadow, \(b_{\rm crit}=5.1961524227\,m\), to ten digits. Observables do not depend on the choice of formalism.

However ── "whether coordinates of a certain kind exist" is an invariant property of the spacetime. Choosing is not physics, but whether you can choose is decided by the spacetime. "Kerr has no conformally flat slice" is a theorem about Kerr, not a matter of taste.

And walls of description do come with a practical bill ── Bowen–York initial data emitting spurious radiation for a rotating hole is a loss of accuracy, and gauge shocks crash the computation. Not a defect of the world, and yet the person doing the work gets invoiced. Exactly the same category as what a reader in §09 called "a bug inside perfect physics."

THIS SECTION WAS REWRITTEN THREE TIMES First draft "the wall is rotation" → correction 1 "rotation beyond first order" → correction 2 "what dies is only conformal flatness; the river survives."
All three times I made the same mistake ── I wrote a property of my own ansatz as a property of gravity. "Cannot be written" is a statement about a description, and every time I wrote it in a way that reads as "cannot be done."
The fixes came from readers' comments ("is Kerr at second order really impossible?", "a difference of coordinate systems is not a physical difference"), and not one of them came from the author rereading his own text.
HOMEWORK SOLVED BY THE CORRECTION ── the asymmetry of the shadow

The first draft wrote this ── "working it out gives the number \(8.31(a/m)\,m\), but since it is off by a factor of four from Kerr's often-quoted shadow offset \(2a\), we are not publishing it."

That factor of four was the error in the shape of the vortex. The shadow offset is fixed by \(\Omega V^2\) at the photon sphere ──

$$\rho_*=1.866025404\,m,\qquad u_*=0.267949192,\qquad (1+u_*)^6=4.155383$$ $$8.310767\,a\ \times\ \frac{1}{4.155383}\ =\ \mathbf{2.000000\,a}$$

Exactly \(2a\). Kerr's standard value. The factor-of-four discrepancy was \((1+u_*)^6\) itself.

Therefore the shadow splits and its centre shifts by \(2a\). But we keep it to first order ── at the photon sphere \(\Omega V\approx0.38\,(a/m)\), so once \(a/m\) exceeds 0.1 the first-order approximation is not to be trusted. Following it to large spin needs Kerr's exact river (a Painlevé–Gullstrand version of Kerr does exist: arXiv:0805.0206).

WORK IT BY HAND
  1. Bonus ② concluded that "conformally flat cannot write a star." Why does this episode's form not hit that wall?
    show the answer
    ②'s form has one scalar (\(ds^2=\Omega^2\eta\)), and conformal flatness ⟺ Weyl \(=0\). Schwarzschild has Weyl \(\ne0\), hence impossible.
    This episode's form has two (\(-A^2dt^2+B^4\delta_{ij}dx^idx^j\)), and it is conformally flat only when \(A/B^2\) is constant. It does not make Weyl vanish ── without making it vanish, it flattens "space only." So a star can be written exactly.
    ②'s conclusion is not wrong. The requirement is simply different.
  2. ② said "even if light bending agrees, it carries zero information." So what in this episode is information?
    show the answer
    Null geodesics being conformally invariant, a picture that tinkers with the conformal factor necessarily hits light. So 1.751201″ is not evidence.
    What counts as information is the three ② itself listed ── clocks (redshift 0.999996, GPS 1.0003), matter orbits (perihelion 1.000000), and tides (the shadow \(\sqrt{27}m\) to 12 digits, the photon ring's \(e^{2\pi}\)). These are not conformally invariant, so their agreeing means something.
  3. Why is the size of the shadow fixed by \(\min_\rho\,\rho/c(\rho)\)?
    show the answer
    Splitting the null \(H=0\) as \(|p|^2=p_\rho^2+L^2/\rho^2\), the turning condition (\(p_\rho=0\)) becomes \(\rho/c(\rho)=b\). \(V=\rho/c\) is \(\infty\) at \(\rho\to\infty\) and also \(\infty\) at \(\rho\to m/2\) since \(c\to0\) ── so it has a minimum. Below that \(b\) light cannot turn and falls in.
    Hence \(b_{\rm crit}=\min V\). Numerically \(5.196152423\,m=\sqrt{27}\,m\) (12 digits). No geometry and no curvature used.
  4. Why is it not the case that "the speed of light goes negative" inside the horizon? Answer in two stages.
    show the answer
    Stage 1: \(c=\sqrt{G/F}\) with \(F=((1+u)/(1-u))^2\) is a square. So even for \(u>1\), \(F>0\) and \(c=|1-u|/(1+u)^3\ge0\). It looks negative only if you take the wrong branch of \(A=\sqrt{A^2}\).
    Stage 2: \(\rhotwo overlapping exteriors. A static lattice never covers the interior.
    The interior is covered by a flowing lattice (PG), where \(c\) is exactly constant and the river merely goes superluminal. Not one quantity ever goes negative.

What we learned in this episode

We walked into Bonus ②'s trap. ② wrote that "light agreeing in the refractive-index picture is trivial and carries zero information; what distinguishes them is clocks, matter orbits and tidal forces." Going from one function to two (\(-A^2dt^2+B^4\delta_{ij}dx^idx^j\)) gets all three through ── perihelion 42.9806″/century (ratio 1.000000), gravitational redshift \(2.458454\times10^{-15}\) (0.999996), GPS 38.610 μs/day (1.0003), and on the tidal side the shadow \(b_{\rm crit}=\sqrt{27}\,m\) to 12 digits. ②'s conclusion is not wrong ── the requirement is different. This form is conformally flat only when \(A/B^2\) is constant, and it does not make Weyl vanish.

It all came out without building a single Christoffel symbol. Only four numbers per point, \(F,G,F',G'\). But what makes it light is "because it is the canonical formalism," not "because the lattice is flat" ── that should be counted separately.

The size of the shadow is fixed by \(\min_\rho\,\rho/c(\rho)\). The minimum of "radius ÷ the speed of light there." No geometry, no curvature needed. EHT's M87* (39.69 vs 42.0±3.0, 0.8σ) and Sgr A* (53.25 vs 51.8±2.3, 0.6σ). The photon rings cling to \(b_{\rm crit}\) by factors of 535.5, and \(e^{2\pi}=535.4917\) came out although we never taught it.

The remaining freedom is pinned down to five digits. Attach the knobs \(\beta,\gamma\) and the tool produces the PPN coefficients itself (\(\partial\ln/\partial\gamma=0.500000477\), \(0.666666339\), \(\partial\ln/\partial\beta=-0.333333867\)). Translating Cassini's \(\gamma-1=(2.1\pm2.3)\times10^{-5}\) into \(c(\rho)\), the tolerance is \(1.1\times10^{-5}\) of the solar-limb dip of \(4.245\times10^{-6}\). A flat lattice is "permitted," not "free to write as you like."

Space does not twist. Flow the lattice. Put in a wind \(\vec V=\Omega(\hat z\times\vec x)\), \(\Omega=2\mathcal J/\rho^3\), and the Hamiltonian keeps its form with only \(E\to W=E-\vec V\cdot\vec p\). The equations of motion become "travel through the lattice + being carried by the wind." The prograde/retrograde bending difference has coefficient 8 (ratio 1.000027), and LAGEOS's node precession is 30.593 mas/yr (ratio 1.000002). Turn the wind off and it falls to \(6.5\times10^{-12}\).

The inside of the horizon is not "deeper in" but on a different sheet. \(r(\rho)\) has minimum \(2m\) at \(\rho=m/2\), and the inversion \(\rho\to m^2/4\rho\) is an isometry ── a static lattice covers two exteriors and never covers the interior. The bridge opens and closes (\(2m\) at \(T=0\), 0 at \(|T|=1\)). The interior is covered by an inward-flowing lattice (PG), where space is exactly Euclidean, \(c\) is exactly constant, and the river merely goes superluminal. The proper time is \(4m/3\) (maximum \(\pi m\)). Three kinds of lattice are needed for four regions, but a real hole needs only the inward one (III and IV are products of eternity and vacuum).

This was ADM's 3+1. The lapse \(N\) = the width of a row, the shift \(\beta^i\) = how cells slide sideways, the spatial metric = the cells' graduation. And numerical relativity already does this ── the coordinate speed of light is \(-\beta^i\pm\alpha n^i\), and the CFL condition is \(\Delta t\lesssim\Delta x/(\alpha+|\beta|)\). 1+log slicing (\(f=2/\alpha\)) is used for singularity avoidance by deliberately crushing \(\alpha\) to 0 near the hole. Gauge modes propagate at \(\alpha\sqrt f\), exceeding the coordinate speed of light when \(\alpha<2\) for 1+log, and there is even a pathology named gauge shock.

And still the speed of light is constant. Everything was computed in a picture where the coordinate speed of light varies with place, yet the physical speed of light never changed once. What changed was a gauge quantity. The evidence is that a lattice where \(c\) varies and a lattice where \(c\) is exactly constant gave the same shadow to ten digits. ②'s "read as '\(c\) varies' it dies" stands unchanged.

The answer to "are you computing the same thing the hard way?" is half yes. The reading side of the sheet (observables) is light ── this episode did all of it. The filling in side (determining the fields) does not get lighter ── this episode never did any of it. \(F,G\) were put in by hand. The two-body problem, gravitational waves and stellar interiors are on that side.

Correction (post-publication) ── the curvature does come out. I simply did not produce it. \(A,B,\vec V\) are the metric itself, so differentiating them yields Riemann, Ricci, Weyl, even Pontryagin. I produced them and cross-checked ── \(R_{\mu\nu}\) is below \(10^{-8}\) of Riemann (a vacuum solution, ten non-trivial conditions), and the Kretschmann invariant agrees with \(48m^2/r^6\) to 9 digits (at \(\rho=5m\), \(9.788338647\times10^{-4}\) against \(9.788338720\times10^{-4}\), with \(r\) the areal radius) ── the very formula Bonus ② quoted. The Pontryagin \(R\tilde R\) is exactly 0 in the static case and rises with the wind, proportional to \(\mathcal J\) to 9 digits (= a gravitational chiral anomaly stands up only when there is rotation).

And that curvature found the bug in the wind. The first draft's \(\Omega=2\mathcal J/\rho^3\) is the weak-field form and was not a solution of the Einstein equations (\(R_{\mu\nu}\) survived at first order in \(\mathcal J\)). The correct form is \(\Omega=2\mathcal J/[\rho^3(1+u)^6]\), and with the fix it drops to \(O(\mathcal J^2)\). This error cannot in principle be found by computing observables ── because \(H=-\frac12\mu^2\) is conserved regardless of whether the given metric satisfies the equations. And once fixed, the shadow offset I had withheld came out as \(\mathbf{2.000000\,a}\) (Kerr's standard value). The factor-of-four discrepancy was \((1+u_*)^6=4.155383\) itself.

And the wall has ②'s shape with a different name ── "conformal flatness." Kerr's spatial corrections are all \(O(a^2)\), and \(O(a)\) is the shift alone. So rotation at first order fits into a flat lattice as it is (both the dragging and the shadow offset \(2a\) come out). Requiring conformal flatness stops you at \(O(a^2)\) ── restricted to axisymmetric foliations reducing smoothly to the Schwarzschild limit, Kerr has no conformally flat spatial slice (Garat & Price, PRD 61 (2000) 124011). That is why Bowen–York initial data cannot be used for a rotating hole. But relax the requirement to "lapse 1 + \(\det\gamma=1\)" and even exact Kerr can be written, in Doran form (Visser & Liberati, arXiv:2210.11057) ── only the flatness of the riverbed dies; the river survives.
Counted in functions: ② had 1, this episode 5 (lapse 1 + conformal factor 1 + shift 3), and removing every restriction gives 10 (6 physical) = ADM, which can write anything. But then "the lattice is flat" says nothing ── generality and the picture are traded one for one.

This document is Bonus ④ of the "Lattice We Build" series, a reading piece for high-school and university students who love physics. Where the sister series "That Clicks" explains known physics, this series shows the work itself.

Established material: the isotropic-coordinate form of the Schwarzschild solution; the conformal invariance of null geodesics; the equivalence of conformal flatness and the vanishing of the Weyl tensor; the Schwarzschild photon sphere \(r=3m\) and the critical impact parameter \(\sqrt{27}\,m\); the \(e^{-2\pi}\) scaling of photon rings; that isotropic coordinates join two asymptotically flat regions at a throat \(r=2m\) (the Einstein–Rosen bridge) and that the inversion \(\rho\to m^2/4\rho\) is an isometry; the spatial flatness of Painlevé–Gullstrand coordinates and \(v=\sqrt{2m/r}\); the proper time \(4m/3\) from horizon to singularity (and the maximum \(\pi m\)); the ADM 3+1 decomposition; that numerical relativity's CFL condition is set by \(\alpha+|\beta|\); the Bona–Massó family \(\partial_t\alpha=-\alpha^2f(\alpha)K\) and 1+log (\(f=2/\alpha\)); the existence of gauge shocks; Cassini's \(\gamma-1=(2.1\pm2.3)\times10^{-5}\) (Bertotti, Iess, Tortora, Nature 425 (2003) 374); the EHT shadow diameters for M87* (42±3 μas) and Sgr A* (51.8±2.3 μas); and Garat & Price's non-existence of a conformally flat slice (Phys. Rev. D 61 (2000) 124011).

This article's own computations: every number in the tables above (1.751201″, 42.9806″/century, \(2.458454\times10^{-15}\), 38.610 μs/day, 247.295 μs, 5.196152423 \(m\), 39.69 / 53.25 μas, the factor 535.5, the PPN logarithmic derivatives, \(1.1\times10^{-5}\), the coefficient 8, 30.593 mas/yr, \(1.333333332\,m\) and \(3.141592654\,m\)). The check code is pure Python with no dependencies: flatgrid.py (the five weak-field items) / flatgrid2.py (strong field, shadow, photon rings) / flatgrid3.py (the remaining freedom) / flatgrid4.py (the wind) / flatgrid5.py, flatgrid6.py (the horizon and the number of sheets) / flatgrid7.py (curvature ── Ricci, Kretschmann, Pontryagin. This is what found the bug in the wind).

Read this part carefully. That "Christoffel symbols are not needed" applies to the work of producing observables, and its lightness is thanks to the canonical formalism, not an advantage specific to "a flat lattice" (numerical codes that ray-trace around black holes use the canonical formalism routinely).
This episode never once solved the Einstein equations. \(F\) and \(G\) are known solutions put in by hand. The two-body problem, gravitational waves and stellar interiors are outside this tool (which is why binary pulsars were not treated).
The tolerance on the PPN \(\beta\) side is an estimate. For \(\gamma\) we used Cassini's primary source, but for \(\beta\) the post-MESSENGER numbers are not given in the abstract of Verma, Fienga, Laskar, Manche, Gastineau, A&A 561 (2014) A115, and this article uses \(|\delta\beta|\sim2.5\times10^{-5}\) as an estimate (unverified against the primary source).
Garat–Price's non-existence proof comes with conditions (axisymmetric, and reducing smoothly to constant-time surfaces in the Schwarzschild limit). It is not an unconditional claim.
The shadow asymmetry was resolved by a post-publication correction. The first draft withheld \(8.31(a/m)\,m\) as being off by a factor of four from Kerr's \(2a\); the cause was the error in the shape of the vortex (\(\Omega=2\mathcal J/\rho^3\) is the weak-field form), and correcting it to \(\Omega=2\mathcal J/[\rho^3(1+u)^6]\) gives exactly \(2.000000\,a\). But it is kept to first order ── at the photon sphere \(\Omega V\approx0.385\,(a/m)\), so it is not to be trusted for \(a/m\gtrsim0.1\).
"Spreadsheet" is a reader's word. The correspondence with ADM 3+1 is this article's framing, not textbook terminology.

Main series: contents | Bonus ②: How far does "ct = constant" get you? | Episode 17: Mercury precesses on a flat lattice | Episode 19: This way the arithmetic is easier

Print / PDF: ⌘+P (Ctrl+P on Windows). In the figure you can confirm that the two lattices give the same shadow.