Live Sky Plot & Visibility

t+00:00:00 sim time

GPS (traditional GNSS)

visible: 0/24 · GDOP – · HDOP –
SVAz (°)El (°)Rise (h:m:s)Set (h:m:s)To set (h:m:s)

Kuiper (LEO broadband)

visible: 0/3236 · GDOP – · HDOP –
SVAz (°)El (°)Rise (h:m:s)Set (h:m:s)To set (h:m:s)

Pass duration distribution

Every rise-to-set pass above the elevation mask, over one full sidereal day (23h 56m), for the real Walker constellations above
GPS passes/day
–
GPS median duration
–
Kuiper passes/day
–
Kuiper median duration
–

Speed & Doppler

Orbital motion vs. line-of-sight rotation (animated)

v_rel (net velocity) v_r (radial — drives Doppler) v_perp (transverse — drives LOS rate) n — orbital rate, at Earth's centre ω — LOS rate, at ground station
GPS — live
Elevation–
Range d–
Radial velocity vr–
Transverse velocity v⊥–
Doppler fd–
LOS angular rate ω–
Mean motion n–
Kuiper — live
Elevation–
Range d–
Radial velocity vr–
Transverse velocity v⊥–
Doppler fd–
LOS angular rate ω–
Mean motion n–
–

Radial/transverse velocity decomposition — pinned elevation

–
GPS
Range d–
Radial velocity vr–
Transverse velocity v⊥–
Doppler fd = −vrf/c–
LOS angular rate ω ≈ v⊥/d–
Kuiper
Range d–
Radial velocity vr–
Transverse velocity v⊥–
Doppler fd = −vrf/c–
LOS angular rate ω ≈ v⊥/d–
Orbital speed (GPS)
–
Orbital speed (Kuiper)
–
Orbital period (GPS)
–
Orbital period (Kuiper)
–
Mean motion (GPS)
–
Mean motion (Kuiper)
–
Peak Doppler (GPS mask)
–
Peak Doppler (Kuiper mask)
–
Peak Doppler rate (GPS mask)
–
Peak Doppler rate (Kuiper mask)
–
Pass duration (GPS mask)
–
Pass duration (Kuiper mask)
–

Speed & period vs. altitude

Circular two-body orbit: v = √(μ/a), T = 2π/√(μ/a³)

Pass duration vs. altitude

Time above the elevation mask during a zenith-crossing pass, at the current inclination

Peak Doppler vs. altitude

Max |Doppler shift| during a zenith-crossing pass down to the elevation mask, at GPS's own L1 frequency

Doppler across one overhead pass

Representative pass at each system's own real altitude and inclination — rise to set, through zenith

Multipath Fade Period from Satellite Motion

Live two-ray multipath — GPS vs. Kuiper

A single fixed building west of the station reflects or blocks GPS and Kuiper satellites as they cross the sky, live — see the i button for how the geometry, satellite selection, and correlator model work.
t+00:00 sim time

GPS (L1)

fade period: –
Correlator zoom (both panels)

Kuiper Shell 1

fade period: –
Correlator zoom (both panels)
Phasor diagram (bottom): the same instantaneous coherent LOS/multipath phase & amplitude this frame's power and correlation regions above use, drawn as vectors —

Fade period vs. altitude

Evaluated at el = 45° during a zenith-crossing pass, GPS's own L1 frequency & current reflector height

Link Budget — GPS vs. Kuiper

GPS parameters

Kuiper parameters (Shell 1)

These are all explorable reference points, not real GNSS bands (no real GNSS signal uses C/Ku/Ka) — C/Ku/Ka let you see how FSPL alone would scale onto a real broadband-style carrier, closer to (though still not exactly) Kuiper's own real Ka-band service, without claiming this hypothetical payload actually operates there. EIRP/G-T above stay whatever you set regardless of band (this dashboard doesn't re-derive them per frequency).
Required Eb/N0 and Required C/N0 are independent per system; data rate is derived: rate = 10^((C/N0−Eb/N0)/10)

Link budget build-up at mask

GPS — required EIRP waterfall

At the elevation mask, working backward from the minimum C/N0 this link needs

Kuiper — required EIRP waterfall

At the elevation mask, working backward from the minimum C/N0 this link needs

Ground Coverage Footprint

GPS — geometry

–
GPS
Nadir angle ε–
Earth central angle λ–
Footprint radius–
Coverage area–

Kuiper — geometry

–
Kuiper (Shell 1)
Nadir angle ε–
Earth central angle λ–
Footprint radius–
Coverage area–

Footprint radius & coverage vs. altitude

At the current elevation mask

Antenna gain pattern

Ionosphere & Troposphere vs. Elevation

Iono delay (GPS) @ zenith
–
Iono delay (Kuiper, L-band) @ zenith
–
Iono delay (Kuiper, S-band) @ zenith
–
Tropo delay @ zenith
–
Tropo delay @ GPS mask
–
Tropo delay @ Kuiper mask
–
Peak electron density (Nmax)
–
Surface refractivity (N0)
–

Ionospheric delay vs. elevation — GPS vs. Kuiper

GPS L1 vs. Kuiper at L-band and S-band reference frequencies; same VTEC and shell height (350 km) for all — log scale

GPS total ranging error vs. elevation

Ionospheric electron density vs. altitude

Chapman-layer profile — shape fixed (F2 peak at 350 km, typical scale height), amplitude scaled so the column total matches the VTEC slider above

Tropospheric refractivity vs. altitude

Exponential reference atmosphere — scale height fixed at 7.35 km (ITU-R P.453), surface value scaled so the zenith integral matches the ZTD slider above

Frequency Bands — L-band vs. S-band

GPS Doppler @ L-band
–
Kuiper Doppler @ L-band
–
GPS Doppler @ S-band
–
Kuiper Doppler @ S-band
–
Iono delay @ L-band (zenith)
–
Iono delay @ S-band (zenith)
–
GPS C/N0 @ L-band
–
Kuiper C/N0 @ L-band
–
GPS C/N0 @ S-band
–
Kuiper C/N0 @ S-band
–

Peak Doppler vs. frequency

Zenith-crossing pass at each system's own real altitude, inclination & mask

Ionospheric delay vs. frequency

At zenith, current VTEC — log scale. GPS and Kuiper trace the same curve by construction (this model has no altitude term, only frequency) — Kuiper's shown dotted so it's still visible under GPS's line.

C/N0 vs. frequency

GNSS Accuracy Budget — GPS vs. Kuiper-GNSS

GPS total UERE @ 45°
–
Kuiper-GNSS total UERE @ 45°
–
Iono-free amplification, A(γ)
–
Dominant Kuiper-GNSS error term
–
Clock holdover contribution
–
Ambiguity-resolution speedup
–

Total UERE vs. elevation

GPS vs. the selected Kuiper-GNSS frequency plan — log scale

Ionosphere-free noise amplification vs. frequency separation

Cold-start acquisition — GPS vs. Kuiper-GNSS

GPS peak Doppler
–
Kuiper-GNSS peak Doppler (L-band)
–
Kuiper-GNSS cold-start Doppler bins
–
ISL-assisted bins (reduction)
–

Doppler Positioning — Multiple Satellites

Static: solves for receiver position + an unknown frequency bias, assuming the receiver doesn't move (needs 4+ satellites). Kinematic: also solves for receiver velocity, valid for a receiver that IS moving with unknown speed (needs 7+ satellites) — see the tab's info button.
Instantaneous Doppler: a frequency-lock loop (FLL) estimates range-rate directly, one epoch at a time. TDCP: a phase-lock loop instead differences accumulated carrier phase across two epochs Δt apart — a much lower noise floor, at the cost of needing unbroken phase lock over Δt. This tab assumes cycle slips are detected and repaired by a separate mechanism, so TDCP's number below is its steady-state precision floor, not a model of slip-outlier risk — see the tab's info button.
Legacy GNSS satellites in view
–
Kuiper satellites in view
–
Legacy GNSS 1σ position (3D)
–
Kuiper 1σ position (3D)
–
Legacy GNSS 1σ horizontal
–
Kuiper 1σ horizontal
–
Legacy GNSS CEP (50%)
–
Kuiper CEP (50%)
–
Legacy GNSS velocity 1σ (3D)
–
Kuiper velocity 1σ (3D)
–

Live positioning geometry

Each visible satellite colored by Doppler sign (green closing/blueshifted, red receding/redshifted) with a short arrow toward its own sensitivity direction — one row of the position-solving geometry. The dashed circle (CEP50) and shaded ellipse are the same weighted-least-squares fix as the stats above, combining every arrow into one position estimate — solving for velocity too, jointly with position, when the "Moving — kinematic" toggle above is on. Scaled to stay legible (true size can be cm to hundreds of meters), but the same scale is used in both panels — Legacy GNSS's and Kuiper's ellipses are honestly comparable in size, one to the other, not each independently zoomed to fill its own canvas.
t+00:00 sim time

Legacy GNSS

–

Kuiper

–

Achievable position accuracy vs. time

Single-epoch weighted-least-squares Doppler fix, recomputed every 20 s over the next 20 minutes from this ground station — log scale

Practical comparison

Structural — not slider-dependent. Multipath/NLOS resilience is a property of the Doppler technique, not of either constellation (docs §6).
AspectLegacy GNSSKuiper

Sensitivity to impairments & scenarios

Live — swing in 1σ position (3D) across each slider/toggle's full range, others held at their current setting (docs §4.3).
Impairment / scenarioLegacy swingKuiper swingMore sensitive

Time-to-first-fix (cold start)

Live — same cold-start Doppler-search model as the GNSS Accuracy Budget tab's own acquisition card.
MetricLegacy GNSSKuiper

TOA (pseudorange) vs. Doppler positioning

Live — TOA uses each pool's own real satellite geometry (PDOP/HDOP, the same figures the Live Sky Plot and Summary tab show) times its GNSS Accuracy Budget UERE; Doppler reuses the fix and TTFF already shown above, at whichever receiver-dynamics mode is currently selected.

Legacy GNSS

MetricTOADoppler

Kuiper

MetricTOADoppler

Inter-Satellite Link — Two-Way Time Transfer

Live pair geometry

Real, live-propagated Kuiper satellites — not a fixed example. Pair: –
t+00:00 sim time
Separation dAB
–
Range rate ḋAB
–
One-way light time
–
Sagnac delay (ECEF)
–
Relativistic differential
–

Two-way time transfer — live recovery

A known clock offset is injected between A and B; TWTT recovers it from timestamps alone, using the pair's real range above.
True offset δtAB
–
Recovered offset
–
True range dAB
–
Recovered range
–
Range residual (non-simultaneity)
–
Offset residual (non-simultaneity)
–

TWTT vs. GNSS timing accuracy over one orbit — closest available pair

At each moment, each ISL category links to whichever real candidate is currently closest — not one fixed pair — at the current exchange-gap slider setting. Dotted/dashed lines are published GNSS-alone timing benchmarks (GPS+Galileo, dual-frequency, with and without SSR corrections), for comparison. Intra-plane isn't plotted: its accuracy is effectively perfect (residual pinned at the floating-point floor, since its range rate is exactly zero) and would just compress the other lines onto a much wider axis.

Summary — Legacy MEO GNSS vs. Kuiper / Starlink / Xona LEO GNSS

Scorecard

DimensionGPSKuiperAdv.StarlinkAdv.XonaAdv.

Orbital & coverage

MetricGPSKuiperStarlinkXona

Link budget & C/N0 at mask

MetricGPSKuiper (L)Kuiper (S)Starlink (L)Starlink (S)Xona (L)Xona (S)

Accuracy & UERE budget (45° elevation)

MetricGPSKuiper (dual-L)Kuiper (L+S)Starlink (dual-L)Starlink (L+S)Xona (dual-L)Xona (L+S)

Acquisition & TTFF

MetricGPSKuiper (L)Kuiper (S)Starlink (L)Starlink (S)Xona (L)Xona (S)

Interference & multipath resilience

MetricGPSKuiper (L)Kuiper (S)Starlink (L)Starlink (S)Xona (L)Xona (S)
Modeling assumptions

Circular two-body orbits (no J2/drag perturbations), spherical Earth, arbitrary simulation epoch (not tied to real-world sidereal time, so satellite positions here do not correspond to any actual real-world instant). Built for comparative, order-of-magnitude engineering intuition, not precision ephemeris — for a full SGP4-based propagation of the Kuiper constellation with real epochs, see the companion Python simulator in leosim/.

GPS and Kuiper each have their own independent elevation-mask model (rail: "GPS Mask & Antenna" / "Kuiper Mask & Antenna"), not one shared control. The "Simple angle" mode is a flat cutoff with no antenna modeling at all — GPS defaults to this, at 10°. The "Link-margin model" adds a simplified phased-array scan-loss term (projected-aperture approximation, gain ∝ cosn of the scan angle from zenith) plus relative free-space path loss, and solves for the elevation where combined loss vs. the ideal zenith case equals a margin budget you set — Kuiper defaults to this. At each profile's default budget/exponent (13.75 dB, n=1.5 — the same starting numbers, tunable independently) this lands GPS's effective mask (~9°, if switched to link-margin mode) close to its real-world ~5-10° operational mask — but that's a coincidence of curve-fitting, not causation: GPS's real mask comes from multipath and tropospheric/ionospheric delay tolerance, a completely different mechanism than phased-array scan loss, which is exactly why GPS defaults to the simple mode instead. Kuiper's higher effective mask (~20°+), on the other hand, is exactly the mechanism this model represents, since every real LEO broadband constellation uses phased-array terminals. Neither mode models atmospheric attenuation, rain fade, or satellite-side antenna patterns.

The Link Budget tab adds absolute C/N0 (EIRP − FSPL − other loss + G/T + 228.6 dB) on top of that. GPS and Kuiper (Shell 1) are shown simultaneously, each at its own real fixed altitude and frequency with its own independently adjustable EIRP/G-T/loss/data-rate sliders — not one shared state toggled between systems. Both deliberately hold EIRP and G/T constant across elevation — no scan-loss term — so each system's own "link-limited mask" (where margin crosses zero) is a different, independent estimate from the rail's scan-loss-aware effective mask for that same system; expect them to disagree somewhat, that's the two models' different simplifications showing, not a bug. GPS's default parameters are well-documented (EIRP reverse-derived from IS-GPS-200's published −158.5 dBW minimum received power spec); this dashboard's LEO-GNSS payload's numbers now match docs/leo-vs-meo-gnss.md §5.7's own "common handheld receiver" figures exactly (EIRP +15.5 dBW, G/T −24 dB/K — deliberately the same receiver as GPS's, not a purpose-built broadband terminal's, so that the C/N0 advantage this tab computes reproduces that section's headline +10.33 dB result, not some other number) rather than the generic Ka-band phased-array antenna theory (aperture gain, typical LNA noise figure) an earlier version of this tab derived them from independently — those numbers were never reconciled with the document's own later, more carefully worked link budget until this pass, and stay fixed regardless of which real LEO constellation is selected above, since this payload is hypothetical either way. Its data rate default is similarly 750 bps, the real Kuiper-PNT nav-message rate from §11.4 (kept as the illustrative figure even when Kuiper isn't the selected constellation, since it names a specific published Amazon design, not a generic LEO figure), not the selected constellation's real, far higher broadband service rate (a different, real, but not-this-tab's scenario, and a different number for each real constellation besides). Its carrier on this tab is selectable between an L-band and an S-band reference frequency (docs/leo-gnss-design.md) rather than any real constellation's actual broadband frequency, but its EIRP/G-T defaults are not re-derived per band — the same numbers are reused at whichever frequency FSPL is computed at, since a fixed real aperture's actual gain would differ substantially between bands, same simplification §5 itself doesn't need to make (it only evaluates L-band). The "other loss" term is clear-sky only and excludes rain fade, historically the dominant real-world design driver for Ka-band links specifically — not that this tab's default scenario uses Ka-band any more.

The Ionosphere & Troposphere tab uses a single-layer thin-shell ionosphere model (fixed 350 km shell height, the classic Klobuchar (1987) assumption, also codified in IS-GPS-200) rather than a full 3D electron density profile, and a simple cosecant tropospheric mapping function (less accurate below ~15° elevation than real mapping functions like Niell (1996)). Tropospheric delay is treated as frequency-independent, which is true for refractive delay but excludes absorption lines and rain fade specific to whichever real band a system actually operates in. Kuiper is shown at the L-band and S-band reference frequencies used throughout the Kuiper-GNSS design work (docs/leo-gnss-design.md), not its real broadband carrier frequency — no chart on this dashboard uses a real constellation's own downlink frequency. VTEC and zenith tropo delay are user-adjustable illustrative values, not tied to any real date, location, or space-weather data — Kuiper's L-band iono delay is identical to GPS's by construction (same frequency), and its S-band figure follows directly from the 1/f² dispersion law regardless of the specific VTEC chosen.

The Frequency Bands tab reuses the same Doppler, ionospheric-delay, and C/N0 calculations from elsewhere, swept across carrier frequency with every other parameter (altitude, EIRP/G-T, VTEC) held fixed. Real systems typically co-design antenna gain with operating frequency — a higher-frequency system usually uses a higher-gain antenna to offset the ∝f² path-loss penalty the C/N0 chart shows — so read that chart as "impact of frequency alone, other things equal," not a prediction of how a real system's link budget would change if its carrier were simply retuned.

The GNSS Accuracy Budget tab is a hypothetical design exercise, not a real system — see docs/leo-gnss-design.md for the full rationale. GPS's clock/ephemeris, ionosphere-free residual, post-model tropospheric residual, and multipath terms are fixed illustrative allowances, not re-derived from other tabs — in particular, the tropospheric term here is a small (cm-level) post-model residual, deliberately not the same quantity as the Atmosphere tab's multi-meter raw zenith delay, since real receivers (single- or dual-frequency alike) correct troposphere with a standard blind model and only the residual belongs in a UERE budget; using the raw delay here would swamp every other term and hide the comparisons this tab exists to show. GPS's ionosphere term is the exception that does reuse this dashboard's own atmosphere model directly, since GPS here has no dual-frequency correction to apply. Kuiper-GNSS's clock term comes from a simplified holdover model (Δr = c·σy(τ)·holdover time) that is explicitly not a rigorous Allan-variance derivation — the OCXO grade uses one illustrative flat σy, while the CSAC grade uses Microchip's real SA.45s/Space CSAC-SA65 datasheet, log-log interpolated across its four published points rather than a single flat number (a flat τ=1s value overstated CSAC's long-holdover error by roughly an order of magnitude, caught by the Node smoke test before publishing). The tracking-noise term uses a standard non-coherent DLL discriminator formula (Van Dierendonck, Fenton & Ford 1992) evaluated at a fixed narrow-correlator/loop-bandwidth/integration-time configuration — none of those three are exposed as sliders. That tracking-noise term is also where the dual-L-vs-L+S frequency-plan choice actually acts (via the ionosphere-free amplification factor A(γ)); it's real but small enough to be invisible in the total-UERE chart, so it's shown on its own in the second chart instead. The ambiguity-resolution "speedup" stat is a ratio of each system's own 45°-elevation angular rate (the same physical quantity the Multipath tab's fade period depends on), not an absolute convergence-time prediction. The cold-start acquisition card models only the Doppler dimension of the acquisition search (code-phase search is unaffected by altitude); the assisted-search window (±500 Hz) is an illustrative round figure, not derived from a specific ISL message-format budget.