
Mapa de inteligência tática multi-domínio em 3D — navios, voos, satélites, cabos e clima espacial ao vivo no navegador. Varredura temporal, replay de cenários, detecção de anomalias baseada em física.
Um mapa 3D em tempo real das coisas em movimento no mundo: tráfego de navios ao vivo (AIS), aeronaves, satélites, cabos submarinos, portos, pontos de estrangulamento e clima espacial — renderizado como uma nuvem de terreno de 1,5M de pontos com dia/noite, simulação oceânica e trabalho de câmera cinematográfico. Construído com Three.js e módulos ES puros. Sem etapa de compilação, sem framework.
▶ Demonstração ao vivo — sem necessidade de cadastro: clique em VIEW DEMO na tela de abertura para tráfego sintético, ou cole uma chave gratuita do aisstream.io para dados de navios globais ao vivo.

git clone https://github.com/jamalrfordii-arch/Vanguard-Map.git
cd Vanguard-Map
npx serve . # or: python -m http.server 3000
Abra http://localhost:3000 em um navegador Chromium com aceleração de hardware.
Dados de navios ao vivo (grátis): o aplicativo solicita uma chave de API do aisstream.io no primeiro carregamento — cadastro gratuito, a chave permanece no localStorage do seu navegador.
Blocos de terreno de alta resolução (opcional): obtenha um token gratuito em cesium.com/ion → Access Tokens, depois no DevTools: localStorage.setItem('vg1_cesium_token', 'YOUR_TOKEN'). Sem ele, o mapa usa o terreno de nuvem de pontos em todos os níveis de zoom.
Voos e copiloto de IA (opcional): requerem o proxy local — node flight-proxy.js em um segundo terminal. Sem ele, essas camadas ficam inativas; todo o resto funciona.
O mapa funciona com um relógio simulado e fontes de dados plugáveis — console do 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)
Embarcações sintéticas usam MMSIs reservados 999… e são roteirizadas em scenarios/*.json.
node tests/invariants.test.mjs
Um gerenciador por domínio (aisManager, flightManager, satelliteManager, …), comunicando-se apenas via eventos DOM vg1:* — sem importações cruzadas. Todos os relatórios de posição passam por um portão invariante de física (invariants.js) antes de poderem mover uma entidade. Veja CLAUDE.md para o mapa completo dos módulos e regras de contribuição.
Abra uma Issue no GitHub — relatórios de bugs, ideias de funcionalidades e relatos de "rodou a N fps na minha máquina" são todos úteis.