| H3 hexagonal grid (Uber, h3geo.org) |
cells, refined areas, river level of detail |
refine.py, h3par.py, viewer/js/riverlod.js |
| Equal Earth projection (Šavrič, Patterson & Jenny 2018) |
flat map view |
viewer/js/geo.js |
| Inigo Quilez, "Domain Warping" (iquilezles.org/articles/warp) |
vegetation patch shapes in land colour |
tiles.py |
| Holdridge 1947, Science 105 (life zones) |
wooded share of open land by zone |
tiles.py |
| Rune Skovbo Johansen, erosion filter and Phacelle noise (2025, runevision.com / blog and Shadertoy; slope-aligned stripes, octave by octave) |
erosion gullies in the relief detail, done in 3-D on the sphere |
tiles.py |
| Dave Hoskins, "Hash without Sine" (Shadertoy 4djSRW, MIT); value noise (Perlin 1985) |
3D fine grain below the map's resolution |
viewer/js/tilelayer.js |
| Barnes, Lehman & Mulla 2014 (priority-flood + ε); Braun & Willett 2013 (stream-power incision) |
refined areas, sea-floor canyons |
refine.py, seafloor.py |
| Lindsay 2016, Hydrological Processes 30 (least-cost breaching of depressions; Dijkstra 1959) |
a world lake's way out cut through a fine sill |
refine.py |
| Pike 1964 (actual evapotranspiration); 6.5 °C/km lapse rate |
refined areas' runoff and temperature |
refine.py |
| Leopold & Maddock 1953, USGS Prof. Paper 252 (hydraulic geometry, width ∝ √Q) |
river channel width |
rivers.py |
| Strahler 1957 (stream order) |
which rivers show at each zoom |
viewer/js/riverlod.js, overlays.js |