Documentation
Using the God's Eye View demo
A user manual for the hosted demo, a first-session walkthrough, and the technical detail integrators ask for.
1. Getting in
- Open gevapp.ed-edu.online.
- Enter the demo PIN you were given. Your browser remembers it for the session.
- The globe loads with satellite imagery. Open Data Layers to switch layers on.
Use a recent desktop Chrome, Edge, Firefox or Safari. The globe is GPU-heavy; phones work but are slower.
2. A first session
- Light up the sky. Turn on Flights. Thousands of live aircraft appear on real telemetry. Click one: the camera locks on, a trail draws and its telemetry card opens.
- Take the controls. Press COCKPIT (or C) on the tracked plane and ride it down. Switch sensors mid-flight with 1–7.
- Drop into an airport. Search an airport and descend to the taxiways — grounded contacts and taxi trails update in real time.
- Look through a public camera. Turn on Cameras over Austin, London, California or Finland. Feeds project into the 3D city; cycle coverage to VIEWSHED to see where each camera reaches.
- Track something in orbit. Turn on Satellites and click the ISS to ride along at orbital distance.
- Come home. Press Reset Globe to return to the full Earth.
3. Keyboard
| 1–7 | Visual styles (CRT, NVG, FLIR…) |
| H | Toggle HUD |
| D | Detection overlay |
| C | Cockpit view |
| ` | Frame-rate readout |
| Esc | Leave the current mode |
4. Technical architecture
Client. Vanilla JavaScript, CesiumJS and Vite — no framework. Each data layer is a separate module under src/data and src/layers.
Motion. Live feeds arrive every 15–30 s. The globe renders one interval behind real time, interpolates between fixes and dead-reckons gaps. Satellites use SGP4 propagation.
Server. A Node server brokers every request that needs a private key, with SSRF protection, response caps, sanitized errors, caching and per-provider request budgets.
Hosting. The server binds to 127.0.0.1 on the VPS. A reverse proxy terminates TLS for gevapp.ed-edu.online, checks the PIN and forwards to it. The key-entry panel is disabled when the server is shared.
5. API reference
These are the upstream server's internal endpoints, listed so integrators know what the hosted app calls. They are not a stable public API and may change with upstream releases.
GET /api/flights | Live aircraft positions (OpenSky + adsb.lol) |
GET /api/flights/track | Recent track history for one aircraft |
GET /api/military | ADS-B military traffic |
GET /api/vessels | Live ships (AISStream key) |
GET /api/celestrak | Satellite orbital elements |
GET /api/launches | Rolling 30-day launch list |
GET /api/cctv/sources | Public camera catalog |
GET /api/cctv/media | Proxied camera frame or stream |
GET /api/weather · /api/wind/grid · /api/cyclones | Observed weather, forecast wind, cyclone advisories |
GET /api/fire-perimeters · /api/gnss-integrity | Fire incident boundaries, regional GNSS accuracy |
GET /api/transit/vehicles · /api/gbfs | Live transit vehicles, bikeshare stations |
GET /api/route | Street-following directions (OSRM) |
GET /api/geocode | Place search (Photon / Nominatim, Google when configured) |
POST /api/realtime/token | Single-use voice session credential (OpenAI/Gemini key) |
6. Run your own copy
The project is open source. Install it with Pinokio in one click, or from a terminal:
git clone https://github.com/bilawalsidhu/gods-eye-view
cd gods-eye-view
npm install
npm run dev -- --host localhost --port 4173
It starts with no API keys. Add keys later from the in-app POWER UP panel. See the upstream README for Docker, keys and costs.