Live Sky

Sky Overlay — North York

Real-time positions of the Sun, Moon, planets, and bright stars above North York, Toronto. Celestial coordinates computed every 3 minutes on a Raspberry Pi 5 using the Skyfield library and DE421 ephemeris. Hover over any object for details. Scroll to zoom.

Loading sky data…
Az
Alt
Mag
Waiting for data…

How it works

Three steps from orbital mechanics to pixel — running continuously on a Raspberry Pi 5 in North York.

01

Compute

Every 3 minutes, sky.py runs on the Pi 5. It loads the DE421 JPL planetary ephemeris and the Hipparcos star catalogue, then uses the Skyfield astronomy library to compute altitude and azimuth for the Sun, Moon, seven planets, every star brighter than magnitude 3.5, and satellites. Satellite positions are derived from fresh TLE orbital elements pulled from CelesTrak and propagated with the SGP4 model.

02

Publish

The results are serialized to a compact JSON file (sky-bodies.json, ~8 KB) and transferred over SSH via scp to the Hostinger shared hosting server. The file refreshes every 3 minutes alongside all other live data produced by the Pi 5 — metrics, flights, BME680 air quality, and security events.

03

Render

The browser fetches the JSON and draws every body onto an HTML canvas using a gnomonic projection — the same geometry used in real star atlases. The projection maps the curved celestial sphere onto a flat plane such that straight lines correspond to great-circle arcs, giving undistorted directions near the centre of view. Drag to pan, scroll to zoom.

What you're seeing

Sun
Position from DE421 ephemeris. Apparent magnitude −26.7.
Moon
Same ephemeris. The map shows its current position, not its phase.
Planets
All seven planets from DE421, color-coded by type.
Stars
Hipparcos catalogue, mag ≤ 3.5. Color derived from the B−V index.
ISS & Tiangong
Rendered as a + cross. TLE from CelesTrak, propagated with SGP4.
Starlink & others
Visual group + Starlink. Deployment-orbit Starlinks are dimmed automatically.
Term Meaning
Azimuth Compass bearing measured clockwise from North. 0° = North, 90° = East, 180° = South, 270° = West.
Altitude Degrees above the horizon. 0° = horizon, 90° = zenith. Negative = below horizon.
Magnitude Logarithmic brightness scale — lower is brighter. Sun = −26.7, full Moon ≈ −12, ISS ≈ −2.5 at peak.
DE421 NASA/JPL high-precision solar system position table, valid 1900–2050. ~17 MB, cached on the Pi.
SGP4 Standard satellite propagator for TLE elements. Accurate to ~1 km for a few hours from the TLE epoch.
TLE Compact satellite orbital parameter format from CelesTrak (U.S. Space Force data), refreshed every 6 h.

Built with

Python 3 Skyfield 1.49 DE421 ephemeris Hipparcos catalogue SGP4 propagator CelesTrak TLE Raspberry Pi 5 cron + scp HTML Canvas 2D Gnomonic projection NumPy PHP