v0.1 초안 — 의도적으로 일찍, 공개로
비행하기 전에
검사할 수 있는 쇼 파일
DSX(Drone Show eXchange)는 드론 라이트 쇼를 위한 개방형·벤더 중립 파일 형식입니다. 보기만 하는 것이 아니라 비행할 수 있고 기계로 검증할 수 있도록 설계되었습니다.
아직 사실이 아닌 것
DSX 파일로 비행한 기체는 아직 없습니다. 오늘 시험된 것은 사양 본문, JSON Schema, 규범 샘플러입니다. .dsb 이진 부호화는 아직 개요이고, 샘플러 벡터 범위는 완전하지 않습니다. 이를 분명히 쓰는 것이 목적입니다. 성숙도를 과장하는 형식은 이 프로젝트가 대체하려는 바로 그 행태를 반복합니다.
공백
오늘날 비행 가능하면서 독립적으로 검증 가능한 개방 형식은 없다
쓰이는 형식은 모두 두 상태 중 하나입니다. 개방이지만 비행에 쓸 수 없거나, 비행은 되지만 문서가 없습니다. 결과는 가정이 아닙니다. 쇼가 CSV로 넘어가며 안전 메타데이터를 잃고, 지오펜스 필드는 있지만 채워지지 않고, 고도 기준(AGL / AMSL / 타원체)은 암시로 남고, 좌표 좌·우손계가 도구마다 조용히 다릅니다. 각각에 알려진 실패 모드가 있습니다.
| 형식 | 개방·문서화 | 비행 가능 | 제3자 검증 가능 |
|---|---|---|---|
| VVIZ | 예 | 아니오 — 시각화 형식이며 비행 가능한 경로 데이터의 원본이 아님 | 아니오 |
| .skyc / .skyb | 소스 열람 가능(GPL), 공개 사양 없음 | 예 | 아니오 |
| .dac, .bin, .path/.path3, .essp, 벤더 .json | 공개 사양을 찾지 못함 | 예 | 아니오 |
| CSV | 명백히 개방 | 부분적 | 아니오 |
| DSX | 예 | 이를 위해 설계 — 아직 비행하지 않음 | 컨테이너, 스키마, §10 규칙과 샘플러 벡터, 오늘 시험됨 |
“찾지 못함”이 정확한 주장입니다. 공개 사양이 없음을 증명할 수는 없고, 찾지 못했다고만 말할 수 있습니다(조사: 2026-08).
설계
깨끗이 나뉜 두 계층
교환과 업로드를 한 파일에 섞는 것이 대부분의 형식이 하는 실수입니다. DSX는 둘을 가르고, 사이의 컴파일러를 결정적으로 규정합니다. 같은 입력은 바이트 단위로 같은 출력을 내야 합니다(MUST). 그래야 쇼 파일을 감사할 수 있습니다.
교환, 보관, 검토, 규제 제출.
ZIP + JSON — diff 가능, 사람이 읽음
기체로 업로드.
이진 TLV — MCU가 파싱 가능
해당 기체나 페이로드가 실제로 할 수 있는 일.
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유지 / 일시 정지(Hold / Suspend)
가역. 쇼는 그 자리에 멈춘다.
- 2협조 귀환(Coordinated RTH)
파일이 실행 가능하다고 선언하는 귀환 — 또는 불가능하다고 정직하게 선언.
- 3제자리 착륙(Land in place)
기체가 어디에 있든 제어된 하강.
- 4킬 / 디스암(Kill / Disarm)
비가역. 낙하 궤적은 이미 안전 구역에 담겨 있어야 한다.
각 단에 조작 한 번
이 요구는 기록된 사고에서 나왔습니다. 기체가 이미 군중 속으로 떨어지고 있는데, 멈추려면 단계가 너무 많아 조종사는 쇼를 계속했습니다. 쓰기에 너무 비싼 중단 경로는 안전 기능이 아닙니다. 그래서 DSX는 “이 단에 몇 번의 조작이 드는가”를 파일의 일부로 다룹니다.
RTH 실행 가능성 지도
귀환은 쇼의 모든 순간에 가능하지 않습니다. DSX는 불가능한 시간창을 이유와 대신 남는 단계와 함께 명시합니다. 지상국이 시간 압박 속에서 알아내게 두지 않습니다.
낙하는 담겨야 한다
선언된 안전 구역은 쇼가 도달하는 모든 위치에서 디스암된 기체의 낙하 궤적을 둘러싸야 합니다(MUST). 그것이 사전에 성립해야 디스암 단을 쓸 수 있습니다.
부드러운 거품, 단단한 다각형
파일은 펜스를 두 개 실습니다. 하나가 아닙니다. 부드러운 펜스는 지령 위치를 따라가는 거품이고, 벗어나면 자동 착륙이 시작됩니다. 단단한 펜스는 고정 다각형이고, 벗어나면 모터가 꺼집니다. 둘 다 서명된 파일과 함께 가므로 지상국이 숫자를 조용히 바꿀 수 없습니다.
프로파일
기능 목록이 아니라 적합성 프로파일
제조사가 적합하려면 모든 것을 구현할 필요는 없습니다. 각 단계는 그 자체로 완전하고 시험 가능한 약속입니다.
위치와 RGB만. CSV와 동등. 어떤 제어기도 가능.
구간 궤적, 조명 프로그램, 안전 포락선, 이륙 격자, RTH.
요, 탑재물(불꽃, 회수, 투하), 다중 파차 순환, 다중 함대, 오디오 동기, 서명.
적합성
무엇이 시험되고, 무엇이 아직인가
오늘 존재하며 동작한다
- 컨테이너 안전: 항목 이름, 압축 해제 한도, 서명 우회 사례
- .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”로 닫히지 않습니다. 기여자는 사양에 이름으로 적힙니다. 이는 약속이며, 나중에 대조할 수 있도록 여기에 적습니다.