
Симулятор спутника-шпиона в вашем браузере, только данные реальные. Живая разведка по открытым источникам на фотореалистичном 3D-глобусе.
<div align="center"> # 🌐 God's Eye View [](https://github.com/bilawalsidhu/gods-eye-view/actions/workflows/ci.yml) [](https://x.com/bilawalsidhu/status/2093798887815348521) ### Симулятор шпионского спутника в вашем браузере — а затем вы осознаёте, что источники публичные, а данные реальные. Фотореалистичный 3D-глобус. Живые самолёты, корабли, спутники, землетрясения, трафик и публичные камеры. Управление голосом без помощи рук на базе AI-агента в реальном времени. _Ни одно место не забыто._  <a href="https://www.youtube.com/@bilawalsidhu"> <img src="https://assets.kitploit.com/production/public/readmes/53672/2bab334300d0327d9016fde5bd973eb662ad1c20f7c7ded7888e7660250010a3/80a8a89a32c1874cd02f208f496926df721e3787f570e1baf97f248c44d42082-display-v1.webp" alt="Серия видео God's Eye View на YouTube" width="100%"> </a> ▶️ **От проекта, стоящего за вирусной серией God's Eye View** _(ранее WorldView)_ — [5M+ на YouTube](https://youtube.com/playlist?list=PL6qSg2I-7_koPbDnSMo0QeeHX_RknA2uv&si=nBGYMoHWQw41v93Q) · [25M+ во всех соцсетях](https://www.google.com/search?q=god%27s+eye+view) 🏆 **Достиг #1 в GitHub Trending, за день и за неделю · август 2026** **[#8 Product of the Day](https://www.producthunt.com/products/god-s-eye-view?launch=god-s-eye-view)** · Найден Крисом Мессиной, создателем хэштега _«довольно круто»_ — [Брендан Айк](https://x.com/BrendanEich/status/2094592096401490266), создатель JavaScript и соучредитель Mozilla и Brave · Отмечен на **[Pinokio](https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g)** ⚡ **Начните без API-ключей.** Установите через [Pinokio](https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view) или запустите локально из терминала. Добавьте необязательные ключи внутри приложения. **[→ Быстрый старт](#-quick-start)** </div> --- <div align="center"> **[Быстрый старт](#-quick-start) · [Первые пять минут](#-the-first-five-minutes) · [Поговорите с ним](#-talk-to-it) · [Что в эфире](#-whats-on-the-globe) · [Под капотом](#-under-the-hood) · [Ключи и затраты](#-api-keys) · [Участие в разработке](https://github.com/bilawalsidhu/gods-eye-view/blob/main/CONTRIBUTING.md)** </div> --- ## 🌍 Зачем это существует God's Eye View объединяет публичные сигналы в один исследуемый глобус. Отслеживайте мир в реальном времени. Говорите с ним. Ломайте его. Расширяйте его. Транспондеры самолётов, маяки кораблей, орбитальные элементы, сейсмографы и публичные камеры уже рассказывают нам многое о мире. God's Eye View помещает их в одно место, чтобы вы могли переключаться между глобальной картиной и отдельным самолётом, кораблём или улицей. Он работает локально в вашем браузере, с исходным кодом, который вы можете изучить и расширить. > Половина магии в том, что это выглядит как запрещённая кабина пилота. Другая половина — в том, что каждая строка кода доступна для изучения. Большинство потоков данных живые или регулярно обновляются. Трафик симулируется вдоль реальных дорог с использованием агрегированных данных о местоположении. Позы камер CCTV и траектории запуска ракет являются приблизительными оценками. Начните с включённых источников данных, затем добавьте свои. Каждый слой — отдельный модуль. --- ## 🎛️ Что умеет эта штука - **🛩️ Вид из кабины:** Пролетите внутри отслеживаемого рейса — камера удерживает местность под вами на всём пути вниз. - **📡 Контакты:** Список на 250 км всего, что находится рядом с вашей целью — перебирайте живые воздушные суда и пересаживайтесь в любую кабину. - **🎯 Отслеживание по клику:** Камера захватывает цель, рисует затухающий след, показывает полные метаданные — а отслеживаемый пожар или судно передаёт вас ближайшей живой камере одним кликом. - **🖊️ Голосовая доска:** Наносите аннотации на мир голосом — настоящие граничные полигоны, метки и маршруты. - **🛫 3D-ангар:** Реальные модели воздушных судов по классам — 787, ATR-72, Citation, Bell 206, MQ-9 — и отслеживаемый контакт переключается с глифа на 3D-модель по мере приближения. - **🎨 Перекрасьте реальность:** GLSL-эффекты сенсоров поверх обычного глобуса — CRT, NVG, FLIR/тепловизор, Noir, Snow. - **🟩 Оверлей обнаружения:** Экранные ограничивающие рамки и идентификаторы на всём, что в поле зрения. - **🎖️ Военный HUD:** Тактический дисплей на лобовом стекле с телеметрией в разведывательном стиле. - **🌐 Глобальный контекст:** Разверните полную ситуационную картину одним переключателем — и верните свой точный вид, когда уходите. - **🎥 Режиссёр сцены:** Записывайте кинематографичные туры камеры для клипов и демо. - **🔗 Ссылки для обмена:** Камера, стиль, слои и даже одна отслеживаемая цель сериализуются в URL — живая цель это передача управления, а не закладка. - **🏠 Сброс глобуса:** Одно управление — или одно предложение — и вы снова на всей Земле. - **🌦️ Погода:** Анимируйте прогнозный ветер GFS или ECMWF, воспроизводите наблюдённый радар, спутниковые облака и молнии на одной временной шкале и следите за треками циклонов NHC/CPHC. Ключ не нужен. - **📷 Нанесённые на карту камеры ALPR:** Расположение камер распознавания номерных знаков, отмеченное в OpenStreetMap, по одному городу за раз. Только местоположения и теги; ключ не нужен. - **🔭 Пролёты спутников:** Спросите голосом, когда любой загруженный спутник в следующий раз поднимется над вами: время восхода, пика и захода, и сможете ли вы его увидеть. - **🔎 Ответы аналитика:** Считайте, фильтруйте и ранжируйте спутники, дата-центры и плотины голосом, наряду с рейсами, судами, пожарами и землетрясениями; ответы сообщают, когда поток данных устарел или работает на резервном источнике. - **🧭 Наклон и север сверху:** Переключайтесь между видом строго сверху и наклоном 35°, или расположите север вверху, пока отслеживаемая цель остаётся в центре. - **🔍 Поиск без ключей:** Введите десятичные координаты, двумерный WGS84 `geo:` URI (например, `geo:39.7392,-104.9903`) или встроенный город либо достопримечательность, чтобы перелететь туда без запроса к геокодеру; другие названия используют Google, если он настроен, затем Photon и Nominatim. - **📦 Сцены для обмена:** Импортируйте, просматривайте и делитесь сценами Director в виде файлов или пакетов, с якорями камеры, авторскими перемещениями и пакетами данных. - **🌊 Сцена наводнения в Непале:** Воспроизведите наводнение Бхоте-Коши: путь наводнения, источники-свидетели и снимки до и после (встроенные данные некоммерческие; см. [DATA_SOURCES.md](https://github.com/bilawalsidhu/gods-eye-view/blob/main/DATA_SOURCES.md)). --- <div align="center"> [](https://www.youtube.com/watch?v=GRJaKcXZS94) ▶️ **[Полный обзор всего ниже, на YouTube](https://www.youtube.com/watch?v=GRJaKcXZS94)** </div> ## ⚡ Быстрый старт **Начните без аккаунта и API-ключей.** Оба пути открывают одно и то же приложение со спутниковыми снимками Esri и рельефом без ключей. OSM — резервный вариант, если Esri недоступен. Рейсы, военный трафик, спутники, землетрясения, публичные камеры, радио и запуски доступны без ключей. Для фотореалистичного 3D добавьте **токен Cesium ion** для подходящего личного, некоммерческого использования, или **ключ Google Maps** для прямого, тарифицируемого маршрута и поиска мест в Google. Применяются условия и квоты провайдеров. Добавляйте ключи через панель **POWER UP** в приложении; [Ключи и затраты](#-api-keys) объясняет варианты. > **Уже установлено?** Обновитесь до последней версии. Старые версии обращаются к публичным серверам OpenStreetMap Overpass, которые теперь отказывают им, поэтому Traffic, Mapped Installations и ALPR остаются пустыми, пока вы не обновитесь. ### Путь 1 — Один клик, без терминала 1. Установите или обновите [Pinokio](https://desktop.pinokio.co/) до версии **8.2 или новее**. 2. Откройте [God's Eye View в Pinokio](https://pinokio.co/apps/github-com-bilawalsidhu-gods-eye-view). 3. Нажмите **Install**, затем **Start**. Доступно на **Windows, macOS и Linux**. Сопровождающий Pinokio сообщает о кросс-платформенном тестировании исправленного установщика. Лаунчер устанавливает зафиксированные зависимости, находит свободный локальный порт и открывает приложение. **Пробовали раньше, и установка не удалась?** Обновите Pinokio и попробуйте снова. Версия 8.2 исправляет проблему установки лаунчера; [подробности от сопровождающего Pinokio](https://pinokio.co/posts/01m1m4p9xxm3qw7dnnpj2wr93g). **Pinokio открывается, но глобус очень дёргается?** Прежде чем считать это проблемой совместимости с GPU или минимальных требований к оборудованию, скопируйте URL локального сервера, показанный Pinokio, и откройте тот же URL в вашем обычном браузере с аппаратным ускорением. Один пользователь Pinokio 8.2.0 сообщил о сильных рывках во встроенном представлении Pinokio, которые исчезли, когда тот же работающий сервер был открыт во внешнем браузере ([#365](https://github.com/bilawalsidhu/gods-eye-view/issues/365)). Это указывает на встроенный браузер, а не на сервер приложения или ваше оборудование; это не устанавливает минимальные требования к GPU. ### Путь 2 — Терминал / агент для программирования Используйте **Node.js 24.x (24.14.0 или новее) или 26.x**. Доктор настройки предупреждает о Node 25, срок поддержки которого истёк. ```bash git clone https://github.com/bilawalsidhu/gods-eye-view.git cd gods-eye-view npm ci npm run doctor npm run dev ``` Откройте **`http://localhost:4173`**. Выберите **Live Contacts**, **Space Missions**, **Environmental** или **Explore Manually** на панели первого запуска. <details> <summary>Производительность запуска</summary> Замер на M5/Chrome в определённый момент времени показал медианное время холодного запуска 1,86 секунды. Это базовый показатель для сравнения, а не гарантия для вашей машины или соединения. См. [docs/PERFORMANCE.md](https://github.com/bilawalsidhu/gods-eye-view/blob/main/docs/PERFORMANCE.md). </details> **Ярлык для macOS:** `./scripts/dev-fresh.sh` очищает кэш Vite и извлекает любые настроенные ключи прямо из Keychain. Он также запускается без ключей. ### Путь 3 — Docker Установка Node не требуется; контейнер публикует тот же dev-сервер. ```bash git clone https://github.com/bilawalsidhu/gods-eye-view.git cd gods-eye-view docker compose up ``` Откройте **`http://localhost:4173`** как указано выше. Всё, что сохраняет приложение, остаётся в папке, которую вы клонировали, поэтому `docker compose down` ничего не теряет: - `.env` — ваши API-ключи, сохранённые из Provider Settings или введённые вручную - `.gev-cache/` — загруженные данные карт и спутниковых снимков, чтобы последующие запуски были быстрее - `.gev-logs/` — логи Сделайте резервную копию этой папки — и вы сохранили всё; удалите `.env`, чтобы забыть свои ключи. Правки исходников по-прежнему применяются на лету. Порт публикуется только на `127.0.0.1`, поэтому значение по умолчанию совпадает с нативным. Локальный MCP-сервер и голос ChatGPT OAuth недоступны под Docker; используйте API-ключ OpenAI для голоса. Публикация в более широкую сеть — это опция [Sharing an instance](#-sharing-an-instance), и она также раздаёт **Provider Settings**: лаунчер доверяет шлюзу контейнера как этой машине, а более широкая публикация предоставляет всем остальным доступ с того же адреса. Для экземпляра, которым вы собираетесь поделиться, вместо этого впишите ключи в `.env` вручную. Подробности — в [SECURITY.md](https://github.com/bilawalsidhu/gods-eye-view/blob/main/SECURITY.md). При расширении публикации также задайте `GEV_KEY_SETUP_TRUSTED_PEERS=none`, чтобы лаунчер не доверял ни одному адресу шлюза. <details> <summary>Запуск на Linux, NAS или за обратным прокси</summary> Запускайте от имени пользователя, которому должны принадлежать создаваемые файлы. `id` показывает номера; для себя на Linux: ```bash env UID=$(id -u) GID=$(id -g) docker compose up ``` На NAS клонируйте в общий ресурс, на котором должны находиться данные, и используйте идентификаторы владельца этого ресурса: ```bash cd /volume1/docker git clone https://github.com/bilawalsidhu/gods-eye-view.git cd gods-eye-view env UID=1026 GID=100 docker compose up -d ``` Сохраняйте `env`: bash считает `UID` доступным только для чтения, поэтому простой `UID=1026` перед командой молча игнорируется. Если контейнер не может записать checkout, он сообщает об этом при запуске. Docker Desktop на macOS и Windows сам сопоставляет владельцев. За обратным прокси поместите ключи в `.env` или передайте их как переменные окружения — Provider Settings намеренно отклоняет проксированные запросы — и добавьте имя хоста, на котором вы его обслуживаете, например `GEV_ALLOWED_HOSTS=globe.example.lan` (см. [Sharing an instance](#-sharing-an-instance)). </details> <details> <summary>Сети только с IPv6, пересборка и наборы тестов</summary> Лаунчер читает шлюз по умолчанию IPv4, поэтому в сети Docker только с IPv6 он его не находит: он пишет в лог `No default gateway; Provider Settings stays loopback-only`, и панель отклоняет любое сохранение. В этом случае вручную поместите ключи в `.env` или укажите шлюз самостоятельно через `GEV_KEY_SETUP_TRUSTED_PEERS`, прочитав [SECURITY.md](https://github.com/bilawalsidhu/gods-eye-view/blob/main/SECURITY.md). `node_modules` намеренно остаётся внутри образа, поэтому он сохраняется в анонимном томе между перезапусками: после `git pull`, который меняет зависимости, пересоздайте его с помощью `docker compose down -v && docker compose up --build`. Образ также пропускает загрузку Chromium для Puppeteer, что делает его небольшим, но оставляет `npm run test:track` на хосте — `npm run build` и `npm test` нормально работают в контейнере. </details> ### Затем включите его — в приложении, а не в файле Ключи — это улучшения, а не обязательные условия. Когда он вам понадобится, нажмите чип **POWER UP** в правом нижнем углу: Provider Settings перечисляет каждый поддерживаемый ключ, что он включает и где его получить. Вставьте, нажмите **SAVE KEYS**, и приложение перезапустится с новой возможностью. Когда всё настроено, чип показывает **POWERED UP** — а если компактный макет его скрывает, `?setup=1` снова открывает ту же панель. - **Куда попадают ключи:** Pinokio → игнорируемый приложением `pinokio/ENVIRONMENT`; при клонировании в терминале → `.env` в корне репозитория. Любой из этих файлов делается доступным только владельцу _до_ того, как в него записывается секрет. Это локальные текстовые файлы, исключённые из Git; приложение использует ваши ключи для связи с провайдерами. - **Ключи, которые у вас уже есть, остаются вашими:** значения из вашей оболочки или из macOS Keychain отображаются как _настроенные извне_ и доступны панели только для чтения. - **Что получить в первую очередь:** бесплатный токен [Cesium ion](https://cesium.com/ion) (для личного, некоммерческого использования; применяются текущие условия и квоты) для фотореалистичного 3D и мирового рельефа; ключ Google Maps только для маршрута с включённой оплатой и тарификацией + поиска мест Google; OpenAI, когда вы хотите поговорить с миром. Полная карта, включая затраты, в [Keys & Costs](#-api-keys). <details> <summary>Старые версии Pinokio и хранение учётных данных</summary> Не вводите учётные данные в нативной панели **Configure** Pinokio 8.0.40: этот выпуск неправильно сохраняет этот вложенный файл приложения и записывает в лог отправленные значения. Вместо этого используйте **POWER UP → Provider Settings** внутри GEV. Анонс Pinokio 8.2 исправляет установку; он не подтверждает, что эта отдельная проблема с Configure решена. На macOS Keychain через `./scripts/dev-fresh.sh` остаётся более надёжным вариантом хранения. </details> Сервер привязывается к **localhost** на обоих путях, а Provider Settings отвечает на запросы только с вашей машины. Ключи на стороне браузера (Google Maps, Cesium ion) должны быть ограничены у их провайдеров — [SECURITY.md](https://github.com/bilawalsidhu/gods-eye-view/blob/main/SECURITY.md) показывает как, и там же приведены правила совместного использования в LAN вместе с [Keys & Costs](#-api-keys). --- ## 🕐 Первые пять минут Выберите миссию первого запуска или попробуйте их по порядку. GIF-файлы показывают Google Photorealistic 3D; ваша стартовая базовая карта зависит от добавленных вами ключей. 1. **Осветите небо.** Возьмите миссию **Live Contacts** (или включите **Flights** самостоятельно) — тысячи живых самолётов, скользящих по реальной телеметрии, а сеть обнаружения уже считывает сцену. Нажмите на один: камера захватывает его, за ним тянется след, и появляется карточка живой телеметрии. 2. **Возьмите управление.** Нажмите **COCKPIT** на отслеживаемом самолёте и летите вместе с ним вниз, переключая сенсоры в полёте: NVG на Ironbow FLIR.  3. **Опуститесь в оживлённый аэропорт.** Найдите его и спуститесь к рулёжным дорожкам с включёнными **3D**-самолётами — контакты на земле, рулёжные следы, весь перрон работает в реальном времени.  4. **Посмотрите через публичную камеру.** Включите **Cameras** над Остином, Лондоном, Калифорнией, Финляндией или Делавэром (живое видео). Эти потоки — не встроенные веб-камеры: они проецируются _внутрь_ 3D-города. Переключите отображение покрытия на **VIEWSHED**, и каждая камера нарисует свой оценочный объём покрытия — куда она достаёт и где слепнет.  5. **Отследите что-нибудь на орбите.** Включите **Satellites** и нажмите на МКС — вы летите вместе с ней на орбитальной высоте, вместе с орбитальным кольцом и всем остальным.  6. **Переключите оптику.** Нажмите `1`–`7` — CRT, NVG, FLIR — и вся живая планета перерисовывается через другой сенсор.  7. **Поговорите с ним** _(нужен ключ OpenAI)_: _"Отвези меня в LAX и выбери ближайший самолёт в воздухе."_ 8. **Вернитесь домой.** Нажмите **Reset Globe** — или просто скажите _"отдали вид до глобуса."_ **Клавиатура:** `1`–`7` визуальные стили · `H` HUD · `D` обнаружение · `C` кабина · `` ` `` частота кадров · `Esc` выход. Щипок на трекпаде масштабирует глобус. --- ## 🛩️ Кабина > Любой самолёт должен позволять вам это. Режим кабины в реальном времени, построенный на живых данных о полётах: камера летит вместе с вашим контактом, а под ним держится реальный рельеф на всём пути вниз — стили сенсоров сопровождают вас в полёте, а **Contacts** держит список из 250 км на расстоянии одного клика: перескакивайте с самолёта на самолёт и сразу падайте в следующую кабину.  У кабины даже есть собственная информационная полоса: ближайшие живые сигналы, региональные заголовки и реальная местная погода — с опциональным режимом **WX**, который отрисовывает объёмные облака по фактическим наблюдениям вокруг вашего самолёта.  --- [Read more](https://github.com/bilawalsidhu/gods-eye-view)