Planetary Modeling Atlas v15mk2.37

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 →

Solar System

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.

––
✦ Sky lore
How the planet positions are worked out

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.

Choose which worlds to show
✦ Sky lore Train hand control →

–

Under the pointer

Sites

Sites with local values

Your worlds and data

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.

Your workspace

Worlds you open, build, or add layers and sites to are kept here, in this browser only, until you remove them.

    Open a planet pack

    A .json pack in the format described below, or a whole workspace, such as one saved from this page.

    Build from map images

    Use any global map in simple cylindrical (equirectangular) form, twice as wide as tall: a greyscale height map, a colour mosaic, or both.

    Add a layer to this world

    Load worlds from the web

    Point this page at a public folder holding index.json and the world files, for example a GitHub repo served through jsDelivr.

    Live Earth data

    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).

    Add sites to this world

    CSV with a header row: name,lat,lon,category,note. Latitude and longitude in degrees, east positive. Category is free text.

    Planet pack format
    {
      "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://…"]]
    }

    About this world's maps

      Sources and how they’re used

        All sources for the whole project →