Choosing a propagator
Every object in the Orbit Visualizer carries a Propagator selector with three choices: SGP4 (for TLEs), J2 secular, and Two-body. TLE objects default to SGP4; classical-element and state-vector objects default to two-body. Change it any time from the object's dropdown — the app re-propagates immediately.
Where the selector lives
A Propagator dropdown appears in three places: the main Plot Orbit panel in the sidebar, the Add Object dialog, and each object's Properties dialog (the gear icon on the object card). Under the dropdown, a one-line description restates what the selected model does, next to a How we validate ▸ link. The object card shows a short badge — SGP4, J2, or 2B — for the current choice.
▶ Open a LEO orbit with J2 selected
Options by input type
The available models depend on how you entered the orbit, because SGP4 can only run on TLE mean elements:
- TLE objects — all three models are offered, in the order SGP4, J2 secular, Two-body. SGP4 is the default and the recommended choice.
- Classical-element and state-vector objects — Two-body and J2 secular are offered; SGP4 is shown disabled with the tooltip “SGP4 requires TLE mean elements; classical elements are osculating.” Two-body is the default.
The three model labels and their one-line descriptions come straight from the app:
- SGP4 (recommended) — “Operational TLE model with drag and deep-space terms (Vallado).”
- J2 secular — “Adds Earth-oblateness drift of node, perigee, and mean anomaly.”
- Two-body — “Ideal Keplerian ellipse; no perturbations.”
For the physics behind each — what they model and omit — see propagation models.
The TLE-as-two-body warning
If you switch a TLE object to Two-body, the object card shows a persistent warning: “TLE mean elements propagated as osculating — expect divergence.” This is deliberate honesty, not a bug: a TLE's numbers are mean elements fitted for SGP4, so treating them as an instantaneous (osculating) state drifts from reality — by hundreds of kilometres within a day. Keep TLEs on SGP4 unless you are deliberately demonstrating that divergence. J2 or two-body are the right choice for orbits you entered as classical elements or a state vector.
Setting the propagator from a link
Deep links accept an optional &prop=sgp4|j2|twobody parameter that overrides the default for the object in the link. TLE links otherwise default to SGP4; element and state-vector links default to two-body. An invalid or unavailable value falls back to the default for that input type (so prop=sgp4 on an element link is ignored). Full parameter reference: the URL API.
Changing the model re-propagates
Picking a new propagator rebuilds that object's trajectory right away — the drawn orbit, the analysis outputs, and the card badge all update to the new model. Two-body draws a closed Keplerian ellipse; J2 and SGP4 sample the real perturbed trajectory over one period from the current scenario time. If SGP4 reports a hard error or a decayed orbit, the badge switches to an error state; see troubleshooting.
Accuracy & model notes
SGP4/SDP4 is the operational model TLEs are fitted for; its real-world accuracy is bounded by TLE age (≈1–3 km at epoch, growing per day), not by the implementation. J2 secular models only the mean drift of node, perigee, and mean anomaly — no drag or resonance — and two-body is idealized geometry that diverges from real orbits within hours. The measured accuracy figures and methodology are on the validation page.
Related
Mini-FAQ
Why is SGP4 greyed out on my object?
SGP4 only runs on TLE mean elements, so it is disabled for objects entered as classical elements or a state vector. Add the object from a TLE (or the catalog) to use SGP4.
Which model should I use for a real satellite?
SGP4, on a fresh TLE. It is the operational model, and its accuracy is limited mainly by how old the TLE is — refresh the elements before time-sensitive work.