hckrnws
Show HN: Skies-adsb 2.0 – my 3D plane-tracking web app
by minteractive
Hello, I'd like to share a 3D plane tracking web app that I developed called: skies-adsb.
Living near KMIA (a very busy airport), I spend a lot of time plane spotting and thought it would be cool to track planes in 3D.
In October 2021, I built a prototype 3D ADS-B flight tracker called skies-adsb using p5.js.
In April 2022, I released version 1.0 of skies-adsb, rewritten in Three.js. However, this release still relied on manual editing of GeoJSON layers.
By late 2024, I had learned enough about GIS and GeoPandas to automate map creation using custom GeoJSON layers. During the Christmas holiday, I developed a script to generate these layers from Natural Earth, FAA, and OpenStreetMap data using GeoPandas, then refactored skies-adsb to render multiple GeoJSON layers.
Today, version 2.0 of skies-adsb is available! This release simplifies installation, automates GeoJSON map creation, and features a new rendering engine. skies-adsb is compatible with all major WebGL-enabled mobile and desktop browsers.
To run skies-adsb you will need an RTL-SDR receiver and a Linux workstation or Raspberry Pi, or you can connect to an existing RTL-SDR ADS-B installation.
Working on this app has brought me a lot of joy and I also learned a lot about aviation, weather, GIS, and Three.js along the way. I use it daily, typically leaving it running in the background like a digital aquarium. I hope you enjoy it too.
Please check out skies-adsb by following the links below:
Source Code: https://github.com/llopisdon/skies-adsb
Video of skies-adsb: https://youtu.be/HnY1vFUBXS0
Is there any good free ADS-B platform these days? I know adsbexchange got bought up by a private jet charter company. So I guess they'll start blocking all sorts of stuff.
I did research on that topic when implementing my project https://adsb.exposed/
The list of all data exchanges is here: https://github.com/ClickHouse/adsb.exposed/?tab=readme-ov-fi...
One of the best is https://airplanes.live/ - which currently aggregates data from nearly 1700 feeders globally; they have a legal agreement preventing sale of this data (to avoid situations like with adsbexchange); they share the data on a selective basis.
One of the largest ones, Opensky Network - is supposed to be open for research purposes but they refused my request straight ahead.
https://adsb.lol/ - is controversial. This database is made available under the Open Database License: http://opendatacommons.org/licenses/odbl/1.0/ plus under CC0, but there is some drama that I don't understand: https://github.com/ClickHouse/adsb.exposed/issues/12#issueco...
Wow! adsb.exposed is an amazing site. The airbus vs. boeing map, showing the dominance in europe and the us, is particularly fascinating.
ADSBx (https://www.adsbexchange.com/) is still supposedly unfiltered.
Hmm if they're not filtering now they will soon. It's an executive jet charter company. What other reason would they have to buy it?
They got bought early 2023 according to the website, if they're not already filtering data, why would they suddenly start doing that? The company that bought them don't seem to be mainly a jet charter a company, but describe themselves as a "Aviation Market Data" company.
adsb.lol airplanes.live
adsbexchange was also bought out by private equity recently, these two seem to be some of the larger fully community driven resources.
Oh yes exchange that was the one I meant that was sold off, sorry.
I'll check those out thanks!
Yeah but they're sold off. The founder sold out the community. A lot of feeders have stopped but I was wondering where they went :)
Very cool
Congrats, this looks nice
Does this app render the flights to fit the curvature of the earth?
Was looking for something like this during the New Jersey drone flap to help identify distant flights from the perspective of someone on the ground
Thanks!
The app currently renders aircraft and maps on a flat plane using latitude, longitude, and altitude, via the sphericalmercator library:
https://github.com/mapbox/sphericalmercator
My understanding is that the ADS-B latitude and longitude are based on the WGS 84 coordinate system, which accounts for the Earth's curvature, but the app itself doesn't project these coordinates onto a curved surface.
I'd appreciate suggestions from HN users with map projection expertise on how to accomplish this. I'm also interested in learning more.
One of my next projects is to get a better understanding of GIS coordinate reference systems in order to be able to create 3d globle renderings of the data. I purchased the following two books to better understand map projection implementation:
3D Engine Design for Virtual Globes by Patrick Cozzi and Kevin Ring
Flattening the Earth by John P. Snyder
Any plans on making this a native app without the overhead of having a server service running?
Hi. I'm not planning a native app at this time. I created an experimental native app using Godot, but in the end I decided to focus on the web app. The app is a PWA so it provides a native like experience if that is desired (works on both mobile and desktop)--this is how I use it when I'm on my phone or tablet. Most users likely already have an ADS-B tracker that usually includes a local lighttpd web server for 2D traffic viewing. The app integrates with these existing setups. Users who don't want to alter their setup can run the app using the included Vite development server and websocket proxy to connect to a ADS-B tracker. Instructions are in `docs/LOCALHOST-SETUP-GUIDE.md`.
Crafted by Rajat
Source Code