★ New · feat/c-uas-detection

Know which drone is hostile — before you act.

3D Map Explorer's C-UAS module ingests radar tracks pushed to a webhook, runs a conservative, rule-based threat assessment against your protected assets, and correlates each detection against live Remote ID — so a drone broadcasting a friendly ID is de-escalated, not engaged. False "hostile" is costly; the classifier is deliberately conservative.

Radar webhook ingestRule-based threatProtected assets C-UAS ↔ Remote IDThreat de-escalationSSE detection fan-outEvent-driven (no poll loop)
How it works

Radar pushes, the platform assesses, Remote ID de-escalates.

There is no poll loop. The realistic Phase-1 detection source is an external radar pushing tracks to POST /api/cuas/radar, so the service is event-driven: each ingested detection is assessed, correlated against Remote ID, folded into the threat store, and fanned out over SSE.

  • Threat assessment — rule-based + conservative. FixedWing types escalate faster; consumer types stay Suspect near an asset and Unknown otherwise. A false "Hostile" is treated as costly.
  • C-UAS ↔ Remote ID — a detection correlated with a broadcasting Remote ID track is de-escalated, on the assumption a cooperative drone is not the threat.
  • Protected assets — define geofenced assets; proximity to an asset escalates the threat level.
POST /api/cuas/radar
// radar pushes a track
{ "lat": 34.05, "lon": -118.25,
  "type": "FixedWing", "speedKt": 55 }
→ assessed + correlated + fanned out
{
  "id": "R-1042",
  "threat": "Hostile",
  "correlatedRemoteId": null
}
// → correlated Remote ID would de-escalate to Friendly
Counter-UAS overlay with threat-colored detections, protected-asset zones, and Remote ID correlation panel
The assessment model

Conservative by design

A false "Friendly" lets a real threat through; a false "Hostile" triggers a costly response. The classifier is tuned to avoid crying wolf — type, speed, and asset-proximity drive escalation, and a Remote ID correlation is the strongest de-escalator.

✈️

Type-aware

FixedWing escalates faster than consumer quadcopters — type inferred from the radar track.

🏛️

Asset proximity

Detections inside a protected-asset zone escalate; consumer types stay Suspect there.

🪪

Remote ID de-escalation

A correlated broadcasting Remote ID track de-escalates the detection toward Friendly.

📡

Threat store

Each detection persisted, ordered by threat then id for the operator's track table.

🔔

SSE fan-out

Live detections streamed to subscribers; never blocks the ingest path.

🧪

Test injector

POST /api/cuas/detections/test for drills and demonstrations.

REST API surface

Ingest, query, protect

CapabilityEndpointNotes
Capability discoveryGET /api/cuas/capabilitiesIngest + Remote ID correlation health
Radar ingest (webhook)POST /api/cuas/radarExternal radar PUSHES tracks here
DetectionsGET /api/cuas/detectionsThreat-ordered track table (?staleSec)
Live detections (SSE)GET /api/cuas/eventsReal-time fan-out
Clear detectionsPOST /api/cuas/detections/clearReset the threat store
List / add assetsGET · POST /api/cuas/assetsProtected-asset zones
Delete assetDELETE /api/cuas/assets/{id}
Test detectionPOST /api/cuas/detections/testDrill / demo injector

Ingest + correlation reflect CuasService + CuasAssetStore on commit e79bb88b9 (feat/c-uas-detection). Phase-1 detection source is radar PUSH; RF-based C-UAS detection (protocol fingerprinting, RF geolocation) is a Phase-2 item. Remote ID de-escalation assumes cooperation — a spoofed ID is not modeled.

Part of the UAS loop

Plan → Preflight → Fly → Process → Exploit

Defend the asset, spare the friendly

Radar-webhook ingest, conservative threat assessment, protected-asset zones, and Remote ID de-escalation — the C-UAS picture with the friendly fire filtered out.