★ New · feat/bvlos-awareness

Beyond visual range — and you still know the picture.

For BVLOS, the operator can't see the aircraft. 3D Map Explorer fuses every contact source into one beyond-visual-range picture, samples the terrain along the GCS↔aircraft path to tell you whether the radio link clears the ridge, and flags closing traffic for deconfliction. The two questions a BVLOS operator actually needs answered, on one map.

Fused traffic pictureRemote IDMAVLink own/friendly ADS-B crewedDEM comm-link LOSClosing-rate deconflictionProximity alerts (SSE)
The fused picture

Four contact sources, one normalized overlay.

BvlosService folds three live stores — Remote ID, MAVLink (own-ship + friendly), and ADS-B (crewed, via SDR/Beast/SBS1) — into a single picture, normalized into one contact shape. Any source is optional; the picture renders with whatever's available.

  • Own-ship — the primary MAVLink system the GCS controls (exactly one).
  • Friendly UAS — a second system id on the MAVLink link.
  • Remote ID — Network Remote ID UAS broadcasts.
  • ADS-B — crewed aircraft via 1090/978 SDR or remote feed.
GET /api/bvlos/picture?gcsLat&gcsLon
// normalized contact — source-tagged
{
  "id": "DAL488",
  "kind": "Adsb",
  "rangeM": 1840,
  "closingKt": 42,
  "threat": "Warning"
}
→ red overlay + SSE proximity alert
BVLOS picture with fused traffic contacts, DEM comm-link LOS profile, and deconfliction alerts
The two differentiators

Deconfliction + terrain-sampled comm-link

Two capabilities sit on top of the fused picture — and they're the ones that actually matter when the aircraft is over the horizon.

⚠️

Traffic deconfliction

Per non-own-ship contact: range + bearing + closing-rate → threat level. Caution within radius; Warning when closing.

📶

Comm-link LOS

Samples the registered DEM along the GCS↔aircraft great-circle path — does the radio/telemetry link clear the terrain?

🚨

Proximity alerts

Enter/exit edge detection on threat-level changes → SSE fan-out at /api/bvlos/events.

🎨

Overlay coloring

Yellow = Caution, red = Warning — driven straight from the deconfliction classifier.

🔧

Configurable radii

CautionRadiusM / WarningRadiusM tune to airspace class or mission profile.

🧩

Graceful sources

Each feed optional; absent sources don't break the picture — it renders with what's live.

REST API surface

Wire the picture into your crew station

CapabilityEndpointNotes
Capability discoveryGET /api/bvlos/capabilitiesWhich feed sources are live
Fused pictureGET /api/bvlos/pictureNormalized contacts (?gcsLat&gcsLon)
Traffic listGET /api/bvlos/trafficPer-contact range/bearing/closing/threat
Comm-link LOSGET /api/bvlos/commlinkDEM path profile GCS↔aircraft
Active alertsGET /api/bvlos/alertsCurrent proximity alerts
Live alerts (SSE)GET /api/bvlos/eventsEnter/exit edge-detection stream
SchemaGET /api/bvlos/schemaContract for integrators

Fusion + deconfliction reflect BvlosService on commit 5e21700c4 (feat/bvlos-awareness). Comm-link LOS accuracy depends on the registered DEM resolution. This is situational-awareness tooling, not a certified detect-and-avoid system.

Part of the UAS loop

Plan → Preflight → Fly → Process → Exploit

Over the horizon, not in the dark

Fused traffic, terrain-sampled comm-link line-of-sight, and closing-rate deconfliction — the BVLOS picture a crew station needs.