Every pixel and number is a pure function of one master timestamp. Positions come from Astronomy Engine (Don Cross, MIT) — VSOP87-class planets, a Moon theory, Jupiter's Galilean moons — accurate to about an arcminute for 1700–2200 CE. Other moons use JPL SSD mean elements (epoch J2000; “mean-element accuracy”: good for visuals, not for precise phenomena). Planet orientation uses IAU WGCCRE rotation models. Eclipse shadows are computed analytically per pixel from the true Sun/occluder geometry (exact disc-overlap), so umbra and penumbra land where the ephemeris says. Eclipse times/contacts come from Astronomy Engine's search routines, not from animation.
Limits. 1700–2200 CE: no warning. 1000–1700 and 2200–3000: allowed with a “reduced accuracy” banner. Outside 1000–3000 the picker is disabled. Past dates show the proleptic Gregorian calendar; local time uses today's IANA rules so pre-1970 civil times may differ from history. Star positions are J2000 precessed to the date (no proper motion). Earth city-lights and cloud textures are present-day. Planet surfaces, ring shadows and moon shadows on Jupiter use real geometry, but body sizes in “Explorable” scale are exaggerated.
Data & credits. Geocoding & weather: Open-Meteo (CC-BY 4.0; forecast, ERA5 historical archive). Planet & Milky Way textures: Solar System Scope (CC BY 4.0, NASA-derived). Earth, Moon, clouds, city lights: three.js example textures (NASA Visible Earth / Blue Marble derived). Hubble galaxies: NASA/ESA (via Wikimedia Commons): NGC 4414, M51, NGC 1300, M104, Antennae. Star & constellation data: Yale Bright Star Catalogue via d3-celestial (BSD). Satellite elements: NASA/JPL SSD. Rendering: three.js (MIT).
Built by Siten Sanghvi · open source (MIT) at github.com/sitens/celestial-atlas. Star positions include proper motion from the Hipparcos-derived HYG database (CC BY-SA 4.0); the 1000–3000 CE eclipse timeline table is precomputed with Astronomy Engine. Earth cloud cover is a live 20° Open-Meteo grid draped over a static cloud texture.
Pick a birth date/time (or any birthday). The place defaults to your current location — search a city first to change it.