The "light slows down" universe from Episode 1 — this time you run it yourself
In Episode 1 we rewrote cosmic expansion as "the speed of light slowly drops." The equations were elegant — but "staring at" an equation and "running" it are different kinds of understanding. This time we'll step that universe forward on a computer. No hard math needed: all it takes is "add a little to the previous value to make the next one" — repeated addition. And the figures on this page aren't decoration; they're real data your browser computes on the spot. Drag the sliders and spin the universe.
Episode 1's rule was \(c(t)=\dfrac{c_0 t_0}{t}\). How far light has traveled was speed × time, added up: \(D=\displaystyle\int c(t)\,dt\). "Integral" sounds intimidating, but to a computer it's just "add up the distance traveled, a small time \(\Delta t\) at a time." Written as a recurrence (make the next value from the previous one) —
"Advance the time by \(\Delta t\). In that interval light travels \(c(t_n)\times\Delta t\), so add it to the distance." Repeating this thousands of times is tedious for a human but a computer's specialty. As a program it's just a few lines.
The heart of this program is the one line \(c = c_0 t_0 / t\). The smaller \(t\) is (the younger the universe), the larger \(c\), racking up distance fast early on. That was the essence of "early light reached far." Let's watch it happen in the next figure.
First, let's plot the speed of light itself, \(c(t)=c_0t_0/t\), against the age of the universe. The slider below is the time step \(\Delta t\). Moving it changes how finely the smooth curve gets tracked.
The curve shooting up on the left (the past) is "light was fast in the young universe." Make the step coarser and you'll see the dots fail to keep up with that steep part, drifting off the curve — the fate of numerical computation, which leads into STEP 04.
Next, let's plot the distance \(D\) that STEP 01's program added up (the horizon light has reached) against time. In Episode 1 we said "\(\int c_0t_0/t\,dt\) diverges logarithmically — grows without bound." Let's verify that with the computer's addition.
The slider is "when to start computing." Start adding from an earlier moment (a younger universe) and — because the speed of light is enormous early on — the total distance jumps way up. The closer you get to the beginning, the more it grows without bound — this is the "logarithmic divergence," the numerical version of Episode 1's conclusion that any two points in the universe, however far apart, could once have been in contact.
This is the most interesting part of the episode. As Fig. 1 showed, early on (the past) the speed of light changes sharply, so tracking it requires a fine step \(\Delta t\). But later it's gentle, where a fine step is wasted. Compute the whole thing at one fineness and you're forced to make every interval as fine as the early part — very slow.
So we swap the "ruler" for time. Instead of ordinary time \(t\), use \(u=\ln t\) (the logarithm of \(t\)) as the new time. Then \(t=e^u\), and the speed of light becomes
$$c = \frac{c_0 t_0}{t} = c_0 t_0\, e^{-u}$$— a smooth exponential in \(u\). The sharp spike is gone, and the whole range can be tracked at nearly one fineness. The same accuracy, with far fewer steps — this is the essence of "changing variables speeds up the computation." In the figure below, compare the same physics on the \(t\) axis and the \(u=\ln t\) axis.
Try reducing the number of points. On the left (ordinary time), few points miss the steep early curve and drift far off it. But on the right (log time), the same few points track the curve cleanly. Without throwing away a single bit of information, just by swapping the "ruler," the computation got easier — this is the visible, real thing behind Episode 1's "speedup that isn't an approximation."
"Changing variables speeds things up" only works when the problem becomes smooth in that variable. A problem that's already uniform across the whole range won't speed up from a swap (it's already smooth). This time it worked because the \(c\cdot t=\text{constant}\) universe had a bias — "steep only early on." It's not magic; it's the skill of choosing a "ruler" to match the problem's bias.
We turned the continuous equation \(\int c\,dt\) into the computer's language (the recurrence \(D_{n+1}=D_n+c(t_n)\Delta t\)) and added it up step by step. In the young universe the speed of light shoots up, and the distance light has reached keeps growing logarithmically — Episode 1's conclusion, reproduced in the graph before your eyes.
And the core this time was the ruler swap to \(u=\ln t\). Without discarding information, just by changing coordinates, the computation of sharp changes gets orders of magnitude easier. When Episode 1 said "\(c\cdot t=\text{constant}\) is easy to compute," this clever choice of coordinates is what it meant. A notation that's easy to understand is often, at the same time, a notation that's fast — that's what became visible this time, hands-on.
Print / save as PDF: ⌘+P (Ctrl+P on Windows). On screen, sliders recompute the figures and "Show answer" opens the solutions.