Tool

Visualize real-time global ship, aircraft & satellite data

Real-time 3D map of global ship, aircraft, satellite, and cable traffic, rendered as a 1.5M-point terrain cloud in the browser with Three.js, no build step.

Works with aisstreamcesium

85
Spark score
out of 100
Updated 5 days ago
Version 1.0.0

Add to Favorites

Why it matters

Monitor and analyze multi-domain tactical intelligence by rendering live AIS ship traffic, aircraft positions, satellite orbits, submarine cables, and geopolitical chokepoints on an interactive 3D globe with physics-based validation and time-travel replay capabilities.

Outcomes

What it gets done

01

Stream live global ship positions via AIS data feeds and render them on a 3D terrain map

02

Detect spoofed or teleported vessels by validating position reports against physics invariants

03

Record and replay historical traffic scenarios with adjustable simulation clock rates

04

Overlay strategic infrastructure including ports, chokepoints, submarine cables, and space weather

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/jamalrfordii-arch-vanguard-map | bash

Overview

Vanguard-Map

A browser-based, no-build-step 3D visualization of live maritime, air, satellite, and undersea-cable traffic, rendered with Three.js as a 1.5M-point terrain cloud, with a simulated clock, scenario playback, and physics-invariant checks against spoofed positions. Use it to explore or demo real-time global vessel, flight, and satellite movement on an interactive 3D map, either with live AIS data from a free API key or with synthetic demo traffic requiring no signup at all.

What it does

Vanguard-Map is a real-time 3D visualization of the world's moving things: live ship traffic via AIS, aircraft, satellites, submarine cables, ports, chokepoints, and space weather, rendered as a 1.5M-point terrain cloud with day/night cycling, ocean simulation, and cinematic camera movement. It's built with Three.js and plain ES modules, deliberately with no build step and no framework, so it runs directly from static files.

When to use - and when NOT to

Use it to explore or demo live global maritime and air traffic on an interactive 3D map, either with real ship positions from a free aisstream.io API key or with synthetic traffic that needs no signup at all via the live demo's VIEW DEMO button. High-resolution terrain tiles are optional and need a free Cesium ion token; without one, the map falls back to its point-cloud terrain at every zoom level. Flight tracking and an AI copilot layer require running a local proxy script separately, without it, those two layers stay quiet while everything else keeps working. It needs a Chromium browser with hardware acceleration to run well.

Inputs and outputs

Input is either live AIS data, via an aisstream.io key entered on first load and kept in browser localStorage, or synthetic scenarios loaded from JSON files, using reserved 999... MMSIs for scripted vessels. A simulated clock, simClock.setTime and simClock.setRate, can scrub to any moment or run faster than real time, and vg1Scenario can record live AIS to an NDJSON capture file and replay it later. Output is the rendered 3D map itself, plus a physics-invariant ledger, vg1Invariants.stats(), that flags spoofed or teleporting position reports before they're allowed to move an entity on screen.

Integrations

Each traffic domain, ships, flights, satellites, has its own manager module communicating only through vg1:* DOM events, with no direct cross-imports between them, documented further in the project's CLAUDE.md. Optional integrations include aisstream.io for live AIS data, Cesium ion for high-resolution terrain tiles, and a local Node flight-proxy.js script for flight tracking and an AI copilot layer.

Who it's for

Developers and enthusiasts exploring real-time geospatial visualization, maritime domain awareness demos, or Three.js-based mapping techniques, who want a runnable example with no build tooling to fight.

Source README

VANGUARD1 - Multi-Domain Tactical Intelligence Map

A real-time 3D map of the world's moving things: live ship traffic (AIS), aircraft,
satellites, submarine cables, ports, chokepoints, and space weather - rendered as a
1.5M-point terrain cloud with day/night, ocean simulation, and cinematic camera work.
Built with Three.js and plain ES modules. No build step, no framework.

Live demo - no signup needed:
click VIEW DEMO on the opening screen for synthetic traffic, or paste a free
aisstream.io key for live global ship data.

Try it

git clone https://github.com/jamalrfordii-arch/Vanguard-Map.git
cd Vanguard-Map
npx serve .        # or: python -m http.server 3000

Open http://localhost:3000 in a Chromium browser with hardware acceleration.

Live ship data (free): the app prompts for an aisstream.io
API key on first load - free signup, the key stays in your browser's localStorage.

High-res terrain tiles (optional): get a free token at
cesium.com/ion → Access Tokens, then in DevTools:
localStorage.setItem('vg1_cesium_token', 'YOUR_TOKEN'). Without it the map uses
the point-cloud terrain at all zoom levels.

Flights & AI copilot (optional): require the local proxy -
node flight-proxy.js in a second terminal. Without it those layers stay quiet;
everything else works.

Time control & scenarios

The map runs on a simulated clock and pluggable data sources - DevTools console:

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)

Synthetic vessels use reserved 999… MMSIs and are scripted in scenarios/*.json.

Tests

node tests/invariants.test.mjs

Architecture

One manager per domain (aisManager, flightManager, satelliteManager, …),
communicating only via vg1:* DOM events - no cross-imports. All position reports
pass a physics invariant gate (invariants.js) before they can move an entity.
See CLAUDE.md for the full module map and contribution rules.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.