Want to know where Starlink satellites are right now? Space View
renders their 3D positions in real time.
Want to know what's overhead? Observer View
overlays satellite positions and headings on top of the camera.
git submodule update --init --recursive
npm ci
npx wasm-pack build star-trak -- --features js-api
npx ng serve
# If CORS proxy server is required, then in another terminal run the following:
go run proxy/main.go
// Change the "gpUrl" value in src/environments/environment.prod.ts
export const environment = {
// ...
gpUrl: // ... The URL for the CORS proxy server
};
npx ng build --prod
The app fetches the latest Starlink constellation General Perturbations (GP) dataset.
It then periodically runs all the state computations and coordinate transformations on-device via the star-trak
WebAssembly package.
It fetches the GP dataset once at startup.
For the observer view, the app requests certain sensor data from the browser:
- Camera image feed
- Orientation data (including magnetometer)
- Geolocation
The app notes the magnetometer's reading of magnetic North, so that in case the readings are no longer available it can attempt to continue orienting the overlay.
If for some reason the device geolocation cannot be read anymore, then it defaults to the last known location.
Yes.
-
angular
is used as the frontend framework. -
three
is used to render the 3D objects, both inSpace View
andObserver View
.
The Starlink constellation dataset is fetched from a non-CORS server. In order to read the data, CORS needs to be explicitly allowed. A reference CORS proxy server implementation in Go is provided here.
- Earth Observing System Project Science Office, NASA Goddard Space Flight Center
- Scientific Visualization Studio, NASA Goddard Space Flight Center
- Earth Science and Remote Sensing Unit, NASA Johnson Space Center
For educational purposes only. STARLINK is a trademark of Space Exploration Technologies Corp. This application is not affiliated with STARLINK.