The elements
Two lines of numbers in the format the US Space Force has used since the 1960s: six orbital elements plus a drag term. The server fetches them from CelesTrak every six hours, because an orbit does not change faster than that.
Everything runs in your browser. Nothing you build is sent anywhere.
Nobody publishes where a satellite is, because it is somewhere else by the time you have read the sentence. What is published is the orbit. Turning that into a position is a specific, published model, and the app runs it.
Two lines of numbers in the format the US Space Force has used since the 1960s: six orbital elements plus a drag term. The server fetches them from CelesTrak every six hours, because an orbit does not change faster than that.
SGP4, the near earth branch, as set out in Spacetrack Report Number 3. Not a simplification of it: the secular terms from the flattening of the earth are there, the long and short period periodics are there, and the drag terms are there.
Fed the standard verification element set, the implementation agrees with the published reference to within nine metres over a full day. That check runs in the test suite on every build.
The model works in a frame that does not turn with the earth, so the longitude underneath comes from subtracting the sidereal angle. The latitude is the geodetic one, iterated against the ellipsoid, because the geocentric angle is out by up to a fifth of a degree and a track that is a fifth of a degree wrong is visibly wrong against a coastline.
The navigation constellations are not drawn. They orbit twice a day, which puts them in the range where lunar and solar resonance matter and the near earth equations stop applying. Running those equations outside the range they were derived for would produce a position that is quietly wrong, and a quietly wrong position is worse than an absent one. The deep space branch is a substantially larger model and is not here.
Everything in low orbit is inside the range: the crewed stations, the catalogued military objects, the communications constellations and the observation satellites.
CelesTrak publishes the catalogue as two line elements, the format the US Space Force has used since the 1960s. The server takes four groups every six hours: the crewed stations, the objects catalogued as military, a sample of the largest communications constellation, and the observation satellites. One fetch per site rather than one per visitor.
Seven numbers: inclination, right ascension of the ascending node, eccentricity, argument of perigee, mean anomaly, mean motion and a drag term. Together they describe an ellipse around the earth and how fast it is decaying. Nothing in them is a position.
The earth is not a sphere, and its equatorial bulge drags the orbit around underneath the satellite. The model computes how fast the node regresses, the perigee precesses and the mean anomaly advances, using the WGS-72 gravity constants the format was defined against.
Mean anomaly becomes eccentric anomaly by Newton iteration, then true anomaly, then a position in the orbital plane, then a position in earth centred inertial coordinates. This is the arithmetic that runs for every satellite every time the globe redraws.
Greenwich mean sidereal time for the current instant turns an inertial position into a position over the ground. This is why a satellite drawn at the same orbital point appears over a different country an hour later: the orbit did not move, the planet did.
The implementation is verified against the published test cases in Spacetrack Report Number 3, the document that defines the model. The test suite fails if any case drifts, which is the only reason to believe any of the above.
Within a few kilometres for a recent element set in low orbit, degrading as the elements age. The model is a simplification chosen for speed and range rather than for precision, and a few kilometres on a globe drawn at this scale is well under a pixel. It is not good enough to point a telescope with.
Atmospheric drag, mostly. Anything below about six hundred kilometres is flying through the very top of the atmosphere, losing energy and dropping. The drag term in the elements captures that, which is why a fresh element set matters more for a low satellite than a high one.
A geomagnetic storm heats and expands the upper atmosphere, so a satellite that was above most of it is suddenly inside more of it. Drag rises across the whole low orbit population at once. When the planetary index is high the instrument says so in the status strip, because it is the one live reading that changes what another layer means.
The full catalogue is around thirty thousand objects and a sample of two hundred and twenty says everything a picture can say about where a shell of satellites sits. Drawing all of them would cost a great deal of arithmetic to produce a solid band.
No. The orbital layer is a live observation of the world as it is, and the simulation is a model of futures. They share a screen and nothing else, and the interface never lets one change the other.
One full orbit, centred on now, split where it crosses the date line.
Open the simulator