# Credits | Kind | Who | Note | |---|---|---| | Author | godosa | | | Libraries | see [licenses.md](licenses.md); three.js vendored | | | Tooling | AI assistance (Claude, Anthropic) | engineering tool; statement in README | ## Models and sources Methods taken from papers, textbooks or other projects (worldgen's own are in its CREDITS.md). Add a row in the same commit as the code. | Source | Used for | Module | |---|---|---| | 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` |