Global Threat Intercept β Real-Time Geospatial Intelligence Platform
---  **ShadowBroker** is a real-time, full-spectrum geospatial intelligence dashboard that aggregates live data from dozens of open-source intelligence (OSINT) feeds and renders them on a unified dark-ops map interface. It tracks aircraft, ships, satellites, earthquakes, conflict zones, CCTV networks, GPS jamming, and breaking geopolitical events β all updating in real time. Built with **Next.js**, **MapLibre GL**, **FastAPI**, and **Python**, it's designed for analysts, researchers, and enthusiasts who want a single-pane-of-glass view of global activity. --- ## β¨ Features ### π©οΈ Aviation Tracking - **Commercial Flights** β Real-time positions via OpenSky Network (~5,000+ aircraft) - **Private Aircraft** β Light GA, turboprops, bizjets tracked separately - **Private Jets** β High-net-worth individual aircraft with owner identification - **Military Flights** β Tankers, ISR, fighters, transports via adsb.lol military endpoint - **Flight Trail Accumulation** β Persistent breadcrumb trails for all tracked aircraft - **Holding Pattern Detection** β Automatically flags aircraft circling (>300Β° total turn) - **Aircraft Classification** β Shape-accurate SVG icons: airliners, turboprops, bizjets, helicopters - **Grounded Detection** β Aircraft below 100ft AGL rendered with grey icons ### π’ Maritime Tracking - **AIS Vessel Stream** β 25,000+ vessels via aisstream.io WebSocket (real-time) - **Ship Classification** β Cargo, tanker, passenger, yacht, military vessel types with color-coded icons - **Carrier Strike Group Tracker** β All 11 active US Navy aircraft carriers with OSINT-estimated positions - Automated GDELT news scraping for carrier movement intelligence - 50+ geographic region-to-coordinate mappings - Disk-cached positions, auto-updates at 00:00 & 12:00 UTC - **Cruise & Passenger Ships** β Dedicated layer for cruise liners and ferries - **Clustered Display** β Ships cluster at low zoom with count labels, decluster on zoom-in ### π°οΈ Space & Satellites - **Orbital Tracking** β Real-time satellite positions from N2YO API - **Mission-Type Classification** β Color-coded by mission: military recon (red), SAR (cyan), SIGINT (white), navigation (blue), early warning (magenta), commercial imaging (green), space station (gold) ### π Geopolitics & Conflict - **Global Incidents** β GDELT-powered conflict event aggregation (last 8 hours, ~1,000 events) - **Ukraine Frontline** β Live warfront GeoJSON from DeepState Map - **SIGINT/RISINT News Feed** β Real-time RSS aggregation from multiple intelligence-focused sources - **Region Dossier** β Right-click anywhere on the map for: - Country profile (population, capital, languages, currencies, area) - Head of state & government type (Wikidata SPARQL) - Local Wikipedia summary with thumbnail ### π· Surveillance - **CCTV Mesh** β 2,000+ live traffic cameras from: - π¬π§ Transport for London JamCams - πΊπΈ Austin, TX TxDOT - πΊπΈ NYC DOT - πΈπ¬ Singapore LTA - Custom URL ingestion - **Feed Rendering** β Automatic detection & rendering of video, MJPEG, HLS, embed, satellite tile, and image feeds - **Clustered Map Display** β Green dots cluster with count labels, decluster on zoom ### π‘ Signal Intelligence - **GPS Jamming Detection** β Real-time analysis of aircraft NAC-P (Navigation Accuracy Category) values - Grid-based aggregation identifies interference zones - Red overlay squares with "GPS JAM XX%" severity labels - **Radio Intercept Panel** β Scanner-style UI for monitoring communications ### π Additional Layers - **Earthquakes (24h)** β USGS real-time earthquake feed with magnitude-scaled markers - **Day/Night Cycle** β Solar terminator overlay showing global daylight/darkness - **Global Markets Ticker** β Live financial market indices (minimizable) - **Measurement Tool** β Point-to-point distance & bearing measurement on the map --- ## ποΈ Architecture ``` ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β FRONTEND (Next.js) β β β β βββββββββββββββ ββββββββββββ βββββββββββββββββββ β β β MapLibre GL β β NewsFeed β β Control Panels β β β β 2D WebGL β β SIGINT β β Layers/Filters β β β β Map Render β β Intel β β Markets/Radio β β β ββββββββ¬βββββββ ββββββ¬ββββββ ββββββββββ¬βββββββββ β β ββββββββββββββββΌββββββββββββββββββ β β β REST API (15s fast / 60s slowβ ββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββ€ β BACKEND (FastAPI) β β β β β βββββββββββββββββββββββΌββββββββββββββββββββββββββ β β β Data Fetcher (Scheduler) β β β β ββββββββββββ¬βββββββββββ¬βββββββββββ¬ββββββββββ β β β β β OpenSky β adsb.lol β N2YO β USGS β β β β β β Flights β Military β Sats β Quakes β β β β β ββββββββββββΌβββββββββββΌβββββββββββΌββββββββββ€ β β β β β AIS WS β Carrier β GDELT β CCTV β β β β β β Ships β Tracker β Conflict β Cameras β β β β β ββββββββββββΌβββββββββββΌβββββββββββΌββββββββββ€ β β β β β DeepStateβ RSS β Region β GPS β β β β β β Frontlineβ Intel β Dossier β Jamming β β β β β ββββββββββββ΄βββββββββββ΄βββββββββββ΄ββββββββββ β β β βββββββββββββββββββββββββββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ``` --- ## π Data Sources & APIs | Source | Data | Update Frequency | API Key Required | |---|---|---|---| | [OpenSky Network](https://opensky-network.org) | Commercial & private flights | ~60s | Optional (anonymous limited) | | [adsb.lol](https://adsb.lol) | Military aircraft | ~60s | No | | [aisstream.io](https://aisstream.io) | AIS vessel positions | Real-time WebSocket | **Yes** | | [N2YO](https://www.n2yo.com) | Satellite orbital positions | ~60s | **Yes** | | [USGS Earthquake](https://earthquake.usgs.gov) | Global seismic events | ~60s | No | | [GDELT Project](https://www.gdeltproject.org) | Global conflict events | ~6h | No | | [DeepState Map](https://deepstatemap.live) | Ukraine frontline | ~30min | No | | [Transport for London](https://api.tfl.gov.uk) | London CCTV JamCams | ~5min | No | | [TxDOT](https://its.txdot.gov) | Austin TX traffic cameras | ~5min | No | | [NYC DOT](https://webcams.nyctmc.org) | NYC traffic cameras | ~5min | No | | [Singapore LTA](https://datamall.lta.gov.sg) | Singapore traffic cameras | ~5min | **Yes** | | [RestCountries](https://restcountries.com) | Country profile data | On-demand (cached 24h) | No | | [Wikidata SPARQL](https://query.wikidata.org) | Head of state data | On-demand (cached 24h) | No | | [Wikipedia API](https://en.wikipedia.org/api) | Location summaries & aircraft images | On-demand (cached) | No | | [CARTO Basemaps](https://carto.com) | Dark map tiles | Continuous | No | --- ## π Getting Started ### π¦ Quick Start (No Code Required) If you just want to run the dashboard without dealing with terminal commands: 1. Go to the **[Releases](../../releases)** tab on the right side of this GitHub page. 2. Download the `ShadowBroker_v0.1.zip` file. 3. Extract the folder to your computer. 4. **Windows:** Double-click `start.bat`. **Mac/Linux:** Open terminal, type `chmod +x start.sh`, and run `./start.sh`. 5. It will automatically install everything and launch the dashboard! --- ### π» Developer Setup If you want to modify the code or run from source: #### Prerequisites - **Node.js** 18+ and **npm** - **Python** 3.10+ with `pip` - API keys for: `aisstream.io`, `n2yo.com` (and optionally `opensky-network.org`, `lta.gov.sg`) ### Installation ```bash # Clone the repository git clone https://github.com/your-username/shadowbroker.git cd shadowbroker/live-risk-dashboard # Backend setup cd backend python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # macOS/Linux pip install -r requirements.txt # Create .env with your API keys echo "AISSTREAM_API_KEY=your_key_here" >> .env echo "N2YO_API_KEY=your_key_here" >> .env echo "OPENSKY_USERNAME=your_user" >> .env echo "OPENSKY_PASSWORD=your_pass" >> .env # Frontend setup cd ../frontend npm install ``` ### Running ```bash # From the frontend directory β starts both frontend & backend concurrently npm run dev ``` This starts: - **Next.js** frontend on `http://localhost:3000` - **FastAPI** backend on `http://localhost:8000` --- ## ποΈ Data Layers All layers are independently toggleable from the left panel: | Layer | Default | Description | |---|---|---| | Commercial Flights | β ON | Airlines, cargo, GA aircraft | | Private Flights | β ON | Non-commercial private aircraft | | Private Jets | β ON | High-value bizjets with owner data | | Military Flights | β ON | Military & government aircraft | | Tracked Aircraft | β ON | Special interest watch list | | Satellites | β ON | Orbital assets by mission type | | Carriers / Mil / Cargo | β ON | Navy carriers, cargo ships, tankers | | Civilian Vessels | β OFF | Yachts, fishing, recreational | | Cruise / Passenger | β ON | Cruise ships and ferries | | Earthquakes (24h) | β ON | USGS seismic events | | CCTV Mesh | β OFF | Surveillance camera network | | Ukraine Frontline | β ON | Live warfront positions | | Global Incidents | β ON | GDELT conflict events | | GPS Jamming | β ON | NAC-P degradation zones | | Day / Night Cycle | β ON | Solar terminator overlay | --- ## π§ Performance The platform is optimized for handling massive real-time datasets: - **Gzip Compression** β API payloads compressed ~92% (11.6 MB β 915 KB) - **ETag Caching** β `304 Not Modified` responses skip redundant JSON parsing - **Viewport Culling** β Only features within the visible map bounds (+20% buffer) are rendered - **Clustered Rendering** β Ships, CCTV, and earthquakes use MapLibre clustering to reduce feature count - **Debounced Viewport Updates** β 300ms debounce prevents GeoJSON rebuild thrash during pan/zoom - **Position Interpolation** β Smooth 10s tick animation between data refreshes - **React.memo** β Heavy components wrapped to prevent unnecessary re-renders - **Coordinate Precision** β Lat/lng rounded to 5 decimals (~1m) to reduce JSON size --- ## π Project Structure ``` live-risk-dashboard/ βββ backend/ β βββ main.py # FastAPI app, middleware, API routes β βββ carrier_cache.json # Persisted carrier OSINT positions β βββ cctv.db # SQLite CCTV camera database β βββ services/ β βββ data_fetcher.py # Core scheduler β fetches all data sources β βββ ais_stream.py # AIS WebSocket client (25K+ vessels) β βββ carrier_tracker.py # OSINT carrier position tracker β βββ cctv_pipeline.py # Multi-source CCTV camera ingestion β βββ geopolitics.py # GDELT + Ukraine frontline fetcher β βββ region_dossier.py # Right-click country/city intelligence β βββ radio_intercept.py # Scanner radio feed integration β βββ network_utils.py # HTTP client with curl fallback β βββ api_settings.py # API key management β βββ frontend/ β βββ src/ β β βββ app/ β β β βββ page.tsx # Main dashboard β state, polling, layout β β βββ components/ β β βββ MaplibreViewer.tsx # Core map β 2,000+ lines, all GeoJSON layers β β βββ NewsFeed.tsx # SIGINT feed + entity detail panels β β βββ WorldviewLeftPanel.tsx # Data layer toggles β β βββ WorldviewRightPanel.tsx # Search + filter sidebar β β βββ FilterPanel.tsx # Basic layer filters β β βββ AdvancedFilterModal.tsx # Airport/country/owner filtering β β βββ MapLegend.tsx # Dynamic legend with all icons β β βββ MarketsPanel.tsx # Global financial markets ticker β β βββ RadioInterceptPanel.tsx # Scanner-style radio panel β β βββ FindLocateBar.tsx # Search/locate bar β β βββ SettingsPanel.tsx # App settings β β βββ ScaleBar.tsx # Map scale indicator β β βββ WikiImage.tsx # Wikipedia image fetcher β β βββ ErrorBoundary.tsx # Crash recovery wrapper β βββ package.json ``` --- ## π Environment Variables Create a `.env` file in the `backend/` directory: ```env # Required AISSTREAM_API_KEY=your_aisstream_key # Maritime vessel tracking N2YO_API_KEY=your_n2yo_key # Satellite position data # Optional (enhances data quality) OPENSKY_CLIENT_ID=your_opensky_client_id # Higher rate limits for flight data OPENSKY_CLIENT_SECRET=your_opensky_secret LTA_ACCOUNT_KEY=your_lta_key # Singapore CCTV cameras ``` --- ## β οΈ Disclaimer This is an **educational and research tool** built entirely on publicly available, open-source intelligence (OSINT) data. No classified, restricted, or non-public data sources are used. Carrier positions are estimates based on public reporting. The military-themed UI is purely aesthetic. **Do not use this tool for any operational, military, or intelligence purpose.** --- ## π License This project is for educational and personal research purposes. See individual API provider terms of service for data usage restrictions. ---
Built with β and too many API calls