GPS Pseudorange Geometry Workbench

Build a four-unknown GPS fix from range spheres, receiver-clock bias, and satellite geometry

animation
simulation
gps
gnss
positioning
geometry
Deterministic GPS pseudorange geometry workbench with draggable satellites, receiver-clock bias, signed measurement noise, Gauss-Newton solving, rank gating, GDOP, and PDOP.
GPS geometryPseudorangeRank 4

GPS Pseudorange Geometry Workbench

Each satellite contributes one measured range containing the same receiver-clock error. Build the constraints in stages, then solve position and clock together.

Unknownsx, y, z, clock bias
Enabled equations4 pseudoranges
Rank gaterank 4 — fix available
GeometryPDOP 1.87
Goal
See why a receiver clock adds a fourth unknown to three position coordinates.
Try
Choose “Three only”, then change only Enabled measurements from 3 to 4.
Observe
Rank changes from 3 to 4 and the hidden clock term becomes solvable.
Explain
Every pseudorange contains geometric distance plus one shared receiver-clock bias.
Stage 1Form one range sphere

One pseudorange constrains the receiver to a surface.

Stage 2Add constraints

More satellites intersect the candidate geometry.

Stage 3Expose the fourth unknown

The shared clock term shifts every pseudorange.

Stage 4Run one iteration

QR solves one Gauss-Newton update without forming an inverse.

Stage 5Diagnose geometry and noise

Rank, residuals, PDOP, and convergence qualify the fix.

Range-constraint scene

Start with one measured sphere. Drag a satellite or use its keyboard arrow keys to change the teaching geometry.

Stage 1 of 5
GPS pseudorange geometry Satellites and pseudorange constraints around the true and estimated receiver positions.
Solver statusSolved

Four independent measurements reveal all four unknowns.

Receiver estimate0.000, 0.000, 0.000 km

Converged in 3 iterations.

Clock bias300.000 m · 1.00 us

One shared term is estimated with position.

Rank4 of 4

The Jacobian has four independent columns.

GDOP / PDOP2.00 / 1.87

Geometry amplifies range uncertainty.

Predicted position RMS0.00 m

sigma range × PDOP.

One state, one calculation

The scene, residual ledger, solution, and geometry diagnostics all consume the same pure calculation result.

rho_i = ||r_true - s_i|| + b_clock + noise_i
residual_i = rho_i - (||r - s_i|| + b)
delta = QR_least_squares(J, residual)
[r,b]_(k+1) = [r,b]_k + delta
predicted position RMS = sigma_range × PDOP
Four independent measurements solve four unknowns.The receiver position and shared clock bias are published together.

Pseudorange and residual ledger

All distances below use the scale-neutral local teaching coordinates stored internally in metres.

Satellite Pseudorange Noise Residual Used

Deterministic fixture checks

These source-contract fixtures run in the page at 1e-6 relative tolerance. Rounded GDOP/PDOP gates are compared at their contracted two-decimal display precision.

Fixture Computed Expected Result
Technical boundaries. This is a deterministic pseudorange geometry solver with known satellite coordinates and one shared receiver-clock term. It does not acquire RF signals or model ephemeris/orbit error, satellite clock correction, ionosphere, troposphere, relativity, Earth rotation, multipath/NLOS, integer ambiguity, constellation time offsets, RAIM, Kalman filtering, map matching, or receiver power. Local fixture coordinates are scale-neutral solver checks, not satellite orbits. Real GNSS fixes require corrected ephemerides, calibrated measurements, quality checks, and more than the minimum satellites.

Model ownership: this workbench owns multi-satellite pseudorange equations, receiver-clock bias, solver iteration, and geometry amplification. UWB TWR retains two-device timing exchange and NLOS ranging; Location Selector retains technology and deployment choice.