In the summer of A.D. 1054, a supernova blazed in the sky bright enough to cast shadows at night. Somewhere near Fajada Butte, at the eastern entrance to Chaco Canyon, a Chacoan astronomer watched it rise. Some scholars believe they marked it on the cliff face — a painted hand, a crescent, a bright disc. We don't know their name. We don't know their language. But we know they were watching, because they built it into the stone.

These people were not primitive. They were doing what we're doing now: collecting data, watching patterns, building instruments to track cycles larger than a human lifetime. Pueblo Bonito's rear wall runs true north to within a tenth of a degree. The northeast doorway of Casa Rinconada catches the summer solstice sunrise exactly — a shaft of light that enters the great kiva and strikes a specific niche in the opposite wall on the longest day of the year. The great north road runs straight for fifty miles across the mesa with no apparent practical purpose, as if it wasn't built for walking but for seeing.

SOLSTICE watches the same sky, over the same canyon, updated every twelve hours.

The Casa Rinconada Alignment

Casa Rinconada is the largest isolated great kiva at Chaco — 19.5 meters in interior diameter, not attached to any residential great house, built to serve the broader canyon community. Its northeast doorway was documented by Anna Sofaer in 1979: it aligns to a sunrise azimuth of approximately 66.5°, the sun's position on the horizon at summer solstice.

SOLSTICE tracks this alignment daily. The current sunrise azimuth for Chaco Canyon is computed via Python ephem and compared against 66.5°. The deviation is displayed in the dashboard. As June 21 approaches, the gap closes. When today's sunrise azimuth falls within 3.5° of 66.5°, the alignment monitor activates. You can watch it happen in real time, from your desk, over the same canyon where people watched it happen a thousand years ago from inside a stone circle in the desert.

"The canyon aligned its stones to the sky. We aligned our data to the canyon."

The Terrain

The dashboard's hero image is a 4K GPU-rendered hillshade of Chaco Canyon from USGS 3DEP 1/3 arc-second LiDAR data, rendered via forge3d — a Rust-built, WebGPU-accelerated terrain renderer with a Python API. Camera positioned southeast of the canyon looking northwest, late-afternoon sun from WSW casting shadows into the mesa cuts. The LiDAR strips the vegetation and modern disturbance and reads the landform underneath, the same topography that the Chacoans surveyed, oriented, and built into.

The terrain render isn't automated in GitHub Actions — GPU rendering in a CI environment isn't practical. You run it locally once, commit the output, and it lives as a static asset. The astronomy data updates automatically twice daily. The landscape updates when you change the camera angle.

The Architecture

Same pattern as everything else in this collection. GitHub Actions runs fetch_solstice.py at 06:00 and 18:00 UTC, computing current sun and moon positions for Chaco Canyon coordinates using Python ephem, writing data/solstice.json. The frontend reads that JSON on page load. One HTML file, no build step, no frameworks.

The interactive map plots all ten major great houses with custom markers, the four Chacoan road spurs from Pueblo Alto, and two alignment lines projected from Casa Rinconada: the permanent summer solstice alignment at 66.5°, and today's actual sunrise azimuth updated from live data. Leaflet on ESRI World Shaded Relief with an OpenTopoMap overlay — the terrain visible beneath the site locations, the same terrain the Chacoans read when they decided where to build.

What It Means to Build This

There's a tradition in this kind of project — PELE watching Kīlauea, AFTERSHOCK watching the fault lines, SOLSTICE watching Chaco — of using public data infrastructure to stay in contact with things that are much larger and older than the dashboard displaying them. The USGS has been running instruments on these landscapes for decades. The ephem library has been computing planetary positions since before most people had smartphones. The Chacoans were running the same basic calculation a thousand years ago with stone and shadow.

The summer solstice alignment at Casa Rinconada will activate in the dashboard sometime in June. The sun will rise at 66.5° and the deviation counter will drop toward zero. It has done this every year for a thousand years. SOLSTICE just makes it legible on a screen.


Live at bdgroves.github.io/solstice. Open source at github.com/bdgroves/solstice. The canyon is still there. The sky is still moving. The data never stops.