Pick a world on the map or below. Drag to turn, scroll or pinch to zoom, click a site to fly to it. ✋ Hand control (on a planet's globe) opens a full-screen view.
Generated with AI. Built with Claude from the published data listed under each world's sources. Not independently reviewed, so check any number you rely on against the original source. All sources for the whole project →
Click a planet or moon to fly to it, then keep zooming in (or double-click it) to land on its globe right here. Drag to turn, scroll or pinch to zoom.
Planet orbits and positions come from JPL's approximate orbital elements (Standish): Table 1 for 1800–2050, and Table 2, with its extra terms for the giant planets, from 3000 BC to AD 3000. JPL gives the Table 2 errors in longitude as about 20″ for Mercury up to 40′ for Uranus. The planets can't be placed this way before 3000 BC: the Solar System is chaotic, so it takes a full numerical integration, and exact positions are lost entirely after tens of millions of years. Dates use the proleptic Gregorian calendar, and 1 BC is followed by AD 1. Pluto, Ceres and Vesta use single-epoch elements, so their positions are approximate, more so far from today. Moon orbits are drawn as circles at their true sizes, tilted by each planet's axial tilt as an approximation of the real planes; their positions along the orbit are illustrative. Body sizes are not to scale. The asteroids are a sample of 6,000 drawn from the real spread of the main belt (with the Kirkwood gaps that Jupiter's resonances clear) and of Jupiter's Trojans, which lead and trail Jupiter by about 60°; they show where asteroids are, not where any particular asteroid is.
Crater count
Click or tap a spot on the globe to count the craters around it and estimate the surface's age.
The model age fits the production function's shape to the craters in the chosen size range (a Poisson fit of its height) and reads the age off the chronology function. It assumes one surface of a single age, with no secondary craters, resurfacing or saturation; the plot shows how well that holds. Dashed lines are isochrons for 0.1, 1, 3, 3.5 and 4 billion years.
Under the pointer
Sites
From the Mars Planetary Modeling Atlas: the geologic timeline, Ancient Mars before Tharsis and the great basins, the proposed northern ocean, and the major impacts. Everything here is drawn on the globe above.
Bars are read off Fig. 1a of Wordsworth et al. (2021); era boundaries are about 4.1, 3.5 and 3.0 billion years ago. Solid colour means a process was in full swing, fading colour that it was starting or dying away, and a question mark that its start is uncertain. *The Borealis basin is not in Fig. 1a: the diamond at 4.4 Ga is Melosh's (2008) date, the dashed bar the looser bound of Andrews-Hanna, Zuber & Banerdt (2008).
Everything here stays in your browser. Open a planet pack, build a new world from map images, or add a layer or sites to the world on screen; whatever you load is kept together in your workspace for next time.
Worlds you open, build, or add layers and sites to are kept here, in this browser only, until you remove them.
A .json pack in the format described below, or a whole workspace, such as one saved from this page.
Use any global map in simple cylindrical (equirectangular) form, twice as wide as tall: a greyscale height map, a colour mosaic, or both.
Point this page at a public folder holding index.json and the world files, for example a GitHub repo served
through jsDelivr.
Where Earth’s ✈ Live flights and 🛰 Satellites switches get their data. Flights: an address returning
OpenSky-style JSON ({"states":[…]}) or readsb-style JSON ({"ac":[…]}, as used by adsb.lol,
adsb.fi and airplanes.live). Satellites: an address returning two- or three-line elements (TLE text);
{group} becomes the group picked on the globe. Your own copy or a proxy works if it allows cross-site reads
(CORS).
CSV with a header row: name,lat,lon,category,note. Latitude and longitude in degrees, east positive.
Category is free text.
{
"id": "venus", "name": "Venus", "kind": "Planet", "radiusKm": 6051.8, "refLabel": "6051 km sphere",
"blurb": "One or two sentences shown under the name.",
"grids": [{ // gridded maps: int16, little-endian, base64
"id": "topo", "label": "Topography", "unit": "m", "elev": true, // elev: sets the relief
"rows": 721, "cols": 1440, // rows 90°N→90°S inclusive, cols from 0°E eastward
"scale": 1, // value = stored integer × scale
"ramp": "hyps", // hyps | earth | div (zero-centred) | seq | grey
"min": -8000, "max": 10000, "ticks": [-8000, 0, 10000], "note": "…", "b64": "…" }],
"images": [{ "id": "c", "label": "Visible colour", "note": "…",
"src": "data:image/jpeg;base64,…" }], // equirectangular, 180°W at the left
"shade": "data:image/jpeg;base64,…", // optional relief shading, same layout
"categories": { "land": { "label": "Lander", "shape": "dot", "color": "#6aa8ea" } }, // dot|diamond|cross|ring
"alwaysLabel": ["land"],
"sites": [{ "name": "Venera 13", "who": "USSR", "date": "1982-03-01", "cat": "land",
"lat": -7.08, "lon": 303.0, "note": "…" }],
"features": [["Maxwell Montes", 65.2, 3.3]],
"points": [{ "id": "q", "label": "Quakes", "on": false, "color": "#6aa8ea",
"classes": { "deep": ["Deep quake", "#6aa8ea"] }, "ring": false,
"items": [["A1", -15.7, -36.6, "deep", "867 km deep", 0]] }], // last: diameter km, drawn when ring is true
"views": [["Ishtar", 60, 20, 3.9]], // name, lat, lon, distance in globe radii
"sources": [["Citation text", "https://…"]]
}