Milky Way: the planets to the galaxy, from JPL and Gaia

One of the example apps. Built by asking an AI; runs offline in Snuggery.

I wanted one continuous zoom: start a few hundred kilometres above a moon, pinch, and keep going until the whole galaxy is in view and the Sun is a dot two thirds of the way out — with nothing on the way invented. Every planetarium app I know fills the gaps with artwork. This one shows what has been measured, says when a published fit is standing in for a measurement, and shows nothing at all where nothing real could be found.

It is a 6.5 MB download — a folder of HTML and JavaScript that runs offline in Snuggery's sandbox. It was built by asking: a brief that named the sources and the rule above, an AI workflow that fetched each dataset from a pinned address and checked it against a recorded checksum, wrote the pipeline and the app, and then reviewed the result against the rule.

What is real in it

Tap anything — a planet, a star, a stream, a spiral-arm fit — for a card with what is known about it and where the number comes from. The About panel lists every source, its licence and its accuracy note.

Milky Way: the Solar System with the planets on their orbits, and the galaxy seen from outside
The two ends of the zoom: the Solar System with time running, and the galaxy from outside with the Sun marked.

One zoom across fifteen orders of magnitude

The hard part is numbers, not pictures. A camera that can be 300 kilometres from a moon and four light-hours from Neptune in the same scene cannot live in 32-bit floats. So the camera lives in 64-bit, in astronomical units, and nothing on the GPU ever sees those values: each frame is drawn in three passes — the stars in parsecs around the Sun, the galaxy in kiloparsecs in its own frame, and the Solar System in AU relative to a floating origin at whatever you are looking at, scaled so the target is one unit away. The GPU only ever holds offsets from the thing in front of you.

"Up" is not fixed either. Near the Sun it is the ecliptic pole, so the planets lie flat; beyond about a light-year it is the galactic pole, so the disc does; in between it turns smoothly, and leaving the Solar System shows its plane tilting by about sixty degrees against the galaxy's, which is the real angle between them.

A note on the licences

The star, sky and young-star map files contain data from the European Space Agency's Gaia mission, processed by its Data Processing and Analysis Consortium, which is licensed for non-commercial use only; the app's CREDITS.txt says so, file by file, and so does the template's licence. The two young-star maps are redistributed under a permission their authors gave to another project, and no separate grant to downstream copies was found — which the credits also say, because saying what you do not know is the whole point of the app.

Sources: JPL/NAIF DE430 and satellite ephemerides; the JPL Small-Body Database, the Minor Planet Center and ESA NEOCC; NASA and USGS planetary maps; AT-HYG and HYG (CC BY-SA 4.0) and Gaia DR3 (CC BY-NC 3.0 IGO); Stellarium (CC BY-SA 4.0); the Local Volume Database (CC0), galstreams (BSD), SpiralMap (MIT), Agama (BSD/MIT); the Open Exoplanet Catalogue (MIT); three.js (MIT). In full in CREDITS.txt.

Open it in your browser · Get the ZIP for an iPhone with Snuggery · All the examples