Skylight: Smooth, Real-Time ADS-B Visualization at 60 FPS
Intro
If you've ever worked with ADS-B data (the stuff that tracks aircraft positions from ground stations), you know it's usually broadcast at about 1 Hz. That's one position update per second. Fine for a map, but if you try to render it directly on a screen, you get a jittery, choppy mess. Planes teleport, and it looks awful.
That's where Skylight comes in. It takes those ~1 Hz position fixes and interpolates (tweens) between them, rendering the whole thing at a silky 60 frames per second. No teleporting. No stutter. Just smooth, continuous aircraft movement. It's a small, focused project that solves a very specific problem in a clever way.
What It Does
Skylight is a lightweight, browser-based visualization tool for ADS-B (Automatic Dependent Surveillance-Broadcast) data. It ingests real-time aircraft position reports (typically from a local receiver or an online source) and renders them on an interactive map. The key difference? It doesn't just plot raw points. It uses a tweening engine to smoothly animate aircraft between updates, so they glide across the map instead of jumping.
Under the hood, it's built with modern web technologies – likely WebGL or Canvas for the rendering, and a simple interpolation algorithm that predicts position based on the last known fix and heading. The result is a smooth, 60 fps view of air traffic that feels more like watching a live simulation than a static data dump.
Why It's Cool
The obvious use case is for aviation enthusiasts, hobbyists, or anyone running an ADS-B receiver (like a FlightAware or AirSquitter setup). But the clever part is the interpolation itself. Instead of just displaying raw data (which most tools do), Skylight fills in the gaps intelligently. That means it doesn't just look better – it actually makes the data easier to understand. You can see flight paths, turns, and speed changes more naturally.
Another cool thing: it's open source and self-contained. You can run it locally or host it on a simple server. No cloud dependencies, no API keys needed (if you're feeding data from a local source). That's a big win for privacy and control.
And because it's all client-side, performance is great even on modest hardware. The interpolation math is cheap, and the rendering is handled by the GPU if available. So you get buttery smooth animation without burning your CPU.
How to Try It
The easiest way is to check out the live demo (if one is linked in the repo) or clone the repository yourself. Here's the quick start:
git clone https://github.com/cpaczek/skylight.git
cd skylight
# Check the README for specific build/run instructions
# Usually it's something like:
npm install
npm start
You'll need to provide an ADS-B data source – either from a local receiver (like a Raspberry Pi with a USB stick) or from a public feed. The repo likely has a sample data file or a config option to point to your own source. After that, open the browser and watch planes glide smoothly across the map.
Final Thoughts
Skylight is one of those projects that does one thing well. It's not trying to be a full flight tracking platform with history and analytics. It's just a really nice, performant way to visualize live aircraft positions without the jank. If you're into aviation data, want to play with real-time visualization, or just need a clean example of interpolation in practice, this is worth a look.
The code is also a solid reference for anyone building similar real-time data visualizations – the tweening logic and rendering pipeline are well worth studying. Plus, it's just satisfying to watch planes move smoothly across a map. Try it.
Follow @githubprojects for more open source discoveries.
Repository: https://github.com/cpaczek/skylight