Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Orion

Project Orion

Project Orion is a real-time planetary command map built on CesiumJS. It combines NASA GIBS satellite imagery, NOAA/NWS radar, orbital tracking, aircraft, CameraNet, environmental monitoring, saved locations, live device location, and historical timeline playback in a dark glass command interface.

Current version: v1.1.2

Architecture

Orion has two runtime modes:

  • Static GitHub Pages mode serves the frontend and prebuilt pages-data/ JSON snapshots. Static mode must not call provider tile services that require backend proxying.
  • Local Python mode serves the same frontend through orion_server.py and can proxy same-origin imagery, CameraNet media, and provider workflows that require local request handling.

Important files:

index.html                  Main application shell
app.js                      Cesium app, timeline, layers, controls, telemetry
orion-config.js             Layer definitions, defaults, provider metadata
orion-provider-registry.js  Provider capability/state registry
orion-telemetry-health.js   Provider health, retry, and backoff state
orion_server.py             Local API and proxy server
camera_providers.py         CameraNet provider adapters
build_pages_data.py         GitHub Pages JSON snapshot builder
docs/                       Audit, issues, data sources, architecture, plan

Data Sources

  • Imagery: NASA GIBS / NASA ESDIS WMTS.
  • Radar: NOAA/NWS radar_base_reflectivity ArcGIS map service.
  • Satellites: CelesTrak GP/TLE data.
  • Earthquakes: USGS GeoJSON summary feeds.
  • Wildfires: NASA EONET event metadata.
  • Weather fields: Open-Meteo current conditions sampled on a cached global grid and rendered client-side for precipitation, wind, temperature, humidity, and pressure.
  • Cameras: public DOT/511/open-data providers through CameraNet adapters.
  • Power infrastructure: OpenInfraMap global OpenStreetMap-derived vector tiles, with the official U.S. transmission-line ArcGIS service as a regional fallback.
  • Aircraft: public ADS-B point feeds through the local backend and generated Pages catalog.

See docs/DATA_SOURCES.md for the source matrix and attribution notes.

Defaults

Heavy live and environment layers are off on first load:

  • Aircraft, satellites, debris, CameraNet, wildfires, radar, volumetric weather, lightning, and earthquakes.
  • User layer choices persist in local storage after deliberate toggles.
  • A visible in-app Data Sources and Attribution block appears in the telemetry panel.

Run Locally

Use Python directly:

python3 -m pip install -r requirements.txt
python3 orion_server.py 4174

Then open:

http://127.0.0.1:4174/

On Windows, the included launcher is still supported:

powershell -ExecutionPolicy Bypass -File .\start-orion.ps1

Environment Variables

The bundled integrations require no user-supplied setup secrets. Optional local settings are:

  • ORION_ALLOWED_ORIGINS for production backend CORS.
  • ORION_SYNTHETIC_INTEL=1 only when intentionally building demo fallback intel data.

GitHub Pages

The hosted site runs at:

https://arxhsz.github.io/Project-Orion/

The Pages workflow deploys on pushes to main:

  1. Check out the repository.
  2. Run python build_pages_data.py.
  3. Upload the static site and generated pages-data/ artifact.
  4. Deploy to GitHub Pages.

Supported and Unsupported

Supported:

  • Static NASA GIBS imagery.
  • Local and static NOAA/NWS current radar map service.
  • Current Open-Meteo precipitation, wind, temperature, humidity, and pressure overlays.
  • CelesTrak satellite OMM snapshots with legacy TLE fallback.
  • USGS earthquakes.
  • NASA EONET wildfire event metadata.
  • CameraNet discovery, verified public embeds, and browser-playable HLS/MJPEG live video.
  • Global high-voltage power lines, cables, substations, plants, generators, and local grid assets where source detail supports them.
  • Local backend mode for richer same-origin provider access.

Known limits:

  • Open-Meteo weather-field overlays are current global grids rather than provider-native raster tiles or historical animations.
  • Timelapse exports WebM plus metadata in-browser; MP4 requires a future backend ffmpeg pipeline.
  • Some CameraNet live streams are provider-limited, blocked, or expire; failures are shown as unavailable and never replaced with still images.
  • No free official source provides normalized live camera media for all 50 states. Orion reports actual provider coverage and omits metadata-only/fabricated camera markers.
  • NOAA radar current service is not historical/time-enabled in this implementation.

Performance

Performance budgets are centralized in orion-performance-budget.js and provider metadata in orion-config.js. Large live collections remain off by default, and provider refreshes use health/backoff state to reduce repeated failures.

Validation

JavaScript syntax:

npm run check:js

Node tests:

npm test

Python syntax:

python3 -m py_compile orion_server.py camera_providers.py build_pages_data.py

Build Pages snapshots:

python3 build_pages_data.py

Local smoke check:

python3 orion_server.py 4174
curl -I http://127.0.0.1:4174/
curl http://127.0.0.1:4174/live/weather/radar

Troubleshooting

  • If the app is opened from file://, launch it from localhost instead.
  • If an aircraft feed is unavailable, check the provider status and retry after the displayed backoff period.
  • If a provider is unavailable, check the telemetry panel provider status and docs/DATA_SOURCES.md.

About

Realtime planetary command map with Cesium, live weather maps, orbital tracking, CameraNet, and device location.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages