Структура шоу-файла
Как разложить проект, чтобы в нём можно было работать на площадке и передать другому человеку.
Световой проект живёт дольше, чем видеопатч: его правят на каждой площадке. Структура важнее красоты.
Раскладка проекта
/project1
/config таблицы: патч, группы, кью, looks, сеть
/input приём: DMX in, OSC, таймкод, звук, камера
/engine генерация: эффекты, пиксель, наведение
/state текущее состояние шоу, кью, мастер
/output сборка юниверсов, DMX out
/ui панель оператора
/monitor диагностика и логи
Один поток слева направо: вход → движок → состояние → выход. Правки всегда происходят в одном из блоков и не задевают остальные.
Конфигурация — отдельно от логики
Всё, что описывает конкретную площадку, живёт в /config и приходит из
файлов:
| Файл | Что описывает |
|---|---|
fixtures.csv |
Патч: приборы, адреса, координаты — Патч |
groups.csv |
Группы приборов |
looks.csv |
Наборы значений |
cues.csv |
Список кью — Кью |
network.csv |
Адреса контроллеров и юниверсы |
calibration.csv |
Поправки приборов — Калибровка |
Переезд на другую площадку — это замена файлов, а не правка сети.
Состояние
Отдельный блок, который знает «где мы сейчас»: текущее кью, мастер, режим (авто/ручной), активные переопределения. Всё остальное читает состояние, а не хранит своё.
Это же место сохраняет состояние на диск, чтобы после перезапуска шоу продолжилось, а не началось заново — Watchdog.
Панель оператора
Отдельный Container COMP, который показывается на служебном мониторе:
- текущее кью и следующее, крупно;
- таймкод и признак его наличия;
- мастер и блэкаут;
- индикаторы: DMX уходит, контроллеры отвечают, кадры в норме;
- список последних ошибок.
Панель — это не украшение. Это то, по чему на площадке принимают решения.
Документация рядом с проектом
Папка docs в проекте:
- Карта каналов — что вы принимаете с пульта.
- Раскладка юниверсов — кто чем владеет.
- Схема сети — адреса, коммутаторы, порты.
- Инструкция на страницу — как включить, как выключить, что делать, если.
- Контакты — кому звонить.
Дайте проект человеку, который его не собирал, и попросите включить шоу по вашей инструкции. Всё, что он не смог, — это то, что вы не описали.
Версии
.toe бинарный, диффом не читается. Что помогает:
- логика в
.toxи в отдельных.py; - конфигурация в CSV — она версионируется нормально;
- имена версий с датой и площадкой:
show_2026-03-14_gorky.toe; - копия на флешке.
Подробнее — Файл проекта.