Skylight turns live aircraft overhead into a ceiling-scale ambient interface instead of another screen-based flight map

updates

cpaczek's Skylight uses an RTL-SDR, projector, and Raspberry Pi to render planes, runways, stars, satellites, and destination context onto the ceiling in real time, making local airspace feel like a physical interface instead of a browser map.

GitHub README capture for cpaczek/skylight

Most flight-tracking software lives inside the same narrow pattern: a map on a screen, a list of callsigns, maybe a few filters, and some satisfying motion if you happen to care about airplanes enough to keep it open. Skylight feels different because it moves the whole experience out of dashboard mode and into the room itself. Instead of asking you to monitor aircraft on yet another display, it projects the planes above you onto the ceiling in real time, at the moment they are actually passing overhead. That alone is a clever hack. What makes the repo worth writing about is that it does not stop at the hack. It keeps pushing until the setup starts to feel like a coherent product.

The core idea is easy to explain and surprisingly strong: use a cheap RTL-SDR radio to decode ADS-B traffic, render the local airspace with a projector aimed at the ceiling, and place aircraft where they physically are relative to your home. A jet that you hear above you becomes a moving object in the same part of the room. The README describes it as an X-ray through the roof, and that framing lands because the project is not just visualizing data. It is re-situating the data into the physical space where it matters.

What the project actually ships

According to the README, Skylight can run in a no-hardware mode against a public ADS-B API or in a local-first mode with a real RTL-SDR feed. On top of that feed it renders aircraft, trails, altitude-based color, compass rings, runway geometry, destination context, and a live sky layer with the sun, moon, stars, constellations, satellites, and the ISS at their true positions for your location and time.

That already sounds richer than a normal flight map, but the repo goes further. There is a phone-friendly control panel for tuning the whole projection live over the local network, a Raspberry Pi appliance path that boots directly into kiosk mode, and an optional PTZ camera subsystem that can automatically film the planes it is projecting. The camera workflow has its own dashboard, tracker debug UI, calibration flow, prediction logic, and zoom behavior. That is a lot more product surface than you usually see in a repo that could have stopped at "look, planes on the ceiling."

Why this is more interesting than another flight-tracking UI

The most compelling part is the choice of surface. Skylight does not treat air traffic as something to inspect from a detached control center view. It treats it as an ambient layer in the place where you already are. That turns the project from information display into spatial interface design.

I think that matters because a lot of software still defaults to adding one more pane of glass. If there is useful data, we assume it belongs in a browser tab, a dashboard, or a mobile app. Skylight asks a better question: what if the right interface is the room itself? Once the projection disappears into a pure-black background and only the aircraft and sky elements remain visible, the product starts to feel closer to an installation piece or a home observatory than a utility panel.

That shift gives the repo a surprising amount of emotional range. It is useful because it reflects real aircraft overhead. It is playful because it makes your ceiling feel alive. And it is memorable because the interaction model is physical, not symbolic. You look up where the plane really is, not down at where a map says it should be.

The repo has real product taste, not just technical ambition

One thing I like here is how many of the details are about legibility and feel rather than raw feature count. The README calls out a pure-black background so the projector rectangle disappears. Aircraft use type-aware glyphs, with helicopters spinning rotors and different plane classes reading differently at a glance. The motion is smoothed by interpolating low-frequency position fixes to a 60 fps render, so the experience feels fluid instead of jittery. Routed flights show destination city, local time there, and miles-to-go, which turns the projection from traffic data into a small story about where each aircraft is headed.

Those are strong product decisions. They are not merely about technical correctness. They are about making the interface readable, atmospheric, and worth leaving on. A lot of impressive hobby projects stay in demo territory because they focus on data availability more than experience design. Skylight feels stronger because the aesthetic and interaction choices are clearly part of the concept.

The optional camera system upgrades the idea from novelty to platform

The PTZ tracking path is probably the moment where this repo became much more than a beautiful visualization. Instead of only projecting the airplane, Skylight can try to point a sky-facing camera toward the same target, compensate for latency, keep the aircraft centered, and adjust zoom as lock confidence improves. The repo even includes a simulator and deterministic replay paths so the tracking pipeline can be worked on without needing live hardware every time.

That matters because it shows the author is thinking in systems, not scenes. The ceiling projection, phone controls, tracker dashboard, calibration tooling, and camera brain all reinforce the same underlying product: a local observability layer for the sky above you. Once a project reaches that level of coherence, it stops feeling like a weekend trick and starts feeling like the beginning of a category.

Why the local-first hardware stack is part of the appeal

I also appreciate how accessible the hardware story is. The README explicitly says you can try the software locally with no radio, then graduate to an RTL-SDR, Raspberry Pi 5, and projector when you want the full experience. That is a good adoption path. It lowers the barrier without hiding the real setup.

The local-first choice also suits the concept. Planes overhead are inherently local. Your coordinates matter. Your room matters. Your projector calibration matters. Keeping the sensing and rendering loop close to the physical environment makes the product feel grounded instead of remote. Even the optional phone control panel works because it is tuning a live installation in your own space, not managing a cloud account.

What builders can learn from this repo

The broader lesson is that good open-source projects do not always need to invent a new software category from scratch. Sometimes they win by taking an existing data stream and giving it a radically better interface. Skylight takes something many of us have seen before, real-time flight data, and places it on a surface that creates surprise, delight, and much better context.

It is also a reminder that product thinking often shows up in constraint choices. The repo does not try to become a generic visualization framework. It picks a very specific magic moment, planes above you right now, and builds every part of the system around making that moment work reliably and beautifully.

Why this repo stood out to me

I like projects that make software feel more embodied. Skylight turns live air traffic into an ambient home interface you can literally look up at. That is a rare mix of technical craft, aesthetic restraint, and product imagination. Even if most people will never mount a projector on the floor and point it at the ceiling, the repo is worth studying because it shows how far a project can go once it stops asking "what data can I show?" and starts asking "what experience does this data deserve?"

GitHub: https://github.com/cpaczek/skylight