
3D многодоменная тактическая разведывательная карта — корабли, самолёты, спутники, кабели и космическая погода в реальном времени в браузере. Прокрутка времени, повтор сценариев, обнаружение аномалий на основе физических моделей.
В реальном времени 3D-карта движущихся объектов мира: живой трафик судов (AIS), самолеты, спутники, подводные кабели, порты, узкие места и космическая погода — визуализируется как облако местности из 1,5 млн точек с днем/ночью, симуляцией океана и кинематографической работой камеры. Создано с помощью Three.js и простых ES-модулей. Без сборки, без фреймворка.
▶ Живое демо — регистрация не требуется: нажмите VIEW DEMO на начальном экране для синтетического трафика или вставьте бесплатный ключ aisstream.io для живых глобальных данных о судах.

git clone https://github.com/jamalrfordii-arch/Vanguard-Map.git
cd Vanguard-Map
npx serve . # or: python -m http.server 3000
Откройте http://localhost:3000 в браузере Chromium с аппаратным ускорением.
Живые данные о судах (бесплатно): приложение запрашивает ключ API aisstream.io при первой загрузке — бесплатная регистрация, ключ сохраняется в localStorage вашего браузера.
Тайлы рельефа высокого разрешения (опционально): получите бесплатный токен на cesium.com/ion → Access Tokens, затем в DevTools: localStorage.setItem('vg1_cesium_token', 'YOUR_TOKEN'). Без него карта использует облако точек рельефа на всех уровнях масштабирования.
Рейсы и AI-копайлот (опционально): требуют локального прокси — node flight-proxy.js во втором терминале. Без него эти слои остаются неактивными; всё остальное работает.
Карта работает на симулированных часах и подключаемых источниках данных — консоль DevTools:
simClock.setTime('2026-05-10T12:00:00Z') // scrub the world to any moment
simClock.setRate(60) // 1 real second = 1 sim minute
vg1Scenario.load('./scenarios/hormuz-demo.json') // inject scripted synthetic vessels
vg1Scenario.record(); vg1Scenario.save() // capture live AIS to NDJSON
vg1Scenario.replay('./captures/x.ndjson') // replay a capture
vg1Invariants.stats() // physics-violation ledger (spoof/teleport detection)
Синтетические суда используют зарезервированные MMSI 999… и прописаны в scenarios/*.json.
node tests/invariants.test.mjs
Один менеджер на домен (aisManager, flightManager, satelliteManager, …), общаются только через DOM-события vg1:* — никаких кросс-импортов. Все отчеты о позиции проходят через шлюз физических инвариантов (invariants.js), прежде чем смогут переместить объект. См. CLAUDE.md для полной карты модулей и правил внесения вклада.
Откройте GitHub Issue — сообщения об ошибках, идеи функций и сообщения «это работало с N fps на моей машине» — все полезны.