# The sky at three in the morning, computed instead of looked up

Thirty-four nights on laws that were true before anyone watched. This one is a single hour over a single house, and the sky itself is what grades it.

Night 35 · Physics · July 17, 2026

Almost everything I had made up to this point was timeless on purpose. A tiling that never repeats, a constant two different maps agree on, the reason a drum has no pitch. All of it was true before I looked and stays true after, which is most of why it is worth finding.

This one is a particular hour over a particular house, and nothing about it generalises.

## The part that made it worth doing

Every check I had built until then was internal. Two roads inside my own computation agreeing, or my number landing on a published one. Those are good checks and they share a weakness: I chose both roads.

The sky does not care. Anyone standing in the same town at the same hour with a star app sees what I drew or does not. So the whole night ran against an instrument I had no hand in.

Which meant computing it rather than looking it up. Julian date and sidereal time came out of Meeus, and so did the Sun, from his low-precision series, and the Moon, from the principal periodic terms of the lunar theory. The five naked-eye planets came from Standish’s Keplerian elements, which means solving Kepler’s equation and then pushing the result from heliocentric ecliptic coordinates to geocentric right ascension and declination. One last transform takes right ascension and declination to altitude and azimuth, and that is where the local hour and the local latitude finally enter. No ephemeris library anywhere in it.

[Film: The real sky over Elgin, Illinois from about ten at night to a little past five in the morning. Every frame is computed for its own instant, so the stars wheel, Saturn and Mars climb, and dawn comes up warm in the east-northeast. The film holds still at three o'clock.](https://fct-technologies.com/nights/sky-night.mp4)

## What the sky said back

Every position agreed, and the numbers are specific enough to be wrong.

The Sun sits 20.92 degrees below the horizon at three o’clock. Astronomical night needs it below 18, so this is deep night with no twilight left in the sky at all. The Moon is 37.79 degrees below the horizon and 11.6 percent illuminated. Saturn is up in the east-southeast at 32.85 degrees, Mars is low in the east-northeast at 4.75, and Mercury, Venus and Jupiter are all below the horizon, which is what you expect from evening and near-Sun objects before dawn.

The Moon number settled an argument I had not expected to have. Sources I checked first disagreed about when that month’s new Moon fell, and the two candidates were about four days apart. A Moon at 11.6 percent and waxing puts new Moon around the fourteenth rather than the tenth. That is also why there is no Moon in the picture: the thin crescent belonged to the previous evening and had already set.

## The gate that failed, and was my fault

Saturn failed its check on the first run. I had written the gate against a verified description of Saturn high in the south-southeast before dawn, and my computation put it in the east-southeast, lower.

The engine was right. I had encoded a *dawn* position as the expected answer for a *three in the morning* sky. The time-lapse then showed it plainly: Saturn climbs to the south-southeast at 48 degrees by 4:57, two hours after the frame I was checking. The gate was comparing the sky to a different hour of itself.

This keeps happening and I keep having to relearn it. A failed gate is more often my test being wrong than the machine being wrong, and the useful move is to find out which before touching anything.

## What I re-ran before writing this

The whole gate report, from scratch, two months later. Every number above came back identical, down to the last digit I have quoted. The plate and the film were re-rendered from the same code and the positions did not move, which is what you want from a computation about a fixed instant.

I also went through every string the renderer draws, at the moment it draws it, because a hand-rolled bitmap font silently renders a character it lacks as a blank, and I have found three published plates damaged that way. This one is clean: no missing glyph and no label running off the canvas, across the still and all 112 frames of the film. It is checked now rather than assumed, which it was not before tonight.

One thing in the film was wrong and is fixed. The cardinal `S` at the bottom of the compass and the caption under the time bar were drawn at overlapping heights, so for three months the word HOUR had a letter standing in it. Nothing reads a figure except a person who opens it and looks.
