███████╗██╗ ██╗ ██╗ ██╗ ██╗██╗███████╗██╗ ██╗
██╔════╝██║ ╚██╗ ██╔╝ ██║ ██║██║██╔════╝██║ ██║
█████╗ ██║ ╚████╔╝ █████╗██║ ██║██║█████╗ ██║ █╗ ██║
██╔══╝ ██║ ╚██╔╝ ╚════╝╚██╗ ██╔╝██║██╔══╝ ██║███╗██║
██║ ███████╗██║ ╚████╔╝ ██║███████╗╚███╔███╔╝
╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝╚══════╝ ╚══╝╚══╝
The world is data. You just need to see it.
█▀▀ ▄▀█ █▀▀ █░█ █ █▀█ █▄░█ █▀█ █▀▀ █▀▀ █▀█ █▄░█ █▄░█ ▄▀█ █ █▀ █▀ ▄▀█ █▄░█ █▀▀ █▀▀
█▀░ █▀█ ▄▄█ █▀█ █ █▄█ █░▀█ █▀▄ ██▄ █▄▄ █▄█ █░▀█ █░▀█ █▀█ █ ▄█ ▄█ █▀█ █░▀█ █▄▄ ██▄
Flight routes. Cyber threats. Breaking intelligence. On one living Earth.
FLY-VIEW is a standalone, client-side 3D intelligence globe built on CesiumJS — a photorealistic, spinning Earth overlaid with three real-time data layers fused into a single cinematic interface. No dashboards. No cluttered panels. Just Earth, alive with data that means something.
Open it and you see your corner of the world — the globe locks to your geolocation with a smooth cinematic pull, like a satellite just found you. Then the data comes alive:
- Yellow arcs pulse across the globe — real aircraft, moving right now, pulled from ADS-B feeds
- Orange clusters burn over nations — active cybersecurity threat campaigns from AlienVault OTX
- Click any country — and a dark intel panel slides in with flights, threats, and tech headlines scoped to exactly where you clicked
This is not a flight tracker. This is not a threat dashboard. This is what the world actually looks like when you see all its signals at once.
- CesiumJS photorealistic Earth with terrain, atmosphere, and satellite lighting
- Smooth cinematic geolocation fly-in on first load — globe locks to your city
- Three visual modes — each reweights the data layer emphasis
| Data Source | Method | Rate |
|---|---|---|
| adsb.lol | REST API | Real-time |
| adsb.fi | REST API | Real-time |
| airplanes.live | REST API | Real-time |
| OpenSky Network | REST API | Fallback |
- Displays up to 800 aircraft simultaneously as animated yellow points
- 10 major world corridors rendered as glowing arcs (BOM-DXB, JFK-LHR, DEL-SIN, and more)
- Corridor brightness reflects traffic density — naturally showing global flow patterns
- Smart API failover — if one source goes down, the next kicks in instantly
- Pulls from AlienVault OTX public threat feed
- 20 countries mapped with active threat profiles — severity-scaled indicators
- Realistic threat types: APT, ransomware, phishing, DDoS, BEC, cryptojacking, cyberwar
- Indicator count, severity (1–10), and descriptive summaries
- Aggregates from TechCrunch, Wired, Ars Technica via RSS
- Region-aware filtering — click India, see India headlines
- Falls back to curated AI/cybersecurity headlines if feeds are unavailable
Two intentional gestures — not a party trick:
| Gesture | Shape | Action |
|---|---|---|
| ✈ Plane | Index + middle fingers spread apart (V) | Switches to TRANSIT mode + surfaces top corridors |
| 🛡 Shield | Flat hand, fingers together, pushed forward | Switches to STORM mode — threat layer dominates |
Runs entirely in-browser via MediaPipe Hands. No backend. No uploads. Your camera never leaves your device.
┌─────────────────────────────────────────────────────────┐
│ MODE │ FLIGHTS │ THREATS │ VIBE │
├─────────────────────────────────────────────────────────┤
│ ATLAS │ Full density │ Active markers │ Intel │
│ STORM │ Dim gray arcs │ Dominant, pulse │ War │
│ TRANSIT │ Every dot live │ Hidden │ Flow │
└─────────────────────────────────────────────────────────┘
- Type any flight number (AA101, EK201, UA287...)
- Globe flies the camera to the aircraft
- Pulls up intel panel scoped to departure/arrival region
The color system is strict and intentional. Every pixel carries meaning.
████ #000000 BLACK — Background. Always. Non-negotiable.
████ #FFD700 YELLOW — Flights. Motion. Commerce. Connection.
████ #FF6600 ORANGE — Threats. Danger. Friction. Heat.
████ #FFFFFF WHITE — UI text. Labels. Clarity.
████ #FF2200 RED — Critical. Severity 8+. Immediate.
No other colors appear anywhere in the application.
Typography is split between:
- Orbitron — display headers, logo, mode badges (futuristic authority)
- Space Mono — all data, labels, stats (terminal precision)
Visual effects: scanline overlay, radial vignette, CSS glitch on logo, animated grid on loading screen, pulsing live indicators, glow shadows on key values, corner marks on all four edges.
┌─────────────────────────────────────────────┐
│ LAYER │ TECHNOLOGY │
├─────────────────────────────────────────────┤
│ 3D Globe │ CesiumJS 1.111 │
│ Gesture Input │ MediaPipe Hands (WASM) │
│ Flight Data │ adsb.lol / adsb.fi / │
│ │ airplanes.live / OpenSky│
│ Threat Intel │ AlienVault OTX APIv1 │
│ News │ RSS2JSON (RSS proxy) │
│ Rendering │ WebGL (via Cesium) │
│ Framework │ None — Vanilla JS │
│ Bundler │ None — zero build step │
│ Server │ None — static files │
└─────────────────────────────────────────────┘
Zero dependencies installed locally. Everything loads from CDN. Works offline once cached.
# Clone
git clone https://github.com/vignesh2027/-FLY-VIEW.git
cd -FLY-VIEW
# Serve (any static server works)
python3 -m http.server 8080
# Open
open http://localhost:8080⚠ Must use a local server — CesiumJS requires HTTP context, not
file://
npx serve . # Node.js
php -S localhost:8080 # PHP
ruby -run -ehttpd . -p8080 # Ruby# Already configured — just enable in Settings
# Repo → Settings → Pages → Source: main branch → / (root)Live at: https://vignesh2027.github.io/-FLY-VIEW
FLY-VIEW/
├── index.html # App shell — all UI markup
├── css/
│ └── style.css # Full design system (~600 lines)
├── js/
│ ├── config.js # API keys, endpoints, constants
│ ├── globe.js # CesiumJS init, camera, click handler
│ ├── flights.js # ADS-B fetch, parse, render entities
│ ├── threats.js # OTX threat fetch, country mapping
│ ├── news.js # RSS aggregation, region filtering
│ ├── gestures.js # MediaPipe gesture classification
│ ├── ui.js # Panel updates, stats, toasts
│ └── app.js # Orchestrator, events, refresh timers
├── .nojekyll # GitHub Pages Jekyll bypass
└── README.md
No node_modules. No package.json. No build step. No framework. Ship it.
| Input | Action |
|---|---|
Click globe |
Open intel panel for that region |
Type + TRACK |
Search flight by callsign |
1 |
ATLAS mode |
2 |
STORM mode |
3 |
TRANSIT mode |
G |
Toggle gesture panel |
ESC |
Close intel panel |
Gesture ✈ |
V-fingers → TRANSIT |
Gesture 🛡 |
Flat push → STORM |
All APIs used are free tier, no registration required (except Cesium Ion token).
adsb.lol → https://api.adsb.lol/v2/all
adsb.fi → https://opendata.adsb.fi/api/v2/all
airplanes → https://api.airplanes.live/v2/all
OpenSky → https://opensky-network.org/api/states/all
Response format (adsb.lol):
{
"ac": [
{ "hex": "a1b2c3", "flight": "AA101", "lat": 40.6, "lon": -73.7,
"alt_baro": 35000, "gs": 480, "track": 85 }
]
}Public pulses → https://otx.alienvault.com/otxapi/pulses/?limit=20
Falls back to static threat profiles if CORS blocked.
https://api.rss2json.com/v1/api.json?rss_url={encoded_feed_url}
Feeds: TechCrunch · Wired · Ars Technica
Token: Set in js/config.js → CONFIG.CESIUM_TOKEN
Terrain: Ion asset ID 1 (Cesium World Terrain)
Edit js/config.js to customize:
const CONFIG = {
CESIUM_TOKEN: 'your-token-here', // cesium.com/ion
FLIGHT_REFRESH: 15000, // ms between flight updates
THREAT_REFRESH: 60000, // ms between threat updates
MAX_FLIGHTS_DISPLAY: 800, // max aircraft rendered
ARC_HEIGHT_FACTOR: 0.15, // corridor arc curvature
COLORS: {
FLIGHT: '#FFD700', // aircraft dots
FLIGHT_ARC: '#FFA500', // corridor arcs
THREAT: '#FF6600', // threat markers
THREAT_HIGH: '#FF2200', // severity 8+ threats
}
};Browser Load
│
├── CesiumJS renders WebGL globe
│ └── Geolocation API → cinematic fly-in to user's city
│
├── Parallel data fetch (every 15–60s)
│ ├── adsb.lol → parse ac[] → Cesium point entities
│ ├── AlienVault OTX → country threat profiles
│ └── RSS feeds → filtered news articles
│
├── Globe click → pick lat/lon → reverse geocode country
│ └── Open intel panel with scoped data
│
├── MediaPipe WASM → webcam frame analysis
│ └── Landmark classification → gesture events
│
└── Mode switch → re-render all entities with new opacity/color
Client-side caching prevents redundant API calls. Each data source has its own TTL:
- Flights: 12 seconds (near real-time)
- Threats: 60 seconds
- News: 120 seconds
The click-to-intel system covers 22 countries with full threat profiles:
India · USA · China · Russia · Brazil · UK · Germany · France
Japan · Australia · Canada · Ukraine · Pakistan · Iran · Turkey
Nigeria · North Korea · South Africa · Mexico · Indonesia · Vietnam · Israel
| Metric | Value |
|---|---|
| Aircraft rendered | Up to 800 |
| Corridor arcs | 10 named corridors |
| API calls / hour | ~240 (flights) + 60 (threats) + 30 (news) |
| Bundle size | ~0 KB (no local deps) |
| Time to interactive | < 4 seconds |
| Works offline (cached) | ✓ |
- No backend. No database. No user data stored anywhere.
- Geolocation is only used to fly the camera — never transmitted.
- Webcam feed for MediaPipe runs entirely in-browser (WebAssembly). No frames leave your device.
- No analytics. No tracking pixels. No cookies.
# Fork and clone
git clone https://github.com/YOUR_USERNAME/-FLY-VIEW.git
# No install step needed — just edit and serve
python3 -m http.server 8080
# Make your changes, then PR against mainAreas to contribute:
- Add new flight corridor arcs in
js/flights.js → _drawCorridorArcs() - Add more country bounding boxes in
js/app.js → COUNTRY_BOXES - Improve OTX threat parsing when CORS allows
- Add additional MediaPipe gestures
- Mobile layout improvements
MIT © 2025 vignesh2027
Free to use, fork, remix, and deploy. Attribution appreciated but not required.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ THE WORLD IS DATA. YOU JUST NEED TO SEE IT. █
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Built with CesiumJS · MediaPipe · adsb.lol · AlienVault OTX
Black. Orange. White. Nothing else.