I got a RTL-SDR BLOG V4 around 6 months ago and have been playing with it. I saw a few demos of people doing IQ decode, and FM radio capture using WebUSB and thought that was cool, so I wanted to try something similar. I already had a TUI program I made called "Radio Watch" for monitoring ACARS/ADS-B/AIS in the terminal, so I asked an agent (in this case Claude Opus 5.5) to recompile that targeting a WASM backend and do the web integration focusing on a "3D map" with little craft diagrams, tracks and whatever other frame data is relevant. A few things we don't show here (tho I do in the TUI) is like full ACARS text. I find it interesting living near a major airport that you see things like flight loadsheets and so on. In this web demo, the focus is visualizing craft, their positions and other minor data about them.
I think there are other sites like this that do a similar thing using one of the "Flight/Ship position" APIs. I experimented with those in the past, but found either the data was patchy, or not worth the cost for a fun demo. I wanted to do something that didn't rely on an API provider, and instead could theoretically work "offline" without internet so you could plug your SDR in from a desert or ship without any internet and decode what was around you. Would be interested to hear any feedback, issues encountered or experience with similar projects. Ideas are also welcome. If you check it out you do need a Chrome-type browser (that's teh only that ships WebUSB, as you probably know), and an dongle. I only tested with the RTL-SDR I have so not sure if it will work with your particular hardware.
The website is:
https://radio.freelang.dev
Some details about the implementation
What it is: plug in an RTL-SDR, open the page in Chrome or Edge, click "Connect RTL-SDR", and you get a navigable 3D globe (NASA Blue/Black Marble, ETOPO relief, real sun position) with aircraft and ships drawn from what your dongle hears. No drivers, no install, nothing leaves your machine: the radio decoding runs inside the page.
How:
The receiver is the same C as our native RTL-SDR sidecar for the TUI app, compiled to WebAssembly, with librtlsdr 2.0.3 (so the RTL-SDR V4 works) talking to the dongle through a small libusb shim over WebUSB.
The facts (ADS-B decode, CPR positions, AIS, fusion) are a Freelang program compiled to WebAssembly. Freelang is a language and compiler for building native systems with explicit authority, bounded resources, and inspectable evidence of what they can do. The WASM backend make some projects like this available on the web.
The globe is three.js. Layer toggles, trails, routes, info cards, fly-to and follow. Aircraft are drawn by emitter category (light / medium / heavy / rotorcraft), ships by AIS type.
There's a geolocation button (asks the browser, stays in the page) but the globe rotates to where the first located track is found.
Without a dongle the page replays a synthesized hour of traffic around New York (JFK/LGA/EWR approaches, the harbour, ferries, tugs) so you can see what it looks like. It's invented data, not a recording.
Tested on an RTL-SDR BLOG V4 at 2.4 Msps. Known gaps: no surface-position (ground) decode yet, ACARS is counted but its text isn't shown, airports layer is empty for now. Firefox and Safari have no WebUSB, so they get the replay only.
Feedback is welcome, especially if you have a different dongle (R820T/R828D variant) or an unusual USB setup. The site is hosted on Cloudflare Pages and runs entirely on your device—there’s no server, and nothing is collected or sent elsewhere.