Проект представляет собой трёхмерный интерактивный граф, выполняющий проекцию на небесную сферу. Пользователи могут нажимать на звёзды, при этом подсвечивается их название и описание созвездия, к которому они относятся.
Для реализации интерактивной карты звездного неба в виде трехмерного графа был разработан кастомный пайплайн, сочетающий астрометрическую точность и высокую производительность.
Сбор данных и архитектура графа
Основой послужили данные из астрономических каталогов, содержащие информацию о координатах, яркости и спектральном классе звезд. Данные упаковываются в оптимизированные JSON-файлы, разделенные на узлы (звезды) и ребра (связи созвездий). Это позволяет мгновенно подгружать нужные сектора неба без задержек.
Сферические вычисления и Force-Directed алгоритм
Главная особенность решения — адаптация алгоритма Force-Directed (силового графа) для работы на поверхности сферы. В отличие от стандартных плоских графов, здесь реализовано ограничение: после каждого шага вычисления сил притяжения и отталкивания координаты узлов принудительно нормализуются. Это заставляет граф принимать форму идеальной небесной сферы, сохраняя при этом органичное распределение элементов и избегая их наложения друг на друга.
Высокая производительность через GPU
Для того чтобы система стабильно работала на сенсорных киосках и музейных панелях, основной объем вычислений перенесен с процессора на видеокарту.
Compute Shaders: Расчет физики взаимодействия тысяч звезд происходит параллельно на GPU, что в десятки раз быстрее классического подхода.
GPU Instancing: Вместо создания тысяч отдельных объектов в Unity, используется технология отрисовки всей массы звезд за один проход (Draw Call). Это позволяет отображать детализированную карту звездного неба даже на среднем «железе» при сохранении высокой частоты кадров.
Интерактив и визуализация
Визуальная часть дополнена системой парсинга метаданных: при клике на звезду система мгновенно извлекает из графа связанные данные о созвездии и выводит описание. Оптимизация геометрических шейдеров позволяет отрисовывать линии созвездий как единую динамическую сеть, которая плавно реагирует на действия пользователя.
Оптимизация для сенсорных киосков и интерактивных панелей
Проект полностью адаптирован для работы на широкоформатных сенсорных панелях и профессиональных киосках, обеспечивая интуитивный и отзывчивый пользовательский опыт.
Мультитач-интерфейс и навигация Система управления поддерживает полноценный мультитач. Пользователь может свободно вращать звездную сферу, масштабировать (зумить) отдельные созвездия привычными жестами и выбирать объекты касанием. Для исключения случайных срабатываний реализована система фильтрации «шумных» нажатий, характерных для крупных панелей с ИК-рамками.
Стабильный фреймрейт (60 FPS) Ключевой упор сделан на производительность. Благодаря переносу физики графа на GPU (Compute Shaders) и использованию GPU Instancing, приложение поддерживает стабильную частоту кадров даже при отображении тысяч активных объектов. Это исключает задержки и рывки при быстром вращении сферы, что критически важно для предотвращения эффекта «укачивания» и обеспечения премиального качества визуализации.