v0.1 草案 — 意図的に早く、公開で

飛行する前に
検査できるショーファイル

DSX(Drone Show eXchange)は、ドローンライトショー向けのオープンでベンダー中立なファイル形式です。閲覧できるだけでなく、飛行でき、機械で検証できるように設計されています。

まだ成り立たないこと

DSX ファイルで飛行した機体はまだありません。今日テストされているのは仕様本文、JSON Schema、規範的サンプラーです。.dsb バイナリ符号化はまだ骨子であり、サンプラーのテストベクトルは網羅的ではありません。これをはっきり書くこと自体が目的です。成熟度を過大に述べる形式は、このプロジェクトが置き換えようとしている振る舞いそのものです。

欠落

今日、飛行可能かつ独立に検証できるオープン形式は存在しない

使われている形式はどれも二つの状態のどちらかです。オープンだが飛行には使えないか、飛行できるが文書化されていないか。結果は仮説ではありません。ショーが CSV で渡り安全メタデータを失う、ジオフェンス欄はあるが埋まらない、高度基準(AGL / AMSL / 楕円体)が暗黙のまま、座標の左右系がツール間で静かに食い違う。それぞれに既知の失敗モードがあります。

形式オープンかつ文書化飛行可能第三者が検証可能
VVIZはいいいえ — 可視化形式であり、飛行可能な経路データのソースではないいいえ
.skyc / .skybソースは読める(GPL)、公開仕様なしはいいいえ
.dac, .bin, .path/.path3, .essp, ベンダー .json公開仕様は見つかっていないはいいいえ
CSV自明にオープン部分的いいえ
DSXはいそのために設計 — 未飛行コンテナ、スキーマ、§10 規則とサンプラーベクトル。今日テスト済み

「見つかっていない」が正確な主張です。公開仕様が存在しないことは証明できず、見つけられなかったとしか言えません(調査:2026-08)。

設計

きれいに分かれた二層

交換とアップロードを一つのファイルに混ぜるのが、ほとんどの形式の誤りです。DSX は両者を分け、間のコンパイラを決定的と定めます。同一入力はバイト単位で同一出力を生まなければなりません (MUST)。それによってショーファイルは監査可能になります。

.dsx交換

交換、保管、レビュー、規制提出。

ZIP + JSON — diff 可能、人が読める

.dsbコンパイル済み

機体へのアップロード。

バイナリ TLV — MCU が解析可能

.dsxpデバイスプロファイル

その機体またはペイロードが実際にできること。

JSON — .dsx に同梱

相互運用性は形式の性質であり、サーバのサービスではない

適合するすべての .dsx は、規範的サンプリング算法により任意のフレームレートで t, x, y, z, R, G, B に還元できなければなりません (MUST) — どの実装でもビット単位で同一です。既存システムは多項式を理解せずとも、初日から取り込み経路を持ちます。

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

根拠は参照実装と、手計算した六つのテストベクトルです。文章だけではありません。

ハードウェアの身元は明示される

ショーは安定した UUID でデバイスプロファイルを参照し、作成対象のモードを宣言します。宣言された飛行包絡が公表限度を超えるショーは、空中で気づく前にアップロードを拒否できます。

ファイルの中身

現行フォーマットが運べない、ショーファイルが運べる三つのもの

製品機能ではありません。フィールド、規則、そしてサンプリング算法です。仕様に書かれ、スキーマで検査され、波次については二つの L2 例で実際に使われています。

ベンダー変換器を待たない取り込み経路

適合するファイルはすべて、公開されたサンプリング算法により、任意のフレームレートで t, x, y, z, R, G, B に——ビット単位で同一に——還元されます。フレーム配列を既に消費する制御器は、多項式を理解せずとも初日に DSX ショーを取り込めます。他形式との名前付き変換器は計画中であり、出荷されていません。そのような変換器は、何を保持し、近似し、捨てるかを記した損失行列を公開しなければなりません。

サンプラーは存在し、検査済みです。変換器スイート(dsx-convert)はまだありません。

署名済みファイルの中にある二重フェンス

指令位置に追従する柔らかい泡(約 4 m)は自動着陸を起動します。硬い多角形はモーター遮断を起動します。どちらもファイルのフィールドであり、ショーの残りと一緒にハッシュされ、プレーヤーなしで機上評価できます。コンソール設定としてしか存在しないフェンスは、誰にも気づかれず誤った数値に変えられます——それは記録された事故パターンです。

機上で実際に効くフェンスは termination.geofence です。ショー級の safety.geofence は包絡であり、同じ規則の第二の写しではありません。

一機が一度以上離陸できる

既存フォーマットは振付・機体・電池を一つのオブジェクトに潰すため、ショーは一回の充電より長くなれません。DSX は役割、機体、出撃を分けます。群が着陸し、電池を替え、同じ作品へ再び離陸します。L2 例は二つあります。六機で四十二分のショーと、連続運用のための生成周期です。

二十五の交代規則のうち二十に実行可能な検査があります。無期限ショー(duration_ms: null)のサンプリングはまだ未定義です。

安全

安全包絡はデータであり、添えた PDF ではない

終了の段階的エスカレーション、ジオフェンス、リンク喪失時の挙動、GNSS 完全性方針、ペイロードのインターロックはファイル内の欄です。再生とは独立し、ショープレイヤーとの接続がなくても機上で評価できます。

四段のエスカレーション

  1. 1保持 / 一時停止(Hold / Suspend)

    可逆。ショーはその場で止まる。

  2. 2協調帰還(Coordinated RTH)

    ファイルが実行可能と宣言する帰還 — あるいは実行不能と正直に宣言する。

  3. 3その場着陸(Land in place)

    機体がどこにいても、制御された降下。

  4. 4キル / ディスアーム(Kill / Disarm)

    不可逆。落下はあらかじめ安全区域に収まっていなければならない。

各段は操作一回

この要件は記録された事故に由来します。機体がすでに群衆へ落下しているのに、停止に手順が多すぎたためパイロットはショーを続けました。使うのに高すぎる中止経路は安全機能ではありません。DSX は「この段に何回の操作が要るか」をファイルの一部として扱います。

RTH 実行可能性マップ

帰還はショーのあらゆる瞬間に使えるわけではありません。DSX は実行不能な時間窓を、理由と代わりに残る段階とともに明示します。地上局が時間圧力の下で気づくことにしません。

落下は閉じ込められる

宣言された安全区域は、ショーが到達するすべての位置から、ディスアームされた機体の落下軌跡を囲まなければなりません (MUST)。それが事前に成立して初めて、ディスアームの段は使えます。

柔らかい泡、硬い多角形

ファイルはフェンスを二つ運びます。一つではありません。柔らかいフェンスは指令位置を追う泡で、出ると自動着陸が始まります。硬いフェンスは固定多角形で、出るとモーターが切れます。どちらも署名済みファイルと一緒に行き、地上局が静かに数値を変えられません。

プロファイル

機能チェックリストではなく適合プロファイル

製造者が適合するためにすべてを実装する必要はありません。各レベルは完結した、検証可能な約束です。

L0Sampled

位置と RGB のみ。CSV 相当。どのコントローラでも可能。

L1Show

セグメント軌道、ライトプログラム、安全包絡、離陸グリッド、RTH。

L2Production

ヨー、ペイロード(火工、回収、投下)、多波次ローテーション、複数艦隊、音声同期、署名。

適合性

何がテストされ、何がまだか

今日存在し、動いている

  • コンテナ安全:エントリ名、展開上限、署名回避ケース
  • .dsx、.dsxp、termination の JSON Schema 検証 — オフライン、ネットワーク不要
  • 規範的サンプラー、手計算した六つのベクトルに対して
  • アーカイブ完整性:参照される資源はすべて同梱、ハッシュは再計算でき、シールは検証できる
  • §10 の意味規則(ローテーションと連続運用)— 25 規則中 20 に実行可能な検査がある
  • L0、L1、および二つの L2 事例の参照例

まだ存在しない

  • 往復変換と決定性のスイート — そのため「DSX 適合」はまだ端から端まで獲得できる主張ではない
  • 他形式との名前付き変換器(dsx-convert)——計画中。サンプラーが今日存在する取り込み経路です。
  • .dsb バイナリ符号化(まだ骨子)
  • 終了時刻のないショーのサンプリング(duration_ms: null)
  • ペイロード、パイロ・インターロック、GNSS 完全性欄を行使する参照ファイル — 仕様にはあるが、例が示していない
  • ベンダー提供のデバイスプロファイル — まだ一つもない
  • 一度の飛行。DSX ファイルで飛んだ機体はない。

ライセンス

理由は一つ:プロプライエタリなファームウェアで実装できなければならない

仕様、スキーマ、例、デバイスプロファイル

Community Specification License 1.0

その特許許諾は仕様の実装を覆う。それが目的そのものであり、ソフトウェアライセンスでは確実に得られない。

コード、参照ツール、適合スイート

Apache-2.0

プロプライエタリなファームウェアに埋め込める。特許許諾の範囲もコードに本当に合う。

名称 “DSX” と .dsx 拡張子

商標は保有しておらず、必要もない

形式名は .zip や .json と同じ技術呼称。誰でも実装してよい。適合は公開テストスイートが定め、標章は定めない。

明示的に GPL ではない:GPLv3 の参照実装は、最終的にこの形式を読むプロプライエタリなファームウェアに埋め込めません。参照コードを当の読者層がリンクできない標準には、普及の天井があります。明示的に MIT ではない:特許許諾がない。仕様本文に Apache-2.0 も使わない:その §3 は特許を「その著作物を他の方法で譲渡する」——文書そのもの——に許諾し、文書が述べるものの実装には許諾しません。

ショーを作り、ソフトウェアが邪魔なら、issue を開いてください

Issue の作成は開かれています。提案は議論され、「not planned」で閉じられません。貢献者は仕様に氏名で記されます。これは約束であり、後から照合できるようにここに書いてあります。