v0.1 draft — published early, in public, on purpose

A show file that can be
checked before it flies

DSX (Drone Show eXchange) is an open, vendor-neutral file format for drone light shows — designed to be flight-capable and machine-validatable, not just viewable.

What is not true yet

No aircraft has flown a DSX file. The specification, the JSON Schemas and the normative sampler are tested today; the .dsb binary encoding is still an outline; sampler vector coverage is not exhaustive. Stating this plainly is the point — a format that overstates its maturity reproduces the exact behaviour this project exists to replace.

The gap

No open format today is both flight-capable and independently verifiable

Every format in use sits in one of two states: open but not flight-ready, or flight-ready but undocumented. The consequences are not hypothetical — shows get exchanged as CSV and lose their safety metadata, geofence fields exist but are never populated, altitude reference (AGL / AMSL / ellipsoid) is left implicit, and axis handedness differs silently between tools. Each of those has a known failure mode.

FormatOpen & documentedFlight-capableThird-party validatable
VVIZyesno — a visualisation format, not intended as a source of flight-ready path datano
.skyc / .skybsource-readable (GPL), no public specyesno
.dac, .bin, .path/.path3, .essp, vendor .jsonno public specification locatedyesno
CSVtrivially openpartiallyno
DSXyesdesigned for it — not yet flowncontainer, schema, §10 rules and sampler vectors, tested today

“Located” is the accurate claim: the absence of a public specification is not something this project can prove, only fail to find (searched 2026-08).

Design

Two layers, cleanly separated

Mixing exchange and upload into one file is the mistake most formats make. DSX separates them, and specifies the compiler between them as deterministic: identical input must produce byte-identical output. That is what makes a show file auditable.

.dsxInterchange

Exchange, archive, review, regulatory submission.

ZIP + JSON — diffable, human-readable

.dsbCompiled

Upload to the aircraft.

Binary TLV — MCU-parseable

.dsxpDevice profile

What a given aircraft or payload can actually do.

JSON — shipped inside the .dsx

Interoperability is a property of the format, not a service of a server

Every conforming .dsx MUST be reducible, through a normative sampling algorithm, to t, x, y, z, R, G, B at any frame rate — bit-identically in every implementation. Any existing system therefore has an import path on day one, without understanding polynomials.

t, x, y, z, R, G, B

Backed by a reference implementation and six hand-computed test vectors, not by prose alone.

Hardware identity is explicit

A show references a device profile by stable UUID and declares the mode it was authored for. A tool can therefore refuse to upload a show whose declared flight envelope exceeds the aircraft’s published limits — instead of discovering it in the air.

Safety

The safety envelope is data, not a sidecar PDF

Termination escalation, geofences, link-loss behaviour, GNSS-integrity policy and payload interlocks are fields in the file — playback-independent and evaluable on board, without a connection to the show player.

A four-rung escalation ladder

  1. 1Hold / Suspend

    Reversible. The show stops where it is.

  2. 2Coordinated RTH

    A return the file declares as feasible — or honestly declares as not.

  3. 3Land in place

    Controlled descent, wherever the aircraft is.

  4. 4Kill / Disarm

    Irreversible. The fall must already be contained by the safety area.

One operator action per rung

This requirement exists because of a documented accident: a pilot let the show continue while aircraft were already falling into a crowd, because pausing it would have required too many steps. An abort path that is too expensive to use is not a safety feature. DSX therefore treats “how many actions does this rung cost” as part of the file.

RTH feasibility map

A return-to-home is not available at every moment of a show. DSX makes the infeasible windows explicit, with a reason and the escalation rungs that remain available instead — rather than letting a ground station discover it under time pressure.

Contained fall

The declared safety area MUST enclose the fall trajectory of a disarmed aircraft from every position the show reaches. The disarm rung is only usable if that has been established beforehand.

Profiles

Conformance profiles rather than a feature checklist

A manufacturer does not have to implement everything to be conformant. Each level is a complete, testable commitment.

L0Sampled

Positions and RGB only. CSV-equivalent. Any controller can do this.

L1Show

Segment trajectories, light programs, safety envelope, takeoff grid, RTH.

L2Production

Yaw, payloads (pyro, recovery, dispensers), multi-fleet, audio sync, signature.

Conformance

What is tested — and what is not

Exists and runs today

  • Container safety: entry names, decompression limits, signature-bypass cases
  • JSON Schema validation for .dsx, .dsxp and termination — air-gapped, no network needed
  • The normative sampler, against six hand-computed vectors
  • Archive integrity: every referenced resource is carried, hashes recompute, seals verify
  • The semantic rules of §10 (rotation and continuous operation) — 20 of 25 rules have an executable check
  • Reference examples for L0, L1 and two L2 cases

Does not exist yet

  • Round-trip and determinism suites — so “DSX conformant” is not yet a claim anyone can earn end to end
  • The .dsb binary encoding (still an outline)
  • Sampling behaviour for open-ended shows (duration_ms: null)
  • Any reference file exercising payloads, pyro interlocks or the GNSS-integrity fields — they are specified, but no example demonstrates them
  • Vendor-contributed device profiles — none exist yet
  • A single flight. No aircraft has flown a DSX file.

Licensing

Chosen for one reason: it has to be implementable in proprietary firmware

Specification, schemas, examples, device profiles

Community Specification License 1.0

Its patent grant covers implementing the specification — which is the whole point, and which a software licence does not reliably give.

Code, reference tools, conformance suite

Apache-2.0

Embeddable in proprietary firmware, with a patent grant whose scope genuinely fits code.

The name “DSX” and the .dsx extension

No trademark held, and none needed

A format name is a technical designation, like .zip or .json. Anyone may implement; conformance is defined by the public test suite, not by a mark.

Explicitly not GPL: a reference implementation under GPLv3 cannot be embedded in the proprietary firmware that has to read the format, and a standard whose reference code its own audience cannot link has an adoption ceiling. Explicitly not MIT: no patent grant. Explicitly not Apache-2.0 for the specification text: its §3 licenses patents to “otherwise transfer the Work” — the document — not to implement what the document describes.

If you produce shows and the software is in your way, open an issue

Issue creation is open. Proposals are discussed, not closed as “not planned”. Contributors are credited by name in the specification. That is a commitment, stated so it can be held against us.