From a 1090 MHz broadcast to a threat picture
Every airliner, business jet, helicopter and many drones announce themselves on 1090 MHz. The hard part is not collecting those dots, it is answering the real questions about your patch of sky: what is that aircraft, is it behaving normally, and is anything pretending to be something it is not. This is written for anyone evaluating the platform, researchers, and engineers. It cannot see aircraft that do not broadcast ADS-B, and it is not built for navigation or air-traffic control. Here is exactly how AeroScope does it.
The end of the pipeline is a 3D picture
After the fusion, scoring and anomaly stages run, the result lands on screen as a live instrument HUD over your position, a rotating radar dome, an animated altitude histogram, and a drag-to-explore situational globe with connection arcs to the contacts that matter. Rendered entirely client-side with three.js.



See it · Identify it · Detect deception · Stay protected
AeroScope is built around four questions an observer actually asks when something flies overhead. Everything in the platform maps back to one of them.
1 · See what's above you
Pick any point on Earth, your home, an airport, a border. AeroScope pulls live traffic for that exact area and glides every aircraft smoothly across the map at its true ground speed.
OBSERVER-RELATIVE2 · Know what it is
Registry lookups, type and operator, military hex ranges, emergency squawks and Remote-ID drone signatures turn an anonymous dot into an identified airframe with context.
ENRICHED3 · Spot the spoof
A DO-260B-style integrity check plus a Kalman innovation test and self-consistency residuals expose messages that contradict physics or their own integrity fields, the signature of spoofing.
INTEGRITY4 · Be alerted in time
Geofences, emergency-squawk triggers and a transparent 0–100 attention score push the few aircraft that matter to the top, so you watch the sky, not a spreadsheet.
REAL-TIMEA two-tier loop: always moving, always analysing
A lightweight position refresh keeps markers gliding every few seconds, while a heavier enrichment-and-detection pipeline runs on its own cadence, so deep analysis never freezes the map.
Ingest
crowdsourced ADS-B feeds, fetched per active map region.
→Fuse
De-duplicate by ICAO 24-bit address; reconcile the same airframe seen by several ground networks.
→Enrich
Registry, Kalman tracks, DO-260B integrity, pattern-of-life and the 8-factor attention score.
→Detect
Six independent detectors vote; a flag fires only when at least two agree.
→Serve
WebSocket + REST to a client that dead-reckons each marker for continuous motion.
→The detection layer is deliberately built from established, auditable libraries. River, scikit-learn, pykalman, OpenAP, stumpy and PyOD, not an opaque neural network. Every flag traces back to the features that produced it. There is no PyTorch and no reinforcement learning in the deployed system; an earlier RL prototype was evaluated and retired in favour of this transparent stack.
Most trackers answer "where is flight X?". AeroScope answers "what is over me?"
Conventional flight trackers are built around the journey of a named flight. AeroScope inverts that: you fix a location, and the platform continuously evaluates everything within range of it. That single change is what makes spoofing detection, drone-candidate flagging, restricted-airspace proximity and pattern-of-life analysis meaningful, they are all relative to a place you care about.
- Distance and bearing from your point are computed for every aircraft, every cycle.
- Proximity alerts fire when traffic enters a circle or polygon you draw.
- Emergency squawks (7500 hijack, 7600 radio failure, 7700 general emergency) are surfaced the moment they appear nearby.
- Exports (CSV / JSON / GeoJSON) capture exactly what was overhead, when, reproducible, not a black box.