Skip to content
Lab

Lab · Planetary time · 2026

Almanac

A book for the wait, and for the leaving. Earth clocks, Mars clocks, and the light between them — so a human can feel the differential, not just read an AU.

Role
Designer & builder
Stack
Ephemeris · Keplerian orbits · MTC / MSD · Hohmann windows

259d

Hohmann cruise

+39m 35s

Sol vs Earth day

Live

Earth–Mars range

Orbit

Date-driven sky

The problem

Humans do not feel 1.576 AU. Calendars do not count sols. If you live on one world and think about another, a table of ranges is not enough — you need both clocks in the same room, and a window you can actually leave through.

Origin

I can spot a timezone error in almost any web app. UTC versus local. DST seams. A midnight that is not midnight anywhere. The usual fix is another offset. That works while everyone you care about is on Earth.

It does not work for a species that leaves. A sol is 39 minutes 35 seconds longer than a day. Mars Coordinated Time is not Mountain Time plus something. Conversations with Earth take minutes each way because light is slow at interplanetary range. Launch seasons open every 26 months, not every afternoon. I wanted a tool that treated those facts as the time system, not as trivia in a sidebar.

The first sketch was a React Native Expo app. The site that shipped is the same mission with the decorative parts stripped out — real orbits, real light-time, and three station modes that change what the page is for.

What I did

  1. 01Built two synchronized chronometers: Earth UTC against Mars Coordinated Time, plus Martian solar days, rover sols, and solar longitude. A sol is 39 minutes 35 seconds longer than an Earth day; the interface makes that slip visible.
  2. 02Wired live ephemeris — Earth–Mars separation, one-way and round-trip light, distances from the Sun — so the numbers move because the planets moved.
  3. 03Published an idealized Hohmann transfer calendar. About 259 days of cruise, repeating roughly every 26 months. Teaching model, labeled as such — not a NASA flight plan. The book is for the wait and for the leaving.
  4. 04Drew an orbit map that scrubs on date, not on an animation loop. Planets sit on Keplerian elements. The dashed ivory arc is the transfer ellipse for the selected window.

Stations

The same instant, three jobs. Earth is the wait: launch seasons, UTC, the next crossing, what the Moon is doing tonight. Transit is the leaving: ship time, the transfer ellipse, the wait on the radio. Mars is the ground: MTC and MSD, rover sols, a Gale-like seasonal model, what your mass weighs at 0.38 g.

Station is not a theme toggle. It changes the hero, the featured clock, and which way the comms point. On Earth you look out. On Mars you look back. In transit you are the delay.

How it works

UTC is the Earth civil second. Almanac treats it as when on Earth. MSD and MTC follow NASA GISS Mars24 — Allison and McEwen, the same family of numbers rover planning clocks use. It is not an offset from Chicago. Light-time is distance divided by c. Distance comes from three-dimensional Keplerian positions of Earth and Mars, not a sine wave. Season on Mars is solar longitude, not an Earth month. The climate card is an Ls model, not live weather. InSight went silent in 2022.

A timezone is a civil agreement about which clock we share. Almanac asks the next question: which clock do you share with someone who is minutes of light away, on a day that is 39 minutes longer? The answer is not another IANA string. It is two clocks, one instant, and an honest delay.

Planets are advanced from J2000 Keplerian elements. Range includes inclination. The dashed arc on the map is a Hohmann path for the selected window — the textbook minimum-energy ellipse, not a C3 porkchop. Nothing on the critical path requires a NASA API at request time. Positions, clocks, and delays are computed from published elements. Deep-space tools that die when a feed dies are ornaments.

Outcome

Live at almanac.leespringer.co. A station briefing with an orbit view — not a screensaver. Same standard as the rest of the lab: a URL, a real differential, no slideware. The lag is not a metaphor.