← All projects

Personal · 2026

PlanesView

All air traffic live on a photorealistic globe, and the view from the cockpit of any aircraft.

The map: all air traffic live on a photorealistic globe
The map: all air traffic live on a photorealistic globe
In the cockpit of an aircraft on approach, with the other aircraft around
In the cockpit of an aircraft on approach, with the other aircraft around
PlanesView's home page
PlanesView's home page

The story

The initial brief said "no backend". I measured, provider by provider, the CORS headers of the ADS-B feeds: four ADS-B providers refuse calls from a web page. Rather than give up the "free, no key, no account" constraint, I designed a minimal allow-listed relay that can only reach origins fixed in a file.

Positions arrive about once a second. To get smooth 60-frames-per-second movement without ever showing a "late" aircraft, each aircraft is tracked by a constant-velocity Kalman filter, factored into two filters per axis (4 terms to propagate instead of 16).

The globe is a quadtree of tiles: a tile is never empty (it borrows its ancestor's texture), detail sharpens with a fade, a parent is replaced only once its four children are built, and the IndexedDB cache is warmed up along the trajectory.

What I take away

Measure before deciding: the brief was wrong on one point, and the right answer was a small, strictly bounded relay. I also learned that "plausibly wrong" maths (geodesy, projections) are the ones that need the most tests.