Eyrie · for Smart Cities, campuses, critical infrastructure, US healthcare & defence-adjacent
Find anyone or anything across all your cameras in seconds, and produce a tamper-evident evidence bundle engineered to meet the technical admissibility requirements — for Smart Cities, corporate campuses, manufacturing plants, critical infrastructure, US healthcare and defence-adjacent customers. Tamper-evident chain of custody, multi-VLM consensus voting, cross-camera ReID, DPDP / GDPR / HIPAA DSAR endpoint, six region compliance presets, plus audio event detection, 3D scene reconstruction, drone-camera ingest, cross-site federation and LiDAR fusion — every one backed by code, not a marketing slide.
Reference implementation / pilot-ready. Core forensic, search, compliance and ReID modules run today on real architecture; the six capability extras (audio · 3D · drone · federation · LiDAR) ship as protocol-complete integrations with deterministic stub adapters — production model and sensor adapters (YAMNet, Gsplat, DJI MSDK, Ouster SDK, etc.) plug in at the M1 / M2 / M3 milestones.
01 — Eight USPs, head-to-head
Every USP below names a specific incumbent feature and explains how Eyrie matches it, enhances it, or fills the gap they left open. Drawn from a feature-by-feature pass across Avigilon, Verkada, Genetec, Milestone, Ambient AI, Coram, Spot AI, HikCentral, Vehant and Innefu — every claim is backed by a working module in the open repository.
vs Avigilon Appearance Search / Verkada Cross-Camera Tracking
Avigilon's Appearance Search needs Avigilon cameras and matches by visual similarity only. Verkada's tracking is locked to Verkada hardware. Eyrie indexes CLIP-style keyframe embeddings from any ONVIF feed — an analyst types "red helmet near gate after 14:00" and gets ranked hits. Target: < 300 ms ranked-query latency (design goal on a single-box index; not yet independently benchmarked). Vendor-agnostic, natural-language, multilingual.
vs Ambient.ai / Coram single-model summarisation
Ambient.ai and Coram pass the keyframe to one VLM and return its answer with confidence theatre. Eyrie runs the same question through Qwen2.5-VL-72B, InternVL3-78B and Gemini 2.5 Pro in parallel, returns the consensus, and falls back to "no consensus — operator review required" when the models disagree. The disagreement itself is logged and signed.
vs typical mutable audit logs
Where many systems store the audit trail as ordinary, editable database rows, Eyrie chain-signs every search, every VLM query, every retention sweep with Ed25519 and ships a one-call evidence bundle (tar.gz with manifest + chain of custody + snapshots + verify key) engineered to satisfy the technical requirements — hash, algorithm, chain of custody, device identity, operator — set out in NIST SP 800-86, the proposed US FRE 707 (proposed, not enacted), and India's Bharatiya Sakshya Adhiniyam §63. Admissibility in any proceeding is determined by the court.
vs Verkada / Avigilon hardware lock-in
Verkada cameras only talk to Verkada Command. Avigilon analytics need Avigilon cameras. Eyrie speaks ONVIF Profile T (streaming) and Profile M (metadata / analytics) out of the box — Axis, Hanwha, Bosch, Vivotek, Uniview all plug in, typically a fraction of proprietary per-channel cost. Zero rip-and-replace.
vs Avigilon's proprietary appearance embeddings
Avigilon and Verkada ship closed embeddings, hidden thresholds, and an unauditable confidence number. Eyrie uses PersonViT — open weights, retrainable on your population, cosine threshold (0.78 default) in the docs, per-match similarity exposed in the API so operators can argue the evidence on its merits.
vs Milestone plugin / Genetec paid GDPR module
Verkada has no DSAR API. Milestone needs a custom plugin; Genetec sells Privacy Protector as a paid add-on. Eyrie ships POST /v1/dsar/request in the open core — query by plate, face hash or identity and the response returns every detection, track, behaviour event and keyframe under that subject — itself audit-signed, ready to mail to the regulator within the DPDP 30-day window.
vs Verkada / Ambient.ai cloud-only
Verkada and Ambient.ai are cloud-only: footage leaves your site, the bill is per-camera-per-month-forever, and outages cut you off from your own evidence. Eyrie runs on a single Linux box on-prem, a Jetson Orin Nano at the edge, or a Hailo-15L appliance — and the same binary scales to a hosted cloud tier when you choose. Data residency follows your policy, not the vendor's data centre.
vs Silent detector degradation, across every incumbent
Across the field, when a detector silently degrades after a firmware update or lens fog, the operator finds out from a missed incident. Eyrie keeps a 7-day rolling baseline per camera and flags any drop or spike past the configured thresholds (≥ 20% / ≥ 50% by default) as warning / critical in the ops dashboard, with the affected window exportable to your retraining pipeline.
02 — Capability horizon · pulled forward from the M2 / M3 roadmap
Across the incumbents we surveyed (Genetec, Milestone, Verkada, Avigilon, Ambient.ai, Coram, HikCentral, Vehant, Staqu), these six are absent from the base offering. We built each as protocol-complete architecture + deterministic stub adapters + storage + REST + audit-chain integration. These are integration-ready, not production detectors yet: the production model and sensor adapters (YAMNet · Gsplat · DJI MSDK · Ouster SDK · etc.) plug in behind the protocols at the M1 / M2 / M3 milestones. Treat them as pilot-ready reference integrations, not finished diagnostics.
vs single-mode visual-only incumbents
Six audio-event kinds (gunshot, glass-break, shouting, alarm-siren, scream, explosion) with severity auto-mapped from kind. Multi-model consensus voting on the audio side — same family as USP-2. Production adapters (YAMNet / AST / PaSST) plug in behind the same Protocol; ships today with stub adapters. Uses the IP camera's built-in mic; no extra hardware needed for most zones.
vs cloud surveillance with weak PHI handling
Sixth region compliance preset shipped in the capability horizon. Settings derived from 45 CFR §164: §164.530(j) 6-year retention, §164.502(b) minimum-necessary 1-hour PII-hash window, §164.524 30-day DSAR SLA, §164.312(b) exhaustive audit verbosity. BAA required for hosted-tier deployments. Opens the US-hospital segment.
vs flat 2D-only review tools
Queue a window of recorded video; the reconstructor produces a navigable 3D scene plus per-camera poses. Court-ready scene replay engineered for the evidence bundle; post-incident analyst fly-through; multi-vendor evidence-bundle attachment. Adapter slots for Gsplat, Nerfstudio, COLMAP+gsplat. Target: a Tier-3 / Tier-4 GPU handles 30-minute × 16-camera jobs in roughly the same wall-clock window (design goal; hardware- and scene-dependent).
vs fixed-camera-only incumbents
Drones modelled as cameras plus moving extrinsics (GPS + gimbal pose, 10 Hz typical telemetry rate). Adapter slots for DJI MSDK, Parrot Ground SDK, Autel LiveDeck, Skydio API, custom PX4 / MAVLink. Registration requires a licensed pilot id (DGCA RPC in India, FAA Part 107 in US). Telemetry timeline persisted alongside the video stream.
vs covert, ungated hotlist exchange
Federation between operators requires all three: written consent (SHA-256 doc hash stored), valid court warrant (doc hash + court + expiry tracked), and two distinct attesting operators. Every query is audit-signed on both sides; revocation is one call. Operating principle 02 is enforced at the storage layer.
vs camera-only perimeter analytics
Project a 2D detection bbox into 3D space via the camera-LiDAR mount extrinsics. Output: median range, nearest range, apparent height / width, 3D target position, confidence. Adapter slots for Velodyne, Ouster, Hesai, Livox, Quanergy. Turns "person detected in frame 1" into "person at 23.5 m, height 1.7 m, closing 1.2 m/s".
Where this sits on the roadmap. M2 and M3 capabilities (originally 6–12 and 12–24 months out) are already architected and in the codebase, with 280 software tests passing and the protocols ready for production model and sensor adapters. What remains for these six is the production-adapter and certification work (e.g. STQC ER documentation and sign-off, pilot validation) — the integration surface is built; the production detectors and live connectors land at the named milestones.
03 — Operating principles
These aren't capability gaps — they're stated commercial policy, written into our contracts. We list them up front so procurement officers, DPOs and civil-liberties counsel know the rails before they start an RFP. If your use case needs any of the three, Eyrie is not the right tool.
— refusal · 01
Cross-camera person re-identification runs against operator-confirmed identities only. Mass FR against the public requires a written policy file with an attesting officer — neither shipped at GA. Differentiates from Innefu / NEC / Hikvision.
— refusal · 02
Operators can opt into federated hotlists only with both written consent AND a valid court warrant. The "network hotlist" model is intentionally not replicated. Enforced at the storage layer by the federation module.
— refusal · 03
Eyrie surfaces what happened, not what we predict might happen. Anchors Smart City conversations away from political risk. Differentiates from Palantir / Predpol.
04 — Competitive matrix
Capabilities across nine incumbents, compiled from publicly available product information. The shaded column is Eyrie. The bottom six rows are capability extras pulled forward from the originally-planned M2 + M3 roadmap and ship as integration-ready (stub-adapter) modules, not production detectors yet; among the listed incumbents we found none shipping these at base parity. All product names are trademarks of their respective owners.
Legend — ✓ supported · — not supported · partial partially supported / paid add-on.
| Capability | Genetec | Milestone | Avigilon | Verkada | Ambient AI | Coram | Spot AI | HikCentral | Vehant / Staqu | Eyrie |
|---|---|---|---|---|---|---|---|---|---|---|
| OEM authorisation for Indian tenders | — | — | — | — | — | — | — | — | via reseller | ✓ direct, DSC-signed |
| On-prem deployment | paid | ✓ | ✓ | — | — | — | — | ✓ | ✓ | ✓ default |
| ONVIF Profile T + M native | ✓ | ✓ | S/T/G | proprietary | ingest | ingest | ingest | ✓ | ✓ | ✓ native |
| Cross-camera ReID | + paid | marketplace | Appearance Search | + cloud | + | + | + | + | — | ✓ open |
| Free-text forensic search | — | — | — | + cloud | + | + cloud | + cloud | — | — | ✓ on-prem CLIP |
| VLM Q&A (2026-class) | — | — | — | — | proprietary | — | — | — | — | ✓ Qwen2.5-VL local |
| Multi-VLM ensemble voting | — | — | — | — | — | — | — | — | — | ✓ |
| Tamper-evident chain of custody | partial | partial | partial | — | — | — | — | — | — | ✓ Ed25519 |
| Two-operator rule | — | — | — | — | — | — | — | — | — | ✓ |
| Vendor-agnostic edge | partner-lock | partner-lock | Avigilon HW | Verkada cams | — | — | — | Hikvision | — | ✓ Jetson + Hailo + x86 + Pi |
| DPDP / GDPR DSAR endpoint | — | — | — | — | — | — | — | — | — | ✓ |
| Region compliance presets | — | — | — | — | — | — | — | — | — | ✓ six (incl. HIPAA) |
| STQC ER (India 2026) | — | — | — | — | — | — | — | — | partial | ✓ |
| Drift detection | — | — | — | — | — | — | — | — | — | ✓ |
| Mass-FR refusal (stated) | — | — | — | — | — | — | — | — | — | ✓ |
| Pulled forward from M2 / M3 roadmap · integration-ready (stub adapters), production detectors land at milestones | ||||||||||
| HIPAA preset (45 CFR §164) | — | — | — | — | — | — | — | — | — | ✓ integration-ready |
| Audio event detection (gunshot / glass-break / shouting) | — | — | — | — | partial | — | — | — | — | ✓ integration-ready |
| 3D scene reconstruction (Gaussian Splatting on archive) | — | — | — | — | — | — | — | — | — | ✓ integration-ready |
| Drone-camera ingest (DGCA / Part 107-gated) | — | — | — | — | — | — | — | — | — | ✓ integration-ready · 5 adapter slots |
| Cross-site federated identity (consent + warrant) | — | — | — | — | — | — | — | — | — | ✓ integration-ready · 2-op gated |
| LiDAR fusion (2D bbox → 3D position) | — | — | — | — | — | — | — | — | — | ✓ integration-ready · 5 adapter slots |
05 — Show, don't tell
Open the repository, run the smoke test (~2 s end-to-end on a stock laptop), then run the seven worked examples plus the new capability-module references below. 280 software tests pass (pipeline / integration — a measure of plumbing, not of model accuracy or recognition rates). There's no demo video, no recorded webinar between you and the code. The repository is private during the pilot phase — request code access and we'll grant read access so you can self-serve.
# 1. Tamper-evident evidence bundle (USP-3) from eyrie.forensic import build_evidence_bundle, BundleScope build_evidence_bundle( storage, organization_id=1, scope=BundleScope(behavior_event_ids=[42], search_log_ids=[7], vlm_query_log_ids=[3]), exported_by="DPO-1", legal_basis="warrant 2026-05-19; case CR/120/2026", out_path="CR-120-2026.tar.gz", audit_keypair=kp, ) # 2. Multi-VLM consensus (USP-2) from eyrie.search import EnsembleVlmAdapter ensemble = EnsembleVlmAdapter([qwen25vl, internvl3, gemini25]) ans = ensemble.ask_detailed(prompt="describe gate 4 at 13:08", image_paths=refs) # ans.confidence ∈ {unanimous, majority, no_consensus} # 3. HIPAA preset — 6-yr retention, 1-hour PII hash, BAA-gated from eyrie.compliance import CompliancePreset, policy_for p = policy_for(CompliancePreset.HIPAA) # retention=2190d, hash-after=1h, FR=off, BAA-gated # ============ Capability horizon — M2 / M3 pulled forward ============= # 4. Audio event detection — gunshot / glass-break / shouting from eyrie.audio import EnsembleAudioDetector ens = EnsembleAudioDetector([yamnet, ast_local, passt]) verdict = ens.classify(fp) # {unanimous, majority, no_consensus} # 5. 3D scene reconstruction (Gaussian Splatting on archive) from eyrie.reconstruction import request_reconstruction jid = request_reconstruction( storage, organization_id=1, window_start=t0, window_end=t1, camera_ids=[1, 2, 7, 8], requested_by="analyst-1", ) # run_reconstruction outputs .splat + camera_poses.json # 6. Drone-camera ingest (DGCA / Part 107 pilot-id gated) from eyrie.drones import register_drone, ingest_telemetry drone = register_drone( storage, organization_id=1, site_id=2, drone_name="Sentinel-1", serial_number="DJI-M30T-001", pilot_id="DGCA-RPC-99887", drone_kind="dji", home_lat=18.52, home_lon=73.85, home_alt_m=560.0, ) # 7. Cross-site federated identity (consent + warrant + 2-op) from eyrie.federation import create_agreement, query_identity agreement = create_agreement( storage, organization_id=1, peer_organization_name="ICCC-Mumbai", consent_document_bytes=consent_pdf_bytes, warrant_document_bytes=warrant_pdf_bytes, warrant_issuing_court="Bombay High Court", warrant_expires_at=expiry, attesting_operator_a="op-a", attesting_operator_b="op-b", ) # 8. LiDAR fusion — 2D bbox → 3D position from eyrie.lidar import register_sensor, fuse_detection_with_scan sensor = register_sensor( storage, organization_id=1, site_id=2, name="velodyne-1", vendor="velodyne", model="VLP-32C", ip_address="10.0.5.21", range_m=200, points_per_second=1_280_000, paired_camera_id=cid, ) result = fuse_detection_with_scan( detection_id=det.id, bbox_xyxy=det.bbox, frame_size=(1920,1080), sensor=sensor, scan=latest_scan, ) # result.median_range_m, result.target_position_xyz, result.confidence
→ 280 software tests (pipeline / integration) · 2.45 s · examples/01-09 cover every USP and capability extra
06 — Start
The eight USPs plus the six (integration-ready) capability extras are all in code. The competitive matrix is auditable. 280 software tests pass — request early access and we'll walk you through the test suite live, on your own corpus if you can share one. Reference implementation / pilot-ready; production model and sensor adapters land at the named M1 / M2 / M3 milestones.