EVA Mission Planner
Система поддержки решений для ЦУП, сделанная на хакатоне «Космо-Питер»: сравнивает окна для выхода в открытый космос с МКС по космической погоде, радиации и орбите. Я делал интерфейс оператора.
Закрытый код
git clone eva-mission-plannerДоступ запрещён: репозиторий приватный.Попросите у меня демоЗачем
Те, кто планирует выход в открытый космос, собирают космическую погоду, радиацию и предупреждения о космическом мусоре из разных источников и сводят их вручную. EVA Mission Planner, сделанный на хакатоне «Космо-Питер», показывает всё на одном экране.
Как это работает
Оператор вводит начало и длительность выхода и видит его рядом со сдвинутыми вариантами: у каждого уровень риска, факторы и их источники. Неполные данные никогда не дают вывод «низкий риск», а прошлую дату можно проиграть только на тех данных, что были доступны тогда.
Что сделал я
Фронтенд и продукт в команде из трёх человек. Спроектировал и сделал интерфейс оператора на чистом JavaScript и SVG, написал контракт между движком оценки риска и интерфейсом и документацию.
Статус
Рабочий прототип, показанный в живом демо на хакатоне. Код лежит в закрытом репозитории организаторов, поэтому публичной ссылки нет.
- Роль
- Фронтенд и продукт в команде из трёх человек
- Команда
- Роман Рында, Фронтенд, UI/UX, продукт, документация
- Владислав Василевский, Пайплайн данных и орбитальные расчёты
- Вячеслав Микша, Бэкенд и движок оценки риска, питч
- Период
- сентябрь 2026
- Статус
- Прототип
- Стек
- JavaScript, HTML, CSS, SVG, Python, FastAPI, SGP4, Docker, данные NOAA SWPC, данные Space-Track
Главное
- Ввести план выхода и сравнить его со сдвинутыми вариантами рядом
- Вывод по каждому окну с факторами и источником каждого числа
- Временная шкала космической погоды, радиации и сближений с объектами на фоне выхода
- Трасса МКС над Южно-Атлантической аномалией, нарисованная на чистом SVG
- Повтор прошлых событий, например бури G5 в мае 2024, без подглядывания в будущие данные
- Экспорт в JSON и печатная версия для брифинга
Рекомендовано 13:00–19:30
- Макс. Kp
- 5
- Поток протонов
- норма
- Пролёты ЮАА
- 1
Источники: NOAA SWPC, Space-Track (значения для примера)


Обзор: вывод простыми словами, окна рядом друг с другом, а справа объяснение, почему система так считает.


Повтор бури G5 в мае 2024 года: система честно говорит, что ни одно окно в диапазоне её не обходит.


Полная матрица: каждый фактор риска для каждого окна и штриховка там, где данных нет, вместо ложного нуля.


Временная шкала показывает, когда каждая угроза пересекается с выходом, и отделяет наблюдения от прогноза.


Карта орбиты: проходы МКС через Южно-Атлантическую аномалию, где радиация выше, нарисованы без картографических библиотек.


Источники данных: насколько свежий каждый поток, и любой можно отключить, чтобы увидеть вывод «данных недостаточно» вместо ложного «всё хорошо»; ниже орбита МКС, восстановленная по SGP4.

Версия отчёта о риске для печати, для бумажного брифинга, всегда чёрным по белому (предпросмотр печати, не PDF).
1 / 7 Обзор: вывод простыми словами, окна рядом друг с другом, а справа объяснение, почему система так считает.
Что это
Выход в открытый космос длится шесть-семь часов, и единственная защита на нём скафандр. Те, кто его планирует, собирают космическую погоду, солнечные протоны, радиационные пояса и предупреждения о сближении с мусором из разных источников и сводят их вручную. EVA Mission Planner показывает всё это на одном экране.
Оператор вводит планируемое начало и длительность выхода. Система проверяет запрошенное окно и сдвинутые варианты и показывает их рядом: у каждого уровень риска, факторы, из которых он сложился, и источники. Временная шкала, предупреждения и карта трассы МКС над Южно-Атлантической аномалией объясняют, чем окно опасно. Панель источников показывает, насколько свежи данные, а любой источник можно отключить и посмотреть, как изменится вывод, если датчик откажет.
Решение «выходим или нет» система не принимает. Она помогает человеку, который его принимает: при неполных данных она никогда не покажет низкий риск, а каждое предупреждение ведёт к исходному значению и правилу, которое сработало.
Режимов три: текущая обстановка, разбор прошлого и прогноз из прошлого, когда система повторяет прошедшую дату только с теми данными, которые были доступны в тот момент. Расчёт можно сохранить в JSON, позже открыть снова или распечатать для брифинга.
Что я сделал
Мы разделили работу по ролям и договорились о JSON-контрактах между частями. Владислав собрал пайплайн данных: космическая погода NOAA SWPC и NASA, данные о сближениях с мусором, протоны GOES и архивные орбитальные элементы Space-Track, расчёт орбиты по SGP4 на 32 часа вперёд. Вячеслав сделал бэкенд и движок оценки риска с объяснимой цепочкой доказательств. Я сделал интерфейс оператора поверх обеих частей и написал контракт между движком риска и фронтендом.


Обзор: вывод простыми словами, окна рядом друг с другом, а справа объяснение, почему система так считает.


Повтор бури G5 в мае 2024 года: система честно говорит, что ни одно окно в диапазоне её не обходит.


Полная матрица: каждый фактор риска для каждого окна и штриховка там, где данных нет, вместо ложного нуля.


Временная шкала показывает, когда каждая угроза пересекается с выходом, и отделяет наблюдения от прогноза.


Карта орбиты: проходы МКС через Южно-Атлантическую аномалию, где радиация выше, нарисованы без картографических библиотек.


Источники данных: насколько свежий каждый поток, и любой можно отключить, чтобы увидеть вывод «данных недостаточно» вместо ложного «всё хорошо»; ниже орбита МКС, восстановленная по SGP4.

Версия отчёта о риске для печати, для бумажного брифинга, всегда чёрным по белому (предпросмотр печати, не PDF).
1 / 7 Обзор: вывод простыми словами, окна рядом друг с другом, а справа объяснение, почему система так считает.
Технические решения
- Рабочее место оператора на чистом JavaScript, без фреймворка: сводка с выводом, матрица сравнения окон, временная шкала, предупреждения с обоснованиями, панель источников и форма планирования.
- Карта орбиты на чистом SVG. Трасса МКС в равнопромежуточной проекции с разрывом на антимеридиане и зоной Южно-Атлантической аномалии. Без картографических библиотек и сетевых запросов.
- Сначала контракт. Я написал версию 2.1 контракта между движком риска и интерфейсом вместе с mock-сценариями, поэтому фронтенд был готов раньше бэкенда и на демо мог переключиться на моки.
- Честные пробелы. Отсутствующие данные рисуются штриховкой, а не нулём, а отключённый источник показывает свой статус, а не исчезает.
- Экспорт и печать. Машиночитаемый экспорт в JSON, повторное открытие сохранённого файла перетаскиванием и стили для печати на бумаге.
- Поздние правки в бэкенде. Ближе к дедлайну я исправил оценку окон (пороги бури, отключённые источники) и сделал так, чтобы исторические повторы брали архивную орбиту, а не сегодняшнюю.
Результат
Команда ANTIGRAVITY участвовала в хакатоне «Космо-Питер» с работающим прототипом: бэкенд, пайплайн данных и интерфейс работали вместе на живом демо. Код лежит в закрытом репозитории на GitVerse организаторов, поэтому публичной ссылки нет. Скриншоты сняты с локального запуска прототипа на демонстрационных данных. У самого прототипа интерфейс на русском и тёмная тема; английский текст и светлую тему я добавил в локальную копию только для этих скриншотов, на основе цветовых токенов приложения.
Моя роль
Фронтенд и продукт-лид. Спроектировал и сделал интерфейс оператора, написал контракт данных и документацию, сделал 15 из 49 коммитов репозитория. Пайплайн данных и движок риска сделали мои тиммейты.