GPS-01 is an interactive explainer for the geometry and timing behind a GPS position fix. Click the globe to place a receiver, then step through the signals that turn four satellite ranges into three position coordinates and one clock correction.
Try it at gps-01.dmytro.fyi.
This is a teaching model, not navigation software or a live GNSS receiver. It uses an idealized 24-slot GPS constellation rather than current broadcast ephemerides and does not report your real position unless you explicitly use the browser location control.
- Place a receiver. Click the visible globe and see which satellites clear its horizon and elevation mask.
- Meet the clock problem. The receiver's deliberately imperfect clock shifts every measured range by the same amount.
- Watch the signals travel. Four satellite wavefronts move toward the receiver while the demo accounts for signal flight time and Earth's rotation.
- See three satellites miss. The biased pseudoranges make a three-satellite solve that assumes a perfect clock land at the wrong position.
- Let the fourth satellite fix time. Solving for X, Y, Z, and clock bias brings the four ranges into agreement.
Earth and orbit geometry are drawn to scale. The tiny difference between a satellite's transmit and receive positions is magnified 6000× where labeled so it can be seen. The inline notes call out other deliberate simplifications.
For the code path behind the drawing, read the architecture overview.
This project uses pnpm.
pnpm install
pnpm devOpen http://localhost:3000. Press G to toggle developer controls and H to hide or restore the panels.
pnpm test
pnpm lint
pnpm exec tsc --noEmit
pnpm buildThis repository does not accept pull requests. Fork it if you want to experiment. See CONTRIBUTING.md.
Coastline geometry comes from Natural Earth 110m, converted at authoring time into the static data shipped with the app. Natural Earth data is in the public domain.
GPS-01 is available under the MIT License.