← Back to Projects

Sky Lab
LiveAn observatory in your pocket. Sky Lab shows what is overhead right now, from where you are standing: stars, planets, the Moon, the ISS and the brighter satellites, with real orbital propagation running on your phone. Hold it up and the chart follows; tap anything and it tells you what you are looking at.
Screenshots
What It Does
- →Point your phone at the sky and the chart follows it: stars sized by brightness and tinted by their real colour, constellation lines and names, planets, and a Moon drawn at its actual phase
- →The ISS is always on, with its path sketched ahead of it; other bright satellites move in real time, and Starlink is a layer you can switch on
- →Tap any object for a placard: magnitude, altitude and azimuth, constellation, and when it rises, peaks and sets tonight
- →A passes sheet lists the next five visible ISS passes for where you stand, each with a sketched arc across the sky, direction, peak, duration and brightness
- →Scrub time twelve hours either way and watch the sky turn; search for Jupiter, Vega or the ISS and an arrow points you to it
- →A true night mode, red on black so your eyes stay dark-adapted; installs to your home screen and works offline once the catalogs are cached
What I Built
- →The Yale Bright Star Catalog, about 9,100 stars, packed into a 98 KB file, with constellation lines and names shipped alongside
- →Sun, Moon and planet positions from astronomy-engine, and satellite positions from SGP4 over CelesTrak orbital elements, refreshed at most once a day with a bundled fallback so the sky is never empty
- →My own code for the sky projection, the AR pose from the phone’s sensors, rise and set times, and ISS pass prediction, tested against published worked examples and a brute-force scan
- →A twilight colour ramp driven by the real altitude of the Sun, bloom only on the brightest stars, and a Milky Way with dust lanes, all drawn in WebGL with a Canvas overlay
- →A static, installable web app (React, TypeScript, Vite) with a service worker; location is used only on the device and never uploaded
- →Honest about its limits: it is a chart that follows your phone, not a camera overlay, and satellite brightness is estimated only for the ISS and Tiangong


