Starspots: See Starlink Trains From Your Location

A real-time 3D Starlink satellite tracker because I wanted a simple way to know when to look up

Apr 12th, 2026
web 3d react typescript

I wanted a simple tracker for recent Starlink launches. Somewhere I could check when a train would be visible from my location without making an account or closing five ad overlays. So I built Starspots, a companion to Sunspots. Same idea, 3D globe, live data, no accounts.

How It Works

Orbital data comes from CelesTrak (NORAD TLEs for every Starlink satellite) and launch info from Launch Library 2. The app matches TLEs to launches by epoch proximity and orbital element clustering (inclination + RAAN within 0.5 degrees), then groups them into deployment trains. Trains from the past 7 days get color coded, older ones fade to gray.

Pass Prediction

A Web Worker runs SGP4 propagation for every satellite in every train, stepping through 15-second intervals over a 5-day window. A satellite being above your horizon isn’t enough though, it also needs to be sunlit while you’re in darkness. So it computes astronomical twilight windows via SunCalc and checks whether each satellite is in Earth’s shadow. You get predictions that match what you can actually see with your eyes.

Reusing the Dither

Same postprocessing stack as Sunspots: bloom, chromatic aberration, vignette, ACES filmic tone mapping, and the custom Bayer dither from the Sunspots post. The luminance-based strength keeps the dither invisible in the dark space background and only textures the Earth surface and satellite trails.

Mobile & Haptics

Works on phones. The UI collapses into tabs and the time scrubber is touch-friendly. Same web-haptics integration, detent taps when scrubbing through days and feedback on train selection.

Live at starspots.asynchronous.win, code on Github.

Get notified for new blog posts