A millisecond pulsar's rotation is stable to a few parts in 1015 — an X-ray detector that folds enough incoming photons modulo the known period P reveals a sharp pulse. But that only works if every photon's arrival time is first converted from the spacecraft's own clock to time at the Solar System Barycenter (SSB), because the craft's changing distance from the SSB shifts the light-travel time by far more than P.
This 2D view is not a flattened camera shot — it is the exact reduction of the full 3D formula. Because the craft always stays in the ecliptic plane (y=0), the 3D dot products collapse to a closed 2D form:
Roemer: Δt_R = (r · AU_km · cosδ · cos(θ_sc − α)) / c
Shapiro: Δt_S = −(2GM☉/c³) ln(1 + cosδ · cos(θ_sc − α))
Folded phase: φ = [(t_detector + Δt_R + Δt_S) / P] mod 1
Here r is the craft's Sun distance, θ_sc its orbital angle (drag the dot, or use the slider), α and δ are the pulsar's right ascension and declination, and 2GM☉/c³ ≈ 9.85 μs is the solar Shapiro constant. cosδ foreshortens the arrow toward the pulsar — a purely 2D stand-in for the out-of-plane component that never touches the Roemer delay, since the craft's own position vector has zero out-of-plane component by construction.
- Drag the spacecraft dot — sets both orbital angle and Sun distance at once; the sliders track it live.
- Position-knowledge error — the onboard navigation solution is never perfect. This slider adds a random residual (σ = error/c) to every barycentric correction, smearing the right-hand profile — the effect that limits real X-ray pulsar navigation (XNAV) precision.
- Pulsar choice — swaps in the real sky position and spin period of three navigation-relevant millisecond pulsars.
This is the barycentering step every XNAV and ground-based pulsar-timing pipeline performs before any position fix or clock comparison is possible — get the position wrong and the "lighthouse" blurs into background noise.