Skip to content

receptor/worldview

 
 

Repository files navigation

God's Eye

An open-source real-time geospatial intelligence dashboard built with CesiumJS. Track satellites, flights, military aircraft, earthquakes, surveillance passes, GPS jamming, maritime vessels, airspace closures, and internet outages — all on a 3D globe with military-style HUD overlays.

All data layers use free, publicly available, open data sources. No paid APIs required.

License React TypeScript CesiumJS Vite

Features

  • 11 Data Layers — Satellites, Flights, Military, Earthquakes, Country Labels, CCTV, Traffic, Surveillance Passes, GPS Jamming, Maritime AIS, Airspace Closures, Internet Outages
  • Visual Modes — Normal, CRT scanline, Night Vision (NVG), FLIR thermal
  • Playback System — Scrub through historical positions with adjustable speed
  • Military HUD — Tactical overlay with camera telemetry, MGRS coords, GSD estimation
  • Keyboard Shortcuts — Quick access to visual modes, landmarks, and UI controls
  • 100% Open Data — Every data layer is powered by free, open, no-auth APIs or open datasets

Prerequisites

  • Node.js >= 18
  • npm >= 9

Getting Started

1. Clone the repository

git clone https://github.com/alkeincodes/gods-eye.git
cd gods-eye

2. Install dependencies

npm install

3. Configure environment variables

Copy the example env file:

cp .env.example .env

Edit .env with your values:

VITE_CESIUM_ION_TOKEN=your_cesium_ion_token
VITE_OPENSKY_CLIENT_ID=your_opensky_client_id
VITE_OPENSKY_CLIENT_SECRET=your_opensky_client_secret

All API keys are optional. The app runs fully without any keys — it falls back to OpenStreetMap tiles and anonymous API access. Keys only improve imagery quality and rate limits.

4. Start the dev server

npm run dev

Open http://localhost:5173 in your browser.

5. Build for production

npm run build
npm run preview

Data Sources

Every data layer in God's Eye is powered by free, open, publicly available data. No paid subscriptions or private APIs are used.

Layer Source URL Auth Refresh License / Terms
Satellites CelesTrak celestrak.org/NORAD/elements/gp.php None 60 min Free public access
Flights OpenSky Network opensky-network.org/api/states/all Free account (optional) 10s OpenSky License — free for non-commercial use
Military ADSB.lol api.adsb.lol/v2/mil None 10s Free public API
Earthquakes USGS earthquake.usgs.gov/earthquakes/feed/ None 5 min Public domain (US Government)
CCTV TxDOT its.txdot.gov (static list) None 1 min Public government data
Traffic Overpass API (OSM) overpass-api.de/api/interpreter None 5 min ODbL
Surveillance CelesTrak Same TLE data, filtered by NORAD ID None 1s (propagation) Free public access
GPS Jamming GPSJam gpsjam.org/data/YYYY-MM-DD-h3_4.csv None 24h Free public data
Maritime AIS Simulated Mock data (Strait of Hormuz) N/A 15s N/A — generated locally
Airspace Static Hardcoded conflict/restricted zones N/A Never Public knowledge
Internet Outages IODA api.ioda.inetintel.cc.gatech.edu/v2/ None 5 min Free academic research data (Georgia Tech)

Optional API Keys

These keys are not required but improve the experience:

Cesium Ion Token (Optional)

Provides high-resolution terrain and satellite imagery. Without it, the app uses OpenStreetMap tiles which work perfectly fine.

  1. Create a free account at cesium.com/ion
  2. Go to Access Tokens and copy your default token
  3. Set VITE_CESIUM_ION_TOKEN in your .env

OpenSky Network (Optional)

Provides real-time commercial flight data. Without credentials, anonymous access works but is limited to ~100 requests/day.

  1. Register for free at opensky-network.org
  2. Navigate to DashboardOAuth and create client credentials
  3. Set VITE_OPENSKY_CLIENT_ID and VITE_OPENSKY_CLIENT_SECRET in your .env

Scripts

Command Description
npm run dev Start development server on port 5173
npm run build Type-check and build for production
npm run preview Preview the production build
npm run lint Run ESLint
npm run test Run tests with Vitest

Keyboard Shortcuts

Key Action
1 - 4 Switch visual mode (Normal / CRT / NVG / FLIR)
Q W E R T Jump to landmarks in current city
[ / ] Cycle between cities
H Toggle clean UI (hide HUD overlays)
Space Play / Pause (playback mode)
Esc Deselect / close panels

Tech Stack

  • Framework — React 19, Vite 7, TypeScript 5.9
  • 3D Globe — CesiumJS + Resium
  • Styling — Tailwind CSS v4
  • State — Zustand v5
  • Satellite Propagation — satellite.js (SGP4/SDP4)
  • Icons — Lucide React

Contributing

Contributions are welcome! Feel free to open issues and submit pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m 'Add my feature')
  4. Push to the branch (git push origin feature/my-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License — you are free to use, modify, and distribute it for any purpose.

Author

Kane DevTwitter · YouTube · GitHub · LinkedIn · Facebook

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.1%
  • CSS 1.3%
  • Other 0.6%