Documentation

How to use the hosted God's Eye View demo, how it is built and run, and what it can and can't do yet. God's Eye View itself is the open-source work of Bilawal Sidhu; this deployment is unofficial.

1. Getting in

  1. Open godseyeviewapp.getskills.site in a recent desktop browser (Chrome, Edge, Safari or Firefox). The globe needs WebGL and a reasonable GPU. Phones work but are cramped.
  2. Enter the access PIN. Ask whoever shared this page with you; it is not published, because every visit spends real data-provider quota.
  3. The PIN keeps you signed in on that browser for 7 days. Too many wrong tries locks a network out for 15 minutes.
  4. A "Choose your first view" panel appears. Pick Live contacts for planes and ships, Environmental for quakes and fires, or press Esc to explore freely.
The demo runs on a single host machine. If the page says the demo is starting or offline, that machine is asleep or restarting; try again a little later.

2. User manual

The screen

AreaWhat it does
Top left: Data layers, ScenesSwitch live layers on and off; load saved scenes.
Top centre: iconsMap tools, share link, detection and orientation, globe reset.
Right: Display, CCTV, Street level, ContextPanels for visual options, public cameras, street-level photos and the contacts or briefing context.
Bottom: LocationSearch box and quick jumps (Austin, San Francisco, New York, Tokyo, London).
Bottom: Visual presetsThe seven sensor styles.
Bottom centre: micVoice control. It is not enabled on this demo.

Data layers

LayerSourceStatus here
FlightsOpenSky / ADS-B, aircraft types from adsbdbLive
Militaryadsb.lol military feedLive
AIS vesselsAISStreamLive
SatellitesCelesTrak element setsLive
EarthquakesUSGS realtime feedLive
FiresNASA FIRMSLive
TrafficTomTom flow tilesLive (daily cap)
CCTVCity and transport-agency camera APIsLive
Street levelMapillary, KartaView, PanoramaxLive
Weather, transit, cyclones, radio and moreVarious public feedsAvailable upstream; not individually verified here

Keyboard

KeyAction
1–7Switch among the seven visual styles: normal, CRT, night vision, FLIR thermal, anime, noir and snow
HShow or hide the heads-up display
DCycle detection overlays
CCockpit, when an aircraft is selected and tracked; otherwise toggles cameras
OToggle orbit
VClean view (hide the interface)
FToggle the layers panel
`Frame-rate readout
EscLeave cockpit or close the current panel

Cockpit mode

Open the Context panel in Contacts mode, or pick Live contacts at start. Click an aircraft to select and track it, then press C or use the cockpit control. The camera rides the contact with terrain underneath, a heads-up display of speed and altitude, and nearby flights labelled by callsign and flight level. Esc returns to the globe.

Public cameras

Turn on Cameras over a covered city (Austin is the richest). Each camera sits where it stands, and its live frame projects into the 3D scene. The CCTV panel steps through cameras (Prev, Next, Nearest) and switches coverage volumes on, showing what each camera can and can't see.

The share icon copies a link that restores the camera, style, map and layers. Links on this demo use the demo address, so recipients need the PIN too. The format is a URL fragment, for example:

https://godseyeviewapp.getskills.site/#v=2&lat=30.2672&lon=-97.7431&alt=6000&heading=0&pitch=-50&roll=0&style=nvg&l=…

3. A day in the life

Dana runs logistics for a regional freight company and wants to know why a container ship hasn't docked in Long Beach.

  1. 08:10
    Dana opens the demo, enters the PIN and picks Live contacts. She types 33.75,-118.22 into Location and the globe flies to the port.
  2. 08:12
    She turns on AIS vessels. Dozens of ships appear, most of them anchored offshore in a queue. She clicks her ship: name, speed 0.1 knots, heading and its wake trail.
  3. 08:15
    In the CCTV panel, Nearest finds a public camera on the waterfront. The live frame shows a crane idle and the berth empty.
  4. 08:18
    She switches on Traffic: the terminal access roads are red. She copies a share link with all three layers on and sends it to her team with the PIN.
  5. 08:25
    Before closing, she checks Earthquakes and Fires along the inland route the cargo takes next. Nothing within 50 km.
Dana is fictional; the steps are real features verified on this deployment. Live data changes minute by minute, so what you see will differ.

4. Technical architecture

God's Eye View is vanilla JavaScript with CesiumJS for the globe and Vite as its server. In this project the "server" is Vite's own server plus middleware that proxies each data provider. That's why it needs a running Node process rather than static hosting.

Request path

  1. Browser → Vercel. godseyeviewapp.getskills.site is a tiny Vercel project whose only job is a rewrite to the demo host's tunnel address, under an internal prefix /__godseyeviewapp/.
  2. Vercel → Tailscale Funnel. An encrypted tunnel delivers the request to the host machine. No router ports are open.
  3. Funnel → PIN gate. A small, dependency-free Node proxy on the host's loopback interface. It strips the prefix, checks a signed session cookie (or shows the PIN page), refuses blocked routes and forwards the rest. The same gate can multiplex further demos by prefix; requests without a prefix go to the first, longest-running demo.
  4. Gate → God's Eye View. The app on loopback serves the client and answers /api/* by calling providers with keys held in its ignored .env.
  5. Browser → tile servers. The globe's 3D tiles and imagery load straight from Cesium ion, Esri or OpenStreetMap.

Security model

Operations

The app and the gate run as macOS launchd agents with keep-alive, so they restart after a crash or reboot. Hot reload is switched off for the public lane (a configuration wrapper, not a code change), because Vercel rewrites can't carry WebSockets. The fork is unmodified upstream code; everything specific to this deployment lives in a separate delivery repository.

5. API reference

These are the app's own same-origin routes, as observed on this deployment. Behind the demo they need the session cookie. They are internal, unversioned, and may change upstream.

Data routes

RouteReturnsProvider
GET /api/flights?lamin&lomin&lamax&lomaxOpenSky-style state vectors in a bounding boxOpenSky / ADS-B
GET /api/adsbdb/type/{icao24}Aircraft type and operatoradsbdb
GET /api/militaryMilitary aircraft tracksadsb.lol
GET /api/vesselsLive AIS vessel positionsAISStream
GET /api/celestrak/{group}Orbital elements (stations, gps-ops, galileo, glo-ops, geo, visual)CelesTrak
GET /api/firmsActive fire detectionsNASA FIRMS
GET /api/tomtom/status, /api/tomtom/flow/…Budget status; traffic flow tilesTomTom
GET /api/cctv/sources, /health, /frame/{id}Camera catalogue, health, latest frameCity camera APIs
GET /api/mapillary/status, /tiles/…Street-level coverage tilesMapillary
GET /api/terrain/heights?points=lon,lat;…Ground heights for placing objectsTerrain service (90 req/min per peer)

Earthquakes load directly from the USGS public feed in the browser.

Configuration

Settings for this deployment (values for keys are never published):

SettingWherePurpose
CESIUM_ION_TOKEN, AISSTREAM_API_KEY, FIRMS_MAP_KEY, TOMTOM_API_KEY, MAPILLARY_CLIENT_TOKENapp .envProvider credentials
PINOKIO_SHARE_LOCAL=1app serviceSharing mode: disables Provider Settings and MCP
TOMTOM_DAILY_TILE_BUDGET=4000app serviceTraffic tile cap per day
GEV_ALLOWED_HOSTSapp serviceHostnames the app answers
GATE_ROUTES, GATE_PIN, GATE_SECRET, GATE_DAYSgate .envDemo routing, PIN and session signing

6. Known limits

7. Credits & licences

Software. God's Eye View © 2026 Bilawal Sidhu, MIT License, github.com/bilawalsidhu/gods-eye-view. The MIT grant covers the source code only. This is an unofficial, non-commercial demo of an unmodified fork. It is not endorsed by or affiliated with the author or Halfpixel.

Data and assets remain under their owners' terms:

Because several of these are non-commercial, this demo must not be used for commercial purposes.