← všechny projektylive

Orbital Ops

Multi-doménová operační konzole — 12 408 satelitů, letadel a lodí, propagovaných živě v prohlížeči.

CesiumJSReactTypeScriptViteZustandHonoSGP4WebGL

Živé demo

Architektura

TLE / ADS-B / AIS zdroje→Cache API · Hono + node:sqlite→Web Worker · SGP4→GPU point primitives→CesiumJS · WGS84 glóbus

Problém

Vesmírné a obranné týmy dnes provozují svůj operační obraz v prohlížeči — ale propagovat desítky tisíc orbitálních objektů v 60 fps, živě a bez placené tile/token služby je přesně to místo, kde většina dem padá.

Jak to začalovýzkum

Začalo to u matematiky SGP4 propagace a jedné otázky: kolik objektů udrží prohlížeč v 60 fps? Porovnal jsem CesiumJS vs deck.gl vs čisté WebGL, prostudoval zdroje TLE, ADS-B (OpenSky) pro letadla a AIS pro lodě — a rozhodl, že propagace musí opustit hlavní vlákno.

Rozhodnutí & kompromisy

SGP4 běží ve Web Workeru a krmí GPU point primitives, takže glóbus nikdy nezadrhne. Malé cache TLE API (Hono + node:sqlite) drží řešení bez tokenů; commitnutý TLE seed umožňuje běh úplně offline. CesiumJS vyhrál nad deck.gl kvůli skutečnému WGS84 glóbu.

Vývoj

React 19 + TypeScript 5.9 strict + Vite 7 + Zustand 5. Zrychlování/posouvání simulačního času, predikce přeletů, polární sky plot. 117 testů. Dockerizováno, nasazováno přes GitHub Actions na Hetzner box.

Screenshoty

Celý orbitální obraz — 12 000+ sledovaných objektů, obálka Starlinků a GEO prstenec, zamčená ISSISS (ZARYA) sledovaná živě — telemetrie, ground track a 24h predikce přeletů na polárním sky plotuMód AIRSPACE — ~13 000 živých letadel nad Středomořím přes ADS-B

V číslech

12,408
objektů živě
60 fps
SGP4 / worker
117
testů
0
tokenů · offline