God's Eye View — проект, объединяющий большое количество разрозненных открытых источников информации в едином интерфейсе на основе фотореалистичного трёхмерного глобуса.
В шпионских и фантастических фильмах нередко встречается знакомая сцена: огромная информационная панель с объёмной моделью Земли, на которой оператор в реальном времени наблюдает за воздушным транспортом, переключается между камерами дорожного наблюдения и отслеживает положение спутников.
Обычно подобные системы воспринимаются как исключительно дорогостоящая голливудская визуализация. Однако значительная часть подобных данных в действительности доступна из открытых источников и передаётся в режиме, близком к реальному времени.
При самостоятельном сборе пространственной информации в рамках
OSINT/GEOINT обычно приходится одновременно открывать множество различных сайтов и сервисов. Для наблюдения за самолётами используется Flightradar24, для морского транспорта — MarineTraffic, спутниковую информацию можно получать из каталогов вроде CelesTrak, а сведения с дорожных камер приходится искать на отдельных специализированных ресурсах.
God's Eye View объединяет подобные информационные слои в одной трёхмерной сцене, позволяя работать с различными типами пространственных данных непосредственно на глобусе.
Вид из кабины самолёта
Можно выбрать практически любой находящийся в воздухе реальный борт и перейти в режим наблюдения с его точки зрения. После выбора самолёта камера переключается на соответствующую перспективу и позволяет визуально следовать вместе с воздушным судном.
При этом камера сохраняет привязку к рельефу под самолётом, а рядом отображается дополнительная информация, включая погодную сводку и находящиеся поблизости объекты и контакты.
Интеграция дорожных камер в 3D-сцену
Проект способен отображать изображения примерно с 800 публичных дорожных камер непосредственно внутри трёхмерного пространства. Камеры не просто открываются в отдельном окне или обычном видеоплеере — их изображение проецируется на соответствующую геометрию перекрёстков.
Для визуализации используются конусы обзора, благодаря чему можно понимать направление наблюдения и приблизительную область, которую охватывает конкретная камера.
Спутники, орбиты и космические события
Трёхмерный глобус способен рассчитывать положение большого количества искусственных спутников, в том числе Международной космической станции. Для объектов отображаются орбитальные траектории, а также предусмотрено воспроизведение информации о недавних запусках ракет.
Шейдерные режимы сенсоров
Изображение в трёхмерной сцене можно изменять с помощью специальных визуальных фильтров. Горячие клавиши позволяют переключаться между различными режимами отображения, включая имитацию прибора ночного видения NVG, тепловизионного изображения FLIR и изображения старого ЭЛТ-монитора.
Голосовое управление с помощью нейросети
При подключении соответствующего ключа OpenAI программой можно управлять с помощью голосовых команд.
Голосовой агент способен учитывать координаты и текущий угол обзора камеры, выполнять измерение расстояний между объектами и наносить границы отдельных районов непосредственно поверх трёхмерной карты.
Изменение масштаба интерфейса
Для увеличения размера элементов интерфейса и масштаба отображаемой страницы необходимо открыть меню в верхней левой части окна и выбрать View - Zoom In.
Для уменьшения масштаба используется пункт View - Zoom Out.
Чтобы восстановить стандартный размер отображения, необходимо выбрать View - Actual Size.
Источники данных и условия использования
Значительная часть информационных слоёв доступна без обязательной регистрации и получения отдельных ключей. Авиационные данные могут поступать через OpenSky и adsb.lol, сведения о землетрясениях — через USGS, спутниковые данные — через CelesTrak, информацию о радиостанциях предоставляет Radio Browser. Также используются базы данных дата-центров и подводных коммуникационных кабелей.
Для работы самого фотореалистичного трёхмерного рельефа требуется API-ключ Google Maps с активированным Map Tiles API.
В рамках указанного сервиса Google предоставляет 1000 бесплатных сессий в месяц. Продолжительность одной сессии может составлять до трёх часов активного просмотра, чего в большинстве случаев достаточно для личного тестирования и экспериментов.
Для использования голосового помощника дополнительно потребуется действующий токен OpenAI.
В первую очередь God's Eye View представляет интерес как практический учебный проект для веб-разработчиков, желающих глубже разобраться с WebGL, трёхмерными тайлами, библиотекой CesiumJS и обработкой геопространственных потоков данных.
Исходный код построен без большого количества лишних абстракций, а логика отдельных информационных слоёв разделена по соответствующим компонентам. Данные организованы в каталоге src/data/, что упрощает изучение структуры проекта и дальнейшее добавление собственных источников.
Особого внимания заслуживает реализация голосового агента: она наглядно демонстрирует принцип взаимодействия мультимодальных LLM с интерактивной трёхмерной сценой и позволяет понять, каким образом языковая модель может получать информацию о состоянии визуализации и выполнять команды пользователя.
Проект также может послужить хорошей отправной точкой для создания собственной системы мониторинга, интерактивной панели для управления или наблюдения за беспилотными летательными аппаратами, а также для экспериментов с анализом открытых источников.
При необходимости существующую архитектуру можно использовать как основу для подключения собственных информационных слоёв, источников данных и вариантов визуализации.
В проекте не используются тяжёлые фронтенд-фреймворки наподобие React или Vue. Технологический стек построен достаточно прямолинейно и включает чистый jаvascript, сборщик Vite и геопространственный движок CesiumJS.
Трёхмерная модель планеты формируется с использованием
Google Photorealistic 3D Tiles, которые отвечают за отображение детализированного рельефа и объектов окружающей среды.
Особый интерес представляет внутренняя архитектура проекта и способы решения распространённых задач, возникающих при визуализации постоянно обновляющихся геоданных.
- Плавное отображение при редком обновлении данных
Большинство бесплатных API обновляют координаты воздушных судов с интервалом примерно от 15 до 30 секунд. Чтобы движение объектов на экране не выглядело как последовательность резких скачков, клиент учитывает задержку между обновлениями и интерполирует положение объекта.
Для заполнения промежутков между полученными координатами используется счисление пути dead reckoning, благодаря чему движение выглядит значительно плавнее даже при относительно редком поступлении новых данных.
- Корректная привязка объектов к высоте
Отображаемые объекты не должны визуально зависать над поверхностью или, наоборот, уходить под землю. Для этого высота транспондеров пересчитывается относительно геоида и сопоставляется с актуальной полигональной сеткой рельефа.
Такой подход позволяет точнее размещать объекты относительно поверхности трёхмерной Земли.
- Расчёт спутниковых орбит
Положение спутников вычисляется локально с использованием алгоритма SGP4. Расчёты синхронизируются с гринвичским звёздным временем, благодаря чему отображаемые орбитальные кольца сохраняют стабильность при изменении положения камеры и переключении ракурсов.
- Защита ключей и контроль запросов
Запросы к платным внешним API, включая OpenAI, AISStream и TomTom, выполняются через серверную часть проекта. Такой подход позволяет вынести работу с ключами за пределы клиентской части приложения.
На сервере также предусмотрено кэширование и установлены ограничения на количество выполняемых запросов, что помогает контролировать расход доступных ресурсов и уменьшать число повторных обращений к внешним сервисам.
Для некоторых возможностей
God's Eye View необходимо дополнительно указать API-ключи. Способ получения такого ключа зависит от конкретного используемого сервиса.
Одной из функций, требующих отдельного ключа, является
«Голосовое управление». Для её использования потребуется соответствующая учётная запись OpenAI и действующий API-токен.
В исходном описании также упоминается возможность получения стартового кредита при создании новой учётной записи. Размер и условия предоставления подобных бонусов могут меняться со временем, поэтому актуальные условия необходимо проверять непосредственно у соответствующего сервиса.
Доступность сервисов OpenAI зависит от региона и действующих ограничений. Если прямое подключение из определённой страны недоступно, пользователи иногда применяют сетевые прокси или VPN в соответствии с законодательством и условиями используемого сервиса. Другим вариантом может быть собственный прокси-сервер для Realtime, однако его работа может потребовать дополнительных расходов на инфраструктуру.
При этом перед настройкой голосового управления стоит учитывать, что для корректного взаимодействия с текущей реализацией голосовые команды предполагают использование английского языка.
Ещё одна доступная возможность
Upgrade предназначена для увеличения количества одновременно отображаемых воздушных судов в режиме
«Данные о полётах».
Для получения доступа к этой функции требуется бесплатная учётная запись на сайте
OpenSky Network. Для большинства пользователей расширение количества одновременно отображаемых самолётов может оказаться необязательным, поскольку при большом количестве объектов отслеживать отдельные воздушные суда становится значительно сложнее.
Аналогичным образом работает функция
«Active Fires», предназначенная для отображения информации о пожарах в режиме, близком к реальному времени, с использованием системы
NASA FIRMS.
Получение ключа для данного сервиса также предполагает регистрацию. В исходном варианте проекта она описывается как бесплатная процедура.
Регистрация для использования
AISStream, отвечающего за получение данных о судовом трафике, также предоставляется бесплатно.
Отдельного внимания заслуживает функция
«Street Traffic», предназначенная для визуализации дорожного движения. Если использовать её без API-ключа, на карте могут отображаться движущиеся белые точки, представляющие легковые автомобили, грузовики и автобусы. При этом такие объекты в большинстве случаев не следует воспринимать как точное отображение реальных транспортных средств.
Для получения актуальных сведений о дорожной обстановке, включая пробки, скорость движения и дорожно-транспортные происшествия, потребуется соответствующий API-ключ. В исходной конфигурации для этого используется сервис TomTom.
Получить ключ можно после бесплатной регистрации на
сайте TomTom Developer.
После получения ключа его необходимо сохранить в конфигурации приложения. Для этого откройте каталог программы
Gods Eye view\resources\app и найдите файл
.env.
Откройте файл с помощью Notepad и добавьте в него ключ, соответствующий используемой функции. Например, для TomTom переменная может выглядеть следующим образом:
TOMTOM_API_KEY=ваш_ключ_здесьПосле внесения изменений сохраните файл
.env и полностью перезапустите приложение
God's Eye View, чтобы новые параметры конфигурации были загружены.
Ещё один способ указать API-ключВ приложении можно открыть инструменты разработчика сочетанием
Ctrl+Shift+I, после чего перейти во вкладку
Console.
В нижней части консоли необходимо выполнить следующий адрес:
window.location.href = 'http://localhost:4173/key-setup'После выполнения команды откроется соответствующая страница настройки ключей. После завершения настройки перезапустите
God's Eye View, чтобы изменения вступили в силу.
Идея проекта заключалась в создании полноценной десктопной версии, которой было бы удобно пользоваться без сложной ручной настройки и без необходимости постоянно открывать веб-браузер.
Проект Gods Eye View имеет открытый исходный код, поэтому его исходные материалы можно получить и изучить самостоятельно.
Для подготовки приложения использовался сборщик Vite. После этого веб-приложение было интегрировано в Electron, а готовая программа упакована в портативный исполняемый файл формата .exe при помощи electron-builder.
В результате была получена готовая portable-сборка для Windows 11, которую можно запускать без полноценной установки в систему.
Основным обязательным условием для работы приложения остаётся наличие активного подключения к интернету, поскольку значительная часть отображаемой информации поступает из внешних источников данных.
- Установите portable-сборку God's Eye View на компьютер или распакуйте её в удобное место.
- Запустите приложение God's Eye View с рабочего стола либо непосредственно из каталога программы.
- После запуска выберите необходимые информационные слои и функции, которые требуется использовать.
Подробный порядок действий также представлен в
Video Tutorial