How solmaps works

Deep Space Strategy · solmaps · Technical documentation · Computation status

How solmaps works

For the temporal-graph concept, every formula and the references, see the technical documentation.

solmaps is the open map and route engine of Deep Space Strategy. It computes what it costs to travel between places in the solar system on any date until 2100, and what that means for which places matter. This page lists the data, the models, the checks against real missions and the limits.

Status: experimental. Every model here simplifies the physics. The results are good enough to compare routes, dates and hubs, and to see which way an effect points. Mission design needs higher-fidelity tools such as NASA GMAT or ESA's own trajectory software.

Data

The resource atlas holds 37 entries: the planets, the major moons, Ceres, Vesta, Psyche, Pluto, three named near-Earth asteroids (Eros, Bennu, Ryugu), five asteroid populations and the Sun–Earth and Earth–Moon Lagrange points. It lists 98 resource entries, for water and other volatiles, metals, nitrogen, carbon and phosphorus, hydrogen and helium-3, silicates and sunlight.

Each resource entry has two labels. The evidence level says how well science knows it: confirmed (measured in place or in a returned sample), strong (several independent remote-sensing lines), inferred (spectral class or density analogy) or speculative. The verification tag says how solmaps checked it: page-checked (read on the source page), snippet-only (seen only in search results), derived (computed from checked inputs) or unverified. Of the 98 entries, 63 are page-checked. Sources include NASA's NSSDC fact sheets, JPL's Solar System Dynamics pages, mission pages and peer-reviewed papers; every entry links to its source.

Where things are

UseSourceRange and accuracy
Route costs (growth map, 3D routes)JPL DE440 ephemeris via ESA pykep (planet-system barycentres) to 2149, JPL Horizons (DE441) afterwardsAgrees with Horizons within 10 m; agrees with the JPL Table 1 positions to 0.00003 AU for Mars in 2040
Planet positions on the mapsJPL "Approximate Positions of the Planets", Table 1Valid 1800 to 2050; later dates on the maps are approximate and marked
Ceres, Vesta, Psyche, Eros, Bennu, Ryugu and 15 more asteroidsDaily JPL Horizons state vectors (perturbed by the planets)2026 to 2205; Bennu's solution ends in 2135, after its close Earth approach
MoonsJPL mean elements at J2000, period from the parent's massRough; the 3D atlas spreads moon distances out for visibility

Direct transfers

A direct route is one transfer arc from one site to another. For every departure date, every ten days from November 2026 to the end of 2100, solmaps solves Lambert's problem (the arc that connects two positions in a given flight time) for 100 flight times between 0.3 and 2.5 times the Hohmann time (at most 100 years) and keeps the cheapest after a final refinement. The maps on this site show 132 routes between 12 sites over 2,709 departure dates. The engine computes the same for every day and for 30 bodies: 870 routes, about 2.6 billion Lambert solutions. The computation status page lists what solmaps has computed so far.

The cost includes the burn that leaves a parking orbit and the burn that captures into the destination's parking orbit, using the Oberth relation Δv = √(v∞² + 2μ/r) − √(μ/r). Parking orbits: 300 km above Earth, Mars and Venus, 200 km above Mercury, 50 km above Ceres, and circular orbits at the distance of Callisto (Jupiter) and Titan (Saturn). At small asteroids a ship only matches their velocity. The maps use impulsive burns. The routing engine also computes low-thrust transfers for electric ships (see the engine documentation); the maps do not use them yet.

Flyby routes

Flyby routes use planets as slingshots. solmaps searches sequences with up to two flybys of Venus, Earth, Mars or Jupiter, from low Earth orbit and from low Mars orbit, to Jupiter, Saturn, Mercury, Ceres, Vesta and Psyche. Each leg may include one deep-space manoeuvre (pykep's MGA-1DSM model). A global optimiser (pygmo's self-adaptive differential evolution, eight islands, two independent starts per problem) finds the cheapest route in each two-year launch window. The search caps the flight time of each leg at 1.9 times the Hohmann time.

From low Earth orbit, the best slingshot route costs less than the direct route in every two-year window from 2027 to 2098 for Mercury, Saturn, Vesta, Ceres and Psyche, and in 34 of 36 windows for Jupiter. The median saving ranges from 1.0 km/s (Psyche) to 4.0 km/s (Mercury, with two Venus flybys); the technical documentation lists every target. From low Mars orbit, slingshots save less: the median saving ranges from 0.5 km/s (Psyche) to 1.9 km/s (Saturn), and for Ceres and Psyche the direct route costs less in about half of the windows.

Checks against reality

CheckReferencesolmaps
Planet positions from DE440 through pykepJPL Horizons state vectorsWithin 10 m
Round trips to near-Earth asteroids (NASA NHATS, seven published trajectories)NHATS speeds at departure, at the asteroid and at Earth entryWithin 0.001 km/s at the asteroid; within 0.012 km/s at Earth departure, because NHATS starts at Earth's centre and solmaps at the Earth–Moon barycentre
Leaving a 300 km Earth orbit for Mars3.59 km/s for the ideal Hohmann transfer between circular orbits in one plane3.61 km/s in the best window to 2100
Leaving a 300 km Earth orbit for Jupiter6.30 km/s for the ideal Hohmann transfer, computed the same way6.44 km/s in the best window to 2100
Earth to Mars transfer, 30 Oct 2026, 308 dayspykep's Lambert solver: v∞ 3.03 and 2.58 km/sSame values
Two independent network implementations, 2026–2048JavaScript on JPL Table 1 against Python on DE440Median difference 0.000 km/s, 95th percentile 0.02 km/s
Cassini (Earth–Venus–Venus–Earth–Jupiter–Saturn)Flown launch and flyby dates, 1997–1999Launch and inner flybys within 9 to 34 days
Juno, Galileo, DawnFlown sequences and datesSame sequences; inner encounters within one to three months

The ideal transfer assumes circular orbits in one plane. The real orbits are elliptical and inclined, so the best real window costs 0.6 percent more for Mars and 2.2 percent more for Jupiter. The optimiser only minimises Δv. Real missions also had to respect launch energy, arrival dates and, for Dawn, ion propulsion, so solmaps often picks a slower, cheaper arrival (Cassini at Saturn, Galileo at Jupiter).

Strategy measures

Propellant leverage

A hub with local water can refuel ships, so the propellant for the onward leg never leaves Earth. For each destination, solmaps compares the Earth-launched mass for a direct flight, exp(Δv_direct / vₑ), with the mass needed to reach the hub, exp(Δv_hub / vₑ). A destination counts only when the hub is cheaper to reach than the destination and lies closer to it than low Earth orbit does. The measure ignores dry mass, tankage, time at the hub and the cost of the plant. In the current results an Earth–Moon L1 depot fed by lunar ice saves 52 to 84 percent of Earth-launched mass over 2026–2100 (63 to 84 percent with direct routes only); the onward leg leaves the hub only after the ship has arrived there.

Depot orbits

solmaps scored 771 candidate solar orbits by two costs: the average cheapest transfer to eight destinations over 20 years, and the cost of supplying the depot from low Earth orbit. No orbit is best on both costs; the growth map lists the best orbit at each supply cost.

Cyclers

A cycler metric for Earth–Mars cyclers (maintenance burns at the flybys and the speeds a taxi must match) is in development; solmaps computes the cycler set for 2027–2097 (see the computation status).

The 3D atlas

The 3D atlas compresses distances from the Sun logarithmically and enlarges sizes, so Mercury and the Kuiper belt fit in one view. Directions and inclinations are true. It draws asteroid populations as clouds of illustrative particles inside their published ranges. It solves route arcs again between the displayed positions, so they meet the bodies on screen; their costs come from the DE440 network.

Build it yourself

The computations run in a container with ESA pykep and pygmo from conda-forge, so nothing needs installing on the host apart from Docker, Python 3 and Node.

make image      # build the container
make ephemeris  # fetch the daily JPL Horizons states (about 200 MB)
make data       # transfer network and alternatives
make test       # test suite, including the NHATS check
make site       # pages into docs/

The README lists every step, the flyby search and the daily data for all 30 bodies. Further validation scripts: network/validate.js, flyby/validate_cassini.py, flyby/validate_missions.py and flyby/compare_networks.py.

Limits and next steps

Deep Space Strategy is a research programme by Björn Hanneke; solmaps is its open engine. Code under the MIT licence, data and documentation under CC BY 4.0; source at github.com/bhanneke/solmaps. It builds on JPL's ephemerides and Small-Body Database, ESA's pykep, pygmo and three.js.