The 3D version renders the pass as an orbiting WebGL camera around a shaded Earth. This 2D companion instead looks straight down on the orbital plane: Earth is a flat disk, the ground telescope is a fixed dot on its rim, and the satellite is a dot tracing the same real circular orbit — drag to pan the view and scroll to zoom, since nothing here needs a 3D camera to be understood. Every number in the panel comes from the identical link-budget equations as the 3D pass, computed independently by this page's own code, not read from the other simulator.
Elevation: sin(el) = (d·ŷ) / |d|, d = r_sat − r_ground (2D, orbital-plane coordinates)
Airmass: AM ≈ 1 / sin(el) (Kasten–Young, capped)
Atmosphere: T_atm = exp(−τ · AM) (Beer–Lambert)
Diffraction: T_fs = min(1, (D_rx / (θ_div · range))²)
Total η = T_atm · T_fs · η_optics · η_det
Detected click rate = η·Rsrc + dark counts. QBER mixes the dark-count floor with optical misalignment (and, with Eve on, an intercept-resend attack that adds ~25% error to every intercepted pulse):
h₂(p) = −p·log₂p − (1−p)·log₂(1−p) (binary entropy)
R_sift = ½ · (detected rate) (basis reconciliation)
R_key = R_sift · max(0, 1 − 2·h₂(QBER)) (BB84 asymptotic rate)
Real BB84 collapses to zero key once QBER climbs past ≈11% — exactly the security guarantee: an eavesdropper who resends measured photons is statistically unmissable, so Alice and Bob simply discard the key rather than use a compromised one.
- Altitude — higher orbit means a longer, calmer pass but a longer slant range (more diffraction loss).
- Sky clarity — larger optical depth = more atmospheric absorption, worst near the horizon where airmass is high.
- Telescope aperture — a wider receiving mirror collects more of the diverging beam.
- Eavesdropper toggle — injects an intercept-resend attack; watch QBER cross the 11% line and the key rate drop to zero.
- Drag / scroll — pan and zoom the top-down orbital view; it never changes the physics, only what you're looking at.