π°οΈ S H A D O W B R O K E R
Global Threat Intercept β Real-Time Geospatial Intelligence Platform
TOP SECRET // SI TK // NOFORN
---
**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