Orbital Shells Screensaver
The Orbital Shells screensaver plots active satellites at their true altitude above the Earth, computed from the mean motion in each orbital element set. It runs in the browser with nothing to install; press ESC to exit.
How the Orbital Shells screensaver works
The saver renders with three.js on your GPU. The library is vendored into this site rather than fetched from a CDN, and is loaded only when a 3D screensaver actually runs.
It reads Celestrak's public catalogue of active satellites, which needs no key.
The scene resizes with the window and releases its WebGL context when the saver stops, so shuffle mode and Multi-view can cycle 3D savers without exhausting the browser's context limit.
If WebGL is unavailable the saver says so on screen rather than showing an empty black box.
Reading altitude from an orbital element set
Each tracked satellite is described by an element set, a compact record of its orbit published by tracking organisations. One entry in it, the mean motion, gives the number of orbits completed per day. From Kepler's third law, orbital period fixes the size of the orbit, so the semi-major axis, and from there the altitude above the surface, follows by calculation without needing the full position at any instant.
That approach shows structure clearly. Satellites in low Earth orbit often cluster at similar heights, and at about 35,786 kilometres above the equator a circular orbit takes one sidereal day (about 1,436 minutes), so a satellite there appears to hover over one place. All geostationary satellites share that altitude and sit in the equatorial plane at zero inclination, forming a thin ring.
The altitude derived from mean motion is an average for a nearly circular orbit. For eccentric orbits, the actual height swings between a low and high point, so one number is a simplification. Element sets also age and are refreshed regularly, so an object that has manoeuvred recently may be a little off from its listed value.
A worked example
Altitude comes from Kepler's third law: the mean motion in each element set gives revolutions per day, which converts to a semi-major axis and therefore a height. Plotted that way the catalogue stops being a tangle and becomes structure — a dense band a few hundred kilometres up where Starlink and the ISS live, a sparse middle, and a hard thin ring at 35,786 km where geostationary satellites sit motionless above the equator.
Settings & tips
- Accent and Background recolour the scene; Speed changes the pace of both the motion and the camera.
- Add it to a Multi-view grid, though 3D savers are heavier than the 2D ones and a few per screen is plenty.
- Press ESC at any time to leave fullscreen.
Frequently asked questions
- Are the positions exact?
- No, and the saver is built to show altitude bands rather than to track individual craft. Each satellite is placed on its real orbital plane at its mean anomaly using a circular approximation. Precise positions need full orbital propagation, which is a different job.
- Why is the geostationary ring so sharp?
- Because there is exactly one altitude at which an orbit takes 24 hours, so anything that needs to hover above a fixed point on the ground must be at that height. It is a physical constraint, not a convention.
- Does this need a special browser or plugin?
- No. It uses WebGL, which every current desktop and mobile browser supports. Nothing is installed and no plugin is required.
- Does it cost anything or need an account?
- No. Every screensaver here is free, runs in the browser and needs no sign-up.
- What does mean motion tell you?
- It is the number of revolutions per day. Through orbital mechanics it fixes the orbit's size, and therefore the altitude for a near-circular path.
- Why are geostationary satellites all at one height?
- Only one circular orbital radius gives a period equal to a sidereal day, about 35,786 km above the equator, which is what makes a satellite appear fixed over a spot.
- What is an eccentric orbit?
- It is an elongated, elliptical path. The satellite's altitude varies along it, so a single altitude value only describes its average size.