Live satellite positions on a 3D globe (CesiumJS). Click anywhere on the globe to set a search centre — the demo shows the satellite 3D-closest to that point and re-ranks them as you move. True 3D: altitude is part of the distance.
Refresh re-propagates every satellite to the current time with SGP4 (pure client-side math, no network) and rebuilds the index. Orbital element sets are downloaded from CelesTrak once per group per session. Reset clears OPFS state including the cached UniDic dictionary.
Auto-refresh pauses while the tab is hidden to save CPU — positions are recomputed locally, so refreshing never contacts CelesTrak again. Element sets change only a few times a day and CelesTrak temporarily blocks clients that re-download them repeatedly, hence the once-per-session fetch.
Results are always sorted by 3D Euclidean distance from the pin (altitude included). Use the search box or quick filters to narrow the matches by text — the closest matches up to the selected count are shown.
Live view of the DSL string the demo sends to
index.search() and the pin's internal state.
Handy when you want to copy the query into a CLI or unit
test.
———