DSX
GitHub

Brouillon v0.1 — publié tôt, en public, exprès

Un fichier de spectacle que l’on peut
vérifier avant qu’il vole

DSX (Drone Show eXchange) est un format de fichier ouvert et neutre vis-à-vis des fabricants pour les spectacles de lumières par drones — conçu pour être volable et validable par machine, pas seulement visualisable.

Ce qui n’est pas encore vrai

Aucun aéronef n’a volé un fichier DSX. La spécification, les JSON Schema et l’échantillonneur normatif sont testés aujourd’hui ; l’encodage binaire .dsb n’est encore qu’une esquisse ; la couverture des vecteurs de l’échantillonneur n’est pas exhaustive. Le dire clairement est le propos : un format qui surestime sa maturité reproduit exactement le comportement que ce projet existe pour remplacer.

Le manque

Aucun format ouvert n’est aujourd’hui à la fois volable et indépendamment vérifiable

Chaque format en usage se trouve dans l’un de deux états : ouvert mais pas prêt à voler, ou prêt à voler mais non documenté. Les conséquences ne sont pas hypothétiques — les spectacles s’échangent en CSV et perdent leurs métadonnées de sécurité, les champs de géorepérage existent mais ne sont jamais remplis, la référence d’altitude (AGL / AMSL / ellipsoïde) reste implicite, et le sens des axes diffère silencieusement d’un outil à l’autre. Chacun a un mode de défaillance connu.

FormatOuvert et documentéVolableValidable par un tiers
VVIZouinon — un format de visualisation, pas une source de trajectoires prêtes à volernon
.skyc / .skybsource lisible (GPL), pas de spécification publiqueouinon
.dac, .bin, .path/.path3, .essp, .json constructeuraucune spécification publique trouvéeouinon
CSVouvert de façon trivialepartiellementnon
DSXouiconçu pour cela — pas encore voléconteneur, schémas, règles du §10 et vecteurs d’échantillonnage, testés aujourd’hui

« Trouvée » est l’affirmation exacte : l’absence d’une spécification publique n’est pas quelque chose que ce projet peut prouver, seulement ne pas trouver (recherche : 2026-08).

Conception

Deux couches, nettement séparées

Mélanger échange et téléversement dans un seul fichier est l’erreur que commettent la plupart des formats. DSX les sépare et fixe le compilateur entre les deux comme déterministe : une entrée identique doit (MUST) produire une sortie identique octet par octet. C’est ce qui rend un fichier de spectacle auditable.

.dsxÉchange

Échange, archive, relecture, dépôt réglementaire.

ZIP + JSON — diffable, lisible

.dsbCompilé

Téléversement vers l’aéronef.

TLV binaire — analysable par le MCU

.dsxpProfil d’appareil

Ce qu’un aéronef ou une charge utile donnée peut réellement faire.

JSON — livré dans le .dsx

L’interopérabilité est une propriété du format, pas le service d’un serveur

Tout .dsx conforme DOIT (MUST) pouvoir se ramener, par un algorithme d’échantillonnage normatif, à t, x, y, z, R, G, B à n’importe quelle cadence — identique bit à bit dans chaque implémentation. Tout système existant a donc un chemin d’import dès le premier jour, sans comprendre les polynômes.

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

Appuyé par une implémentation de référence et six vecteurs de test calculés à la main, pas par la seule prose.

L’identité du matériel est explicite

Un spectacle référence un profil d’appareil par UUID stable et déclare le mode pour lequel il a été écrit. Un outil peut donc refuser de téléverser un spectacle dont l’enveloppe de vol déclarée dépasse les limites publiées de l’aéronef — plutôt que de le découvrir en l’air.

Dans le fichier

Trois choses qu’un fichier de spectacle peut porter et que les formats d’aujourd’hui ne portent pas

Ce ne sont pas des fonctions produit. Ce sont des champs, des règles et un algorithme d’échantillonnage — spécifiés, vérifiés par le schéma, et (pour les vagues) exercés par deux exemples L2.

Un chemin d’import qui n’attend pas le convertisseur du fabricant

Tout fichier conforme se réduit, par un algorithme d’échantillonnage publié, à t, x, y, z, R, G, B à n’importe quel débit — identique bit à bit. Un contrôleur qui consomme déjà des tableaux de trames peut importer un spectacle DSX dès le premier jour sans comprendre les polynômes. Les convertisseurs nommés vers et depuis d’autres formats sont prévus, pas livrés ; tout convertisseur de ce type doit publier une matrice de pertes indiquant ce qu’il conserve, approxime ou abandonne.

L’échantillonneur existe et est testé. La suite de convertisseurs (dsx-convert) n’existe pas.

Une double clôture qui vit dans le fichier signé

Une bulle souple qui se déplace (~4 m) déclenche un atterrissage automatique. Un polygone dur déclenche le désarmement. Les deux sont des champs du fichier, hachés avec le reste du spectacle, et évaluables à bord sans le lecteur. Une clôture qui n’existe que comme réglage de console peut être mise au mauvais nombre sans que personne ne le voie — c’est un schéma d’accident documenté.

La clôture opérante à bord est termination.geofence. Le safety.geofence du spectacle est l’enveloppe, pas une seconde copie de la même règle.

Plus d’un décollage par aéronef

Les formats existants écrasent chorégraphie, aéronef et batterie en un seul objet — un spectacle ne peut donc pas durer plus longtemps qu’une charge. DSX sépare rôle, aéronef et sortie. Les groupes atterrissent, changent de batteries et redécollent dans la même pièce. Deux exemples L2 existent : un spectacle de 42 minutes avec six aéronefs, et un cycle génératif pour l’exploitation continue.

20 des 25 règles de rotation ont un contrôle exécutable. L’échantillonnage des spectacles ouverts (duration_ms: null) n’est pas encore défini.

Sécurité

L’enveloppe de sécurité est une donnée, pas un PDF à côté

L’escalade de terminaison, les géorepérages, le comportement en perte de liaison, la politique d’intégrité GNSS et les verrouillages de charge utile sont des champs du fichier — indépendants de la lecture et évaluables à bord, sans connexion au lecteur de spectacle.

Une échelle à quatre barreaux

  1. 1Hold / Suspend

    Réversible. Le spectacle s’arrête où il est.

  2. 2RTH coordonné

    Un retour que le fichier déclare faisable — ou déclare honnêtement ne pas l’être.

  3. 3Atterrir sur place

    Descente contrôlée, où que soit l’aéronef.

  4. 4Kill / Disarm

    Irréversible. La chute doit déjà être contenue par la zone de sécurité.

Une action opérateur par barreau

Cette exigence existe à cause d’un accident documenté : un pilote a laissé le spectacle continuer alors que des aéronefs tombaient déjà dans une foule, parce que le mettre en pause demandait trop d’étapes. Un chemin d’abandon trop coûteux à utiliser n’est pas une fonction de sécurité. DSX traite donc « combien d’actions coûte ce barreau » comme une partie du fichier.

Carte de faisabilité du RTH

Un retour au point de départ n’est pas disponible à chaque instant d’un spectacle. DSX rend explicites les fenêtres infaisables, avec une raison et les barreaux d’escalade qui restent — plutôt que de laisser une station sol le découvrir sous la pression du temps.

Chute contenue

La zone de sécurité déclarée DOIT (MUST) enfermer la trajectoire de chute d’un aéronef désarmé depuis chaque position atteinte par le spectacle. Le barreau désarmer n’est utilisable que si cela a été établi au préalable.

Bulle souple, polygone dur

Le fichier porte deux clôtures, pas une. La clôture souple est une bulle qui suit la position commandée ; la quitter lance un atterrissage automatique. La clôture dure est un polygone fixe ; la quitter désarme les moteurs. Les deux voyagent avec le fichier signé, une station sol ne peut pas changer le nombre en silence.

Profils

Des profils de conformité plutôt qu’une liste de fonctions

Un fabricant n’a pas à tout implémenter pour être conforme. Chaque niveau est un engagement complet et vérifiable.

L0Sampled

Positions et RVB seulement. Équivalent CSV. Tout contrôleur peut le faire.

L1Show

Trajectoires par segment, programmes lumineux, enveloppe de sécurité, grille de décollage, RTH.

L2Production

Lacet, charges (pyrotechnie, récupération, distributeurs), rotation multi-vagues, multi-flotte, synchro audio, signature.

Conformité

Ce qui est testé — et ce qui ne l’est pas

Existe et tourne aujourd’hui

  • Sécurité du conteneur : noms d’entrées, limites de décompression, cas de contournement de signature
  • Validation JSON Schema de .dsx, .dsxp et termination — hors réseau
  • L’échantillonneur normatif, contre six vecteurs calculés à la main
  • Intégrité de l’archive : chaque ressource référencée est emportée, les empreintes se recalculent, les sceaux se vérifient
  • Les règles sémantiques du §10 (rotation et exploitation continue) — 20 des 25 ont un contrôle exécutable
  • Exemples de référence pour L0, L1 et deux cas L2

N’existe pas encore

  • Suites d’aller-retour et de déterminisme — « conforme DSX » n’est donc pas encore une affirmation que quiconque peut gagner de bout en bout
  • Convertisseurs nommés vers et depuis d’autres formats (dsx-convert) — prévus ; l’échantillonneur est le chemin d’import qui existe aujourd’hui
  • L’encodage binaire .dsb (encore une esquisse)
  • L’échantillonnage des spectacles sans fin fixe (duration_ms: null)
  • Tout fichier de référence exerçant les charges, les verrouillages pyrotechniques ou les champs d’intégrité GNSS — ils sont spécifiés, mais aucun exemple ne les montre
  • Profils d’appareil apportés par des fabricants — aucun n’existe encore
  • Un seul vol. Aucun aéronef n’a volé un fichier DSX.

Licences

Choisies pour une raison : il doit pouvoir s’implémenter dans un micrologiciel propriétaire

Spécification, schémas, exemples, profils d’appareil

Community Specification License 1.0

Son octroi de brevets couvre l’implémentation de la spécification — ce qui est tout l’objet, et qu’une licence logicielle ne donne pas de façon fiable.

Code, outils de référence, suite de conformité

Apache-2.0

Intégrable dans un micrologiciel propriétaire, avec un octroi de brevets dont la portée convient vraiment au code.

Le nom « DSX » et l’extension .dsx

Aucune marque détenue, et aucune n’est nécessaire

Le nom d’un format est une désignation technique, comme .zip ou .json. Quiconque peut implémenter ; la conformité est définie par la suite de tests publique, pas par une marque.

Explicitement pas GPL : une implémentation de référence sous GPLv3 ne peut pas s’intégrer dans le micrologiciel propriétaire qui doit lire le format, et une norme dont le code de référence son propre public ne peut pas lier a un plafond d’adoption. Explicitement pas MIT : pas d’octroi de brevets. Explicitement pas Apache-2.0 pour le texte de la spécification : son §3 licence les brevets pour « transférer autrement l’Œuvre » — le document — pas pour implémenter ce que le document décrit.

Si vous produisez des spectacles et que le logiciel vous barre la route, ouvrez un ticket

La création de tickets est ouverte. Les propositions sont discutées, pas fermées en « not planned ». Les contributeurs sont crédités nommément dans la spécification. C’est un engagement, écrit pour qu’on puisse nous y tenir.