Skip to content
Futurisca A computational laboratory for the future
Reference

Satellites, computed in your browser

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.

How it works

01

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.

02

The model

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.

03

The check

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.

04

The frame

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.

What is deliberately missing

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.

From seven numbers to a dot on a globe

  1. The elements are fetched once

    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.

  2. The orbit is unpacked

    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.

  3. The secular rates are computed

    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.

  4. Kepler is solved, per satellite, per frame

    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.

  5. The earth is rotated underneath

    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.

  6. It is checked against the reference

    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.

What the layer will and will not tell you

How accurate is a position on the map

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.

Why does the same satellite drift day to day

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.

What does the space weather reading have to do with it

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.

Why only a sample of the large constellation

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.

Does any of this feed the simulation

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.

The stations carry their ground track

One full orbit, centred on now, split where it crosses the date line.

Open the simulator
Reference 07 / 10