Crewed aircraft on 1090 MHz. Drones broadcasting ASTM F3411 RemoteID. Vessels on AIS. Amateur stations on APRS. Voice traffic on Marine VHF, NOAA weather radio, CB, GMRS-FRS, and MURS. 3D Map Explorer wraps proven demodulators - readsb, dump978, rtl_ais, rx_fm, multimon-ng, rtl_433 - and folds every decoded track, packet, and alert into a single common operating picture. Receive-only by design.
Purpose-built for UAS operations and wildland fire, where seeing crewed aircraft, FAA TIS-B re-broadcasts, and drone RemoteID on one screen is safety-critical. The app owns the demodulator lifecycle, fans decoded tracks to the map over SSE, and persists rolling history to DuckDB.
// one workstation โ every RF source, one API GET /api/sdr/tracks/events โ SSE: live ADS-B / RemoteID GET /api/aprs/stations/events โ SSE: APRS positions GET /api/aprs/messages/events โ SSE: bulletins + messages GET /api/audio/stream โ chunked audio/mpeg (live MP3) GET /api/audio/alerts/events โ SSE: decoded SAME/EAS alerts GET /api/spatial/sdr/collections โ OGC API Features (QGIS/Pro) โ receiving bands 1090 ยท 978 ยท 144.39 ยท 156โ162 MHz ยท rx-only
Each source is a saved receiver you start and stop from an in-map panel - status dots, message counts, and errors refresh live.
readsb / dump978 decode 1090 and 978 MHz; ASTM F3411 OpenDroneID rides the 1090 extended squitter, so one receiver covers airliners, GA, and UAS deconfliction. Trails show the last 30 positions; stale tracks prune at 60 s.
Marine vessel tracking via rtl_ais with an NMEA VDM/VDO decoder - maritime traffic joins aircraft and drones on the same 3D scene.
144.390 MHz (US) / 144.800 MHz (EU) at 1200 baud AFSK via rx_fm + multimon-ng, plus a global APRS-IS internet feed that never competes for the tuner. Decodes positions, weather stations, operator-placed objects, and messages with bulletin alerting.
Marine VHF (Ch 16 distress), NOAA Weather Radio WX-1..7 with SAME/EAS decode, CB (Ch 9 emergency), GMRS-FRS, and MURS. One HackRF priority-scans the watchlist and streams live MP3 straight to the browser.
Weather stations, TPMS, ERT, and alarm/motion sensors captured passively from the ISM bands and folded into the sensor picture.
Regional conditions, forecasts, and NWS alerts, alongside OGC SensorThings / SOS / GTFS / MovingFeatures feed subscriptions for non-RF live sources.
One SDR is one tuner: ADS-B, APRS RF, and audio scanning share a single HackRF, so run one RF module at a time per device (or add a second SDR). APRS-IS runs tuner-free. All modules are receive-only - no transmit capability exists in the product.
Each module persists rolling history to its own DuckDB file - sdr.duckdb, aprs.duckdb - registered with the embedded server, so the existing OGC API Features, vector-tile, and ESRI FeatureServer facades serve RF history with no extra code.
/api/spatial/sdr/collections or the /api/spatial/sdr/FeatureServer facade.โฆ/collections/tracks_1090/tiles/{z}/{x}/{y}.mvt for fast rendering of dense track history.-- rolling RF history, served through standard facades SELECT * FROM sdr.tracks_1090_history -- append-only UNION SELECT * FROM sdr.tracks_978_history; -- UAT band GET /api/spatial/sdr/FeatureServer โ ArcGIS Pro GET /api/spatial/aprs/collections โ QGIS (OGC API) GET /api/spatial/sdr/collections/tracks_1090 /tiles/{z}/{x}/{y}.mvt โ vector tiles โ registered dbId sdr, aprs ยท retention 24h / 168h
Plug in an SDR, add a receiver from the in-map panel, and watch aircraft, drones, vessels, and radio traffic populate the same 3D scene your mission data lives on.