My toddler loves planes, so I built her a radar
jacobbartlett.substack.com
jacobbartlett.substack.com
Partly because of your affinity for skeumorphism, as you said, but it may also be because the OG radar display is a fantastic distillation of "Is there something in the sky and where is it relative to me?" All the UIs we have for sky-watching now have moved away from that in favor of contextual data or linking out to other services (or creating space to display ads). In the process of presenting all that additional information, they've lost the ability to easily answer that particular question.
I think I was very well served by having a very pure motive: What direction should I look to find a plane, and worked up from there.
To your point though, perhaps emulating the sweep was the questionable design decision — the bright colors, map-less background not controversial at all since they help focus on the intent of the display.
I did notice that as I turn with the phone, the compass-tracking feature broke the illusion of the sweep. :-)
source: https://www.youtube.com/watch?v=RyMfC3M0fZQ?t=12m32s
Check out SkyMap!
One service that continues to capture this really well is the AR mode of FlightRadar24. I understand all of the individual bits of technology involved just fine (and run my own ADSB station!) but there's something about pointing a camera at the sky and seeing metadata of all the planes in view that still amazes me.
In a similar vein, my 5yr old son has a flight log book - I started it for him as a baby. Every flight he gives asks one of the crew if the captain wouldn’t mind completing it. It logs route, aircraft and any events that happened. The crew _love_ this kind of thing - we’ve toured cockpits and crew rests and the messages are always gracious. He’s always beaming to get it back. Highly recommend it for little plane geeks.
(domestic flight, Europe)
(Imagine my irrational excitement when I surpassed 250 karma here on HN)
Even if I show her today the first thing she cares about doing is picking a colour (which is great for fine motor skills!)
This is absolutely adorable, hilarious and understandable at the same time.
https://www.architecturendesign.net/john-travoltas-house-is-...
Matching NASA orange jumpsuits are the passport into every cockpit. The crew gets way more excited than the kids. Also makes them super easy to find in the airport.
Going viral also not bad though.
* It takes me out of the immersion a bit when planes move after having been drawn. It would feel more realistic if the blips were "painted" by the sweep and then static until the next sweep.
* To make it a bit more realistic you could extrapolate from previous data points so each plane would make consistent progress from sweep to sweep.
Both very valid points. I think if I was clever with timing and angles the first one is definitely doable. The second one woudl be even simpler - the API returns flight velocity so I can even calculate this from one data point
The underlying technology being imitated here is a slowly decaying phosphor.
I love how a discussion like this can occur here and there's no flaming or egos getting hurt. When you post a labor of love like this, it's great to see the reaction on HN.
I spend a lot of time trying to decide what to do with old tech in my volunteer gig. We have old Univac "dumb" terminals and I feel the need to plug them in and see if they still work. I come here for re-charging.
I think emulating old hardware is fascinating. Am I the only one who watches old media just to hopefully get a glimpse of the past?
* Everything fades from when it was drawn
* Everything is only drawn with the sweep
* Simulate a continuous motion for the planes, and use that to determine a new position at each sweep.
Did I make a mistake?
I thought you were saying to animate the planes, but I no longer think that's what you meant.
You can also see a bunch of other places on a map that line up with runways: South Boston (including Castle Island), East Boston, and a bit further from Logan is the harborwalk around Long Wharf and the aquarium. (The aquarium might also be interesting to kids. There's some free viewing windows for a little of it, while walking past, to maybe gauge interest before paying admission. And there's various tourist things in that area, including various harbor boat rides.)
A camera/cameraphone with >1x lens will get them a closer look at planes. Or binoculars/monocular if you want to reduce screen time, or to encourage appreciating it in the moment rather than trying to capture it. (What kind of hearing protection works for kids?)
> Only multi-engine, fixed-wing aircraft up to Airbus A318 size with special aircraft and aircrew certification to fly 5.5° approaches are allowed to conduct operations at London City Airport.
Looks like smaller jets (E190's mostly) due to the very steep approach on both ends, but the views look pretty good and there's decent traffic there.
Nicely done!
Small detail question: Did CRT radar scopes really have scan lines? I would have guessed they were vector displays.
Re. list of extra features: Since the app targets planespotting, it would be cool to show aircraft type, maybe for a few seconds after you tap a blip.
The original radar displays would scan from the center outward along a radial. The timing of the scan was predefined to scale for distance. The beam intensity signal was directly the (amplified) radar return signal. So a stronger returned signal would cause a more visible "blip" on the long-phosphor display.
The interesting part is to make the radar beam scan around the CRT display, the whole cathode tube emitter assembly would be driven by a motor synchronized with the spinning radar dish. This rotation would have to match the speed and direction of the radar dish at all times, otherwise the blips would show in the wrong place.
The fixed radial and distance lines would be printed either on the CRT tube itself or on a transparent cover. Displays like this were used for decades, probably well into the 1980s or even early 1990s. Newer versions were able to use simple electronics to scan in the X and Y direction independently, to avoid the more complex rotating beam emitter assembly.
More info at https://en.wikipedia.org/wiki/Radar_display#Plan_position_in...
The phosphor afterglow made it so that stronger radar returns remained on the screen for a bit. If the radar made more than a revolution in that time, you'd see the same airplane as a new dot ("plot") that had moved a bit. You could use a felt tip pen to mark the plots as "tracks" on the screen.
There were also special radar screens with a movie camera pointed at them, where hours of radar returns could be recorded for later playback.
For instance this sped up recording of Warsaw Pact planes during the 1968 revolution in Czechoslovakia: https://youtu.be/rAUodXI4LPw?t=622
Additionally, there's also a storage tube effect going on, too--but it works like the variable-persistence mode found in certain oscilloscopes, not the bi-stable mode found in storage-tube x-y vector displays for early computers (some o'scopes had both var persist and bi-stable modes).
One consequence of the above is related to early attempts at designing stealth airplanes, like the SR-71 and XB-70: The beam current is set such that the radar tube tends to build up the "blip" over multiple sweeps, and the blip usually moves less than its own diameter between sweeps.
But, if the airplane has an intrinsically low radar cross-section and if it is moving so fast that the blimp moves a greater distance between sweeps... the radar operator may just interpret the little ghost blips as noise, especially if he or she is overwhelmed by a large number of targets.
Edit: fair point on what a radar is, today I re-remembered :)
The SDR is still just listening to the telemetry from the plane, which they transmit all the time for this ADS mode.
https://en.wikipedia.org/wiki/Passive_radar
But yes, it needs to be doing more than receiving telemetry to qualify, and there has to be something transmitting.
(I use that as part of my safety setup when flying drones. If I'm out of cellular connection or my iPad running FlightRadar24 fails, I have a backup self contained plane detection system.)
https://www.euronews.com/next/2021/12/09/retired-man-travels...
I have always planned to make a low-tier version of this for my kid using an old music mixing board
https://www.flightradar24.com/premium
I share ADS-B data, how do I activate my free Business plan subscription?
Please sign up for a free Basic account using the following link using the same email address with which you registered your feed. Once your feed is live, your complimentary Business subscription will be activated.
Regardless you can send your ADS-B data to all of them - ADSB-exchange, adsb.fi, flightradar, flightaware, etc.
That way you get all of the benefits and contribute community data.
I'm going to test it out in an airplane. My map is dynamic, doesn't have to be stationary, and works offline.
I built a little app that processes the data to count how many are flying low over the park nearby, so I can go there when it’s quiet: https://noisy.today/prospect-park/
I reckon if I shelled out for a business plan I could start doing some simple stuff with free tier / extra paid features
They prioritize low-coverage areas (no idea how generous they are for covered areas).
Nearly all of their position data is from these receivers, so you're providing them with more coverage/redundancy for the plane positions.
The hardware is relatively cheap (under 50$) and I don't imagine the business tier costs them much money.
> I reckon if I shelled out for a business plan I could start doing some simple stuff with free tier / extra paid features
You don't need to they'll give it to you for free.
sidenote: You can build your own with an rtl-sdr and a raspberry pi/cheap computer. If you do this you can forward the data to all of the commercial sites for the free perks, and to all of the community sites.
+ a billion!!
It's quite nice the level of positivity, versus some of my other deep technical write-ups which might have a small inaccuracy
Toys are harder to mess up!
On my iPhone SE (2020) the scan-line effect is distractingly low res (1), perhaps because of my lower screen resolution?
1: https://nexus.armylane.com/files/RPReplay_Final1701128035.mo...
I think I know the culprit, my Shader which is applying the CRT effect shouldn't scale the scanlines with screen size, they should be constant sized - I noticed the same issue when you go to the app switcher.
> ”A Learjet at 40,000 feet shows up the same as an AirBus that just took off at London City Airport, however it’s a lot easier to spot the jumbo jet in the real sky.”
When I use FlightRadar24, I actually see different icons for jumbo jets vs Learjets vs prop planes - so they do not show up the same for me.
Maybe the author means altitude is not distinguished per this quote:
> ”I added some simple log scaling to the map annotations using the altitude of the flight so higher up aircraft appear larger on-screen.”
After downloading the app, planes high in the sky overlap/hide planes lower to the ground. I wonder if color coding the planes would have been better than using different size planes to indicate altitude.
Eg brown/green planes mean close to the ground, and blue planes mean high in the sky. Then have all planes the same size, and use different plane icon shapes for distinguishing commercial jet vs private jet vs prop
An MQTT client on an RPi3 (Linux) subscribes to those messages and uses a TTS service (Azure) to generate a wave file. I then use USB audio (this might have been the hardest part) to play it to me while I sit on my patio and watch local planes fly by.
I live near a couple major airports, so most of the planes are easy to spot (~5000 MSL). It's a simple pleasure.
Linux Audio is ALWAYS that hardest part.
Only if you're not using ffmpeg or (c)vlc.
I use it when driving, or via my watch if I hear an unusual plane or helicopter and don't want to pull out my phone.
https://www.icloud.com/shortcuts/92f43e8881ce4291b48b28a4b0b...
Kind of made me think of my dad teaching me to use a compass or looking at star charts with me in the early 90s.
Will try not to toot my own horn, but I think the explicit goal of making it a toy vs making a commercialised product with ads/aggressive paywalling meant I could make something simple that gives nonzero value without any baggage
https://www.flightradar24.com/blog/show-us-your-best-augment...
Also, if I were to build my own local copy, I'd use an RTLSDR to get the ADSB packets direct and base my app on tar1090. https://github.com/wiedehopf/tar1090
If I build and give the kid a display so they can simply stare at it all day without any human interaction... how is that better than the AR on parents phone? It's not, it's worse. (Note, I'm not saying that's what the author actually did, just proposing an option)
The technology here is not the problem. Be in AR or CRT. The problem is how we use it and how we teach our kids to use it.
If I were commercially-minded (I'm not), I'd go full hog on the Mattel approach and carve out the niche as a toy vs an informational product
FWICS there are third-party open source tools for adding live Flight data and logical behaviors to flight simulator applications.
https://fslivetrafficliveries.com/user-guide/ :
> FSLTL is a free standalone real-time online traffic overhaul and VATSIM model-matching solution for MSFS.
(... Til about FlyPadOS3 EFB: An EFB is intended primarily for cockpit/flightdeck or cabin use. For large and turbine aircraft, FAR 91.503 requires the presence of navigational charts on the airplane. If an operator's sole source of navigational chart information is contained on an EFB, the operator must demonstrate the EFB will continue to operate throughout a decompression event, and thereafter, regardless of altitude. https://docs.flybywiresim.com/fbw-a32nx/feature-guides/flypa...)
https://twinfan.gitbook.io/livetraffic/ :
> LiveTraffic is a plugin for the flight simulator X-Plane to show real-life traffic, based on publicly available live flight data, as additional planes within X-Plane. [...]
> I spent an awful lot of time dealing with the inaccuracies of the data sources, see [Limitations]. There are only timestamps and positions. Heading and speed is point-in-time info but not a reliable vector to the next position. There is no information on pitch or bank angle, or on gear or flaps positions. There is no info where exactly a plane touched or left ground. There are several data feeders, which aren't in synch and contradict each other.
...
"Google Earth 3D Models Now Available as Open Standard (GlTF)" (2023) ; land, buildings: https://news.ycombinator.com/item?id=35896176
https://developers.google.com/maps/documentation/tile/3d-til... :
> Photorealistic 3D Tiles are a 3D mesh textured with high resolution imagery. They offer high-resolution 3D maps in many of the world's populated areas. They let you power next-generation, immersive 3D visualization experiences to [...]
GMaps WebGL overlay API: https://developers.google.com/maps/documentation/javascript/...
...
From "GraphCast: AI model for weather forecasting" (2023) https://news.ycombinator.com/item?id=38267794 :
> TIL about Raspberry-NOAA and pywws in researching and summarizing for a comment on "Nrsc5: Receive NRSC-5 digital radio stations using an RTL-SDR dongle" (2023) https://news.ycombinator.com/item?id=38158091
...
"Show HN: I wrote a multicopter simulation library in Python" (2023) https://news.ycombinator.com/item?id=38255362 :
> [ X-Plane Plane Maker, Juno: New Origins (and also Hello Engineer), MS Flight Simulator cockpits are built with MSFS Avionics Framework which is React-based, [Multi-objective gym + MuJoCo] for drone simulation, cfd and helicopters ]
...
"DroneAid: A Symbol Language and ML model for indicating needs to drones, planes" (2020) https://github.com/Code-and-Response/DroneAid https://news.ycombinator.com/item?id=22707347 ... https://github.com/Call-for-Code/Project-Catalog
I always wondered this as well. Apple Maps seems to be much better at this
Thank you for the kudos :)
Every few weeks we have "mean jets" (what our 3 year old calls fighter jets, I think from the Iron Giant) buzz our house near KBJC going in for landing/taking off. They're super loud and often gone before you can get outside to see them (they leave at 400+ kts).
A small gripe, I’m unsure whats the api refresh rate and my kid continues closing and opening the app and then it sporadically gets time outs on the API. That being said, I much appreciate taking the time to release it and blog about it.
Very fair - the OpenSky API has no SLO, so it will sporadically fail to reload. I'm working on better retry logic in V2, and potentially the ability to login with your own OpenSky account (http basic auth)
From the error message it seems that too many HN users are trying it out right now. I will come back later.
I think for V2 I'll allow people to enter their OpenSky credentials, since it allows for basic auth
V3 (unlikely unless this takes off, pun intended) I might look into paid services.
My friend in NSO group is working on hacking the iPhone to pick up transponder signals, watch this space
It was probably my easiest ever article to write, since I was simply coding each evening and adding a few cliffnotes, screenshots, and snippets as I went.
When it came to writing, it was just filling in the blanks :)
https://en.wikipedia.org/wiki/Fire-control_radar
That was a new one for me.
Great write up! Just need to upgrade my iPad OS to give it a spin
You'll get the business tier plans on the commercial sites for free, and you'll feed the community exchanges.
You'll also be getting the data directly, so they aren't censored, and don't rely on the internet.
(no hate to OpenSky though they were very nice and clear to me when I emailed them)
https://austinsnerdythings.com/2021/04/18/moving-my-ads-b-an...
https://austinsnerdythings.com/2021/03/09/receiving-aircraft...
Mine is a webapp 80% generated by GPT that makes a sound when a plane enters a certain radius around the user’s location.
Honestly building a toy for my toddler is some of the most fun I've had coding in years, I can't wait for her to get a little older and start articulate her own ideas
My son can spend hours just waiting for planes landing in SFO.
Baked into this post is a glorious example of excellent fatherhood - taking their kids interests (the good kind) and nurturing and fostering them. Using his talent stack to nurture his daughter's talent stack. Good dude.
- Map Annotations - SwiftUI Metal Shaders (for the CRT effect) - SFSymbol Animations
If I remember anything else I'll mention :)
Sadly those days are long gone now.
This was in the mid 1990s, and the cabin crew invited me to look. I don't think there were many children on the plane.
I have a 1.5yo that’s obsessed with pointing out planes in the sky.
Now we can go plane watching together!
guess maybe 100 million English names on the internet, between 2 and 100 matches, so around 1 in 10 million
BTW. I got bored counting the matches for Jacob Bartlett on facebook. definitely more than 10
Facebook shows dozens of the same name in the general area.
As I've seen some say, if you're one-in-a-million then there's ~7000 people like you out there somewhere!
My name is quite a bit more unique than Bartlett, and I still know of about a dozen people with the same first/last as myself. I thought about setting up an FB group named after us and inviting them all just for funsies. None of us are related as far as we can tell, but the name is unique enough that we probably are, if only distantly.
V2 will allow you to use HTTP basic auth and your own OpenSky account
Later, I took my three kids to Barcelona and Greece. They don't remember the time we took a bus from Athens to the beach and they were rolling around on the dirty floor of a bus, but they do remember the Abba-themed wedding.
Those experiences matter.
I _still_ remember all that travel too. It was different enough to make a lasting impression.
99% of our life is spent in the same 2 sqkm area, so it’s not super surprising that everything else is different.
I've said that it doesn't matter if they remember it. It's much more important that they experience it.
You can only experience Rome as a four-year old when you are four years old, there is no chance of getting that experience ever again their lives. They can experience Rome again, and again as an adult if they want, but being 4, 8, 12 or teenager at new place is not something that anyone has a chance of ever repeating.
They remember somethings, forget others, but come away with an interest in people, places, environments, etc.
Our niece supposedly remembers life before our oldest. She was 3 when she was born. I think a big difference though is she had the continual disappointment from then on of not being the only grandchild.
What do they remember? Almost nothing before they were 10 years old. A core memory here or there, but they can't even recall entire trips from then. But I've always just considered it as part of their development. Maybe they don't have actual memories, but who can say how else it developed their brains?
My 5yo regularly flies across the world back to my home country, but it’s just another place to him. The important thing is that his uncle is there, not that it’s on the other side of the world.
There’s no concept of going to the other side of the world, beyond it taking ”a very long time” to get there. And why would it? The plane might as well be a teleporter.
The first time we traveled internationally with our kids (a 5-year-old and nearly-2-year-old twins), my wife and I assumed the kids wouldn't really care, but we'd go anyway because we didn't want to give up international travel for a few decades just because we have kids.
They absolutely loved it. Now the 5-year-old is 15, they've been joined by a couple more siblings, and (Covid-execepted) we've gone on at least one international trip every year.
One of my favorite lines from one of my favorite books is in "A River Runs Through It" when the narrator says, "When I was young, a teacher had forbidden me to say "more perfect" because she said if a thing is perfect it can't be more so. But by now I had seen enough of life to have regained my confidence in it."
I recently went through a decade of photos to see if I could unearth memories of the "more perfect" moments in my life. Nearly all of them were on those trips with my kids.
There's something uniquely "us against the world" about international travel as a family. Not that we approach the world antagonistically, but just in that traveling across borders, and making our way through airports, and figuring out unfamiliar mass transit systems, and navigating unfamiliar cities in languages we don't speak requires a level of coöperation we're not usually called upon to exhibit as a family.
I'm sure there are times it's brought out the worst in us, but they're far, far outweighed by the times it brings out the very best parts of being a family.
For the coming summer I've promised to get the two oldest (now 18 and 15) plane tickets to Madrid, Interail (Eurorail) passes, and flight back to US from Helsinki 3 or 4 week later. They'll figure it out, have fun and hopefully don't do too much dumb stuff. Way to bond before the oldest one leaves to college. The middle one gets to do similar trip again in 3 years when he graduates with his younger brother; who in turn will have his trip one year later (hopefully his oldest brother will be available to join him so that everyone will end up with 2 trips with each of their brothers).
And she'll forever remind you how your app [name] is a lie.
I think certianly the toddler-based inspo made it easier to turn into a simple toy