
Mapa de inteligencia táctica multidominio en 3D — barcos, vuelos, satélites, cables y clima espacial en vivo en el navegador. Depuración temporal, repetición de escenarios, detección de anomalías basada en física.
Un mapa 3D en tiempo real de las cosas en movimiento del mundo: tráfico de barcos en vivo (AIS), aeronaves, satélites, cables submarinos, puertos, puntos de estrangulamiento y clima espacial — renderizado como una nube de terreno de 1.5 millones de puntos con día/noche, simulación oceánica y trabajo de cámara cinematográfico. Construido con Three.js y módulos ES simples. Sin paso de compilación, sin framework.
▶ Demo en vivo — sin necesidad de registro: haz clic en VIEW DEMO en la pantalla de inicio para tráfico sintético, o pega una clave gratuita de aisstream.io para datos de barcos globales en vivo.

git clone https://github.com/jamalrfordii-arch/Vanguard-Map.git
cd Vanguard-Map
npx serve . # o: python -m http.server 3000
Abre http://localhost:3000 en un navegador Chromium con aceleración por hardware.
Datos de barcos en vivo (gratis): la aplicación solicita una clave API de aisstream.io en la primera carga — registro gratuito, la clave permanece en el localStorage de tu navegador.
Teselas de terreno de alta resolución (opcional): obtén un token gratuito en cesium.com/ion → Access Tokens, luego en DevTools: localStorage.setItem('vg1_cesium_token', 'YOUR_TOKEN'). Sin él, el mapa usa el terreno de nube de puntos en todos los niveles de zoom.
Vuelos y copiloto AI (opcional): requieren el proxy local — node flight-proxy.js en una segunda terminal. Sin él, esas capas permanecen inactivas; todo lo demás funciona.
El mapa funciona con un reloj simulado y fuentes de datos conectables — consola de DevTools:
simClock.setTime('2026-05-10T12:00:00Z') // desplaza el mundo a cualquier momento
simClock.setRate(60) // 1 segundo real = 1 minuto simulado
vg1Scenario.load('./scenarios/hormuz-demo.json') // inyecta buques sintéticos guionizados
vg1Scenario.record(); vg1Scenario.save() // captura AIS en vivo a NDJSON
vg1Scenario.replay('./captures/x.ndjson') // reproduce una captura
vg1Invariants.stats() // registro de violaciones de física (detección de spoof/teletransporte)
Los buques sintéticos usan MMSI reservados 999… y están programados en scenarios/*.json.
node tests/invariants.test.mjs
Un gestor por dominio (aisManager, flightManager, satelliteManager, …), comunicándose solo a través de eventos DOM vg1:* — sin importaciones cruzadas. Todos los informes de posición pasan por una puerta de invariante física (invariants.js) antes de poder mover una entidad. Consulta CLAUDE.md para el mapa completo de módulos y reglas de contribución.
Abre un Issue en GitHub — informes de errores, ideas de características e informes de "esto corrió a N fps en mi máquina" son todos útiles.