UNIVIP — Universal Vehicle Interoperability ProtocolLink to the section UNIVIP — Universal Vehicle Interoperability Protocol
On this page
Status: Working draft 0.2.0 · Date: 2026-10-15 · Audience: uncrewed-vehicle vendors (aerial, underwater, surface, ground), VMS developers, system integrators, standards bodies · Web: univip.org
An open interoperability standard that enables any compatible uncrewed vehicle, aerial or underwater, surface or ground, to connect with any compatible Video Management System (VMS), stream live video and time-synchronized telemetry, publish operational events, and expose standardized camera and authorized vehicle-control capabilities.
UNIVIP is to uncrewed vehicles what ONVIF is to fixed IP cameras: a vendor-neutral profile that lets a VMS discover, authenticate, view, record, map, and (when authorized) control a drone, ROV or rover without a manufacturer-specific integration.
The specification uses domain-neutral vocabulary (vehicle.* commands, vehicle_state, depth as well as altitude). Version 0.2 defines conformance tests for the aerial domain only; underwater, surface and ground members are specified and reserved until an implementer in that domain joins (see ADR-0007). The name was chosen on 2026-10-14 from the shortlist in docs/naming.md; the domain univip.org is owned by the project and the website is generated from this repository (see site/README.md); trademark registration is pending.
Why this existsLink to the section Why this exists
New to UNIVIP? Start with the diagrams and a worked example, then use the specification for the exact requirements.
Several standards already solve parts of the problem. ONVIF covers video, metadata, events and PTZ for cameras. MAVLink covers vehicle state and commands. MISB ST 0601 carries geospatial metadata alongside motion imagery. STANAG 4586 defines UAV control levels. DJI and Skydio ship capable but proprietary cloud APIs.
What is missing is a single, testable, vendor-neutral profile that brings video + synchronized position + health + events + camera control + optional, permissioned vehicle control to conventional VMS platforms. UNIVIP is that layer. It reuses the useful pieces of the existing standards and defines only what is needed to glue them together.
Read the full argument in the white paper and the prior-art review.
Core principleLink to the section Core principle
An uncrewed vehicle is a mobile, intelligent, geospatial camera, not merely a moving IP camera. Its position, altitude or depth, attitude, velocity, battery, link quality and operating mode all matter to a VMS, and every one of them must be time-aligned with the video.
Camera control and vehicle control are never the same permission. An operator may be allowed to zoom into a scene without being allowed to move the vehicle. UNIVIP enforces this separation in its profiles, its control-lease model and its security model.
ProfilesLink to the section Profiles
| Profile | Name | Mandatory content | Typical device |
|---|---|---|---|
| S | Surveillance & Streaming | Identity, capabilities, live video, position, altitude, basic telemetry, time sync, health, critical events | Any video-capable drone, dock or gateway |
| C | Camera & Payload Control | Profile S + zoom, focus, gimbal orientation, imaging settings, thermal palettes, recording control | Drones with a controllable payload |
| N | Navigation & Vehicle Control | Profile S + authorized vehicle control, vehicle leases and safety enforcement; the device advertises its supported commands | Vehicles whose operator permits authorized remote tasking |
Profiles C and N independently extend S; N does not require C. Profile N is separately enabled, separately authorized and separately audited. See the profile diagram and feature matrix.
Deployment modesLink to the section Deployment modes
All three behave identically from the VMS point of view.
| Mode | Where UNIVIP runs |
|---|---|
| Native | In the vehicle or dock firmware |
| Controller-based | On the ground controller, remote-pilot app or dock software |
| Gateway-based | On a server translating MAVLink, DJI Cloud API, Skydio APIs or other interfaces into UNIVIP |
The gateway mode is what makes adoption independent of manufacturer firmware roadmaps.
Repository layoutLink to the section Repository layout
| Path | Contents |
|---|---|
docs/whitepaper.md |
Opportunity, positioning and strategy |
docs/prior-art.md |
Landscape of existing standards and gap analysis |
docs/roadmap.md |
Phased plan from draft to conformance program |
docs/onvif-comparison.md |
ONVIF vs UNIVIP: architecture, transport stack and security, side by side |
docs/transport-baseline-validation.md |
Assessment of each proposed transport baseline and what the draft adopted |
docs/community-and-membership.md |
Website, membership tiers, legal home and launch sequence |
docs/naming.md |
Naming history and the decision for UNIVIP |
docs/decisions/ |
Architecture decision records, including the four foundational decisions |
spec/ |
The normative specification, split by topic |
schemas/ |
JSON Schema (2020-12) for telemetry, events, capabilities, commands and geospatial data |
api/univip-v1.openapi.yaml |
OpenAPI 3.1 description of the UNIVIP REST interface |
examples/ |
Valid sample messages used by the validator and the conformance seed |
tools/validate.py |
Validates every example against its schema and checks the OpenAPI document |
gateway/ |
Reference gateway (Python): simulator, MAVLink (PX4/ArduPilot) and DJI Cloud API adapters, Profiles S, C, N, WebRTC video; client recorder and replay tools with MISB ST 0601 |
dotnet/ |
.NET 10: client SDK for VMS integrations, the gateway ported to ASP.NET Core, and a standalone web viewer |
docs/implementation-findings.md |
Spec gaps found by implementing the drafts, each with its resolution in 0.2 or marked open |
docs/sitl-validation.md |
The MAVLink adapter validated against PX4 and ArduPilot software-in-the-loop |
docs/software-validation.md |
Reproducible software and emulator milestone, clean package installation, network faults and recorded browser checks |
docs/recording-test.md |
The recording test: flight path replayed from in-band ST 0601 and from out-of-band telemetry |
docs/security/ |
Internal security review of the .NET WebRTC stack |
THIRD_PARTY_NOTICES.md |
Licences of every runtime dependency, and what distributors must do |
site/ |
The univip.org website (Vite and TypeScript), generated from this repository; deploys to Cloudflare Workers or Pages |
GOVERNANCE.md |
How the specification is developed and decided |
CONTRIBUTING.md |
How to propose changes |
Quick startLink to the section Quick start
pip install -r tools/requirements.txt
python3 tools/validate.pyThe validator exits non-zero if any example fails schema validation or the OpenAPI document is malformed. Continuous integration runs the same check on every push.
Reference implementationsLink to the section Reference implementations
| Implementation | Side | What it does |
|---|---|---|
gateway/ (Python) |
Device | Exposes vehicles as UNIVIP Devices through adapters: a built-in simulator, MAVLink (PX4, ArduPilot) and the DJI Cloud API (DJI Dock). Session channel (including the session proxy), REST, telemetry, events, leases, camera and vehicle commands with every safety precondition, audit, H.264 over WebRTC. Includes a development client endpoint that validates every message. |
gateway/ univip-recorder, univip-replay (Python) |
Client | Records video as received with per-frame ST 0601 in MPEG-TS plus the telemetry and time map, and replays the flight path from either. |
dotnet/ Univip.Client (.NET 10) |
Client | SDK for VMS integrations (Milestone, Genetec and other .NET products): session endpoint, typed devices, REST, auto-renewing leases, command tracking, separate camera and vehicle control facets. |
dotnet/ Univip.Gateway (.NET 10) |
Device | The gateway ported to ASP.NET Core with the simulator adapter; same wire behaviour and configuration. Its hand-written WebRTC stack has had an internal security review; the independent review the roadmap requires is still to come. |
dotnet/ Univip.Viewer.Web (.NET 10) |
Client | Standalone viewer: live video, map with track, home and geofence, telemetry overlay with a stale indication, events with active conditions, and optional leased camera control and hold / return home. |
The implementations test each other in CI: the .NET SDK and the viewer against the Python gateway (the viewer in a headless browser), the .NET gateway against the Python endpoint and the .NET SDK. Reports produced with them are self-declared interoperability reports (Part 14 §14.6), not conformance claims.
cd gateway && pip install -e '.[media,mavlink,test]'
univip-dev-endpoint --listen 127.0.0.1:9443 --token dev-device-token --client-id dev-endpoint &
univip-gateway --config gateway.example.yaml # a simulated vehicle flying a patrolThe first demonstration we aim forLink to the section The first demonstration we aim for
A drone begins a mission. Without a proprietary integration in the receiving VMS, the VMS automatically recognizes the UNIVIP connection, displays video, plots the drone on a map, records GPS history alongside the video, receives a low-battery event, and, if authorized, adjusts the camera gimbal. The same demonstration is then repeated with a tethered underwater ROV, replacing altitude with depth.
LicensingLink to the section Licensing
- Specification text and documentation: Creative Commons Attribution 4.0 International (CC BY 4.0). See LICENSE-SPEC.md.
- Schemas, API descriptions, examples and tooling: Apache License 2.0. See LICENSE.
- Contributions are accepted under the same terms. A formal intellectual-property policy is part of the governance roadmap.
Status and caveatsLink to the section Status and caveats
This repository is an initial research scan and draft specification, not a conclusive patent search or an exhaustive international standards inventory. Before any public claim that UNIVIP is the first standard of its type, the relevant MISB documents, STANAG specifications, ONVIF draft specifications and existing commercial interoperability products must be reviewed in detail. See docs/prior-art.md.