Where an avalanche released up there would stop
The same 455k-cell terrain, read as a hazard map. One WGSL pass takes the slope of every cell; a second gives every cell in the release band — 30–50°, the band NVE's aktsomhetskart is built on — its own thread, which marches a steepest-descent path downhill and stops it where the α line from the release point catches the terrain again. That is the classic α–β runout model: released at h₀, an avalanche runs about h₀ / tan α in the horizontal. Thousands of independent paths, one dispatch, each stamping the cells it crosses — so the amber field is not a buffer around the steep ground, it is how many release zones can actually reach that cell. Click any slope to re-run one path in TypeScript from the same rules and read its long profile with the α line drawn over it; the CPU-check row is the GPU's runout length for 24 release cells against that same march, in metres.
WebGPU not available in this browser
The slope and runout passes need a WebGPU-capable browser (Chrome/Edge 113+, or
Safari 18+). The WGSL source ships in the bundle either way, so open
src/avalanche.ts to read it.
Plate 08 · slope + α–β runout · WGSL compute Click any slope for its runout path · drag to orbit · scroll to zoom · Terrarium DEM over Bymarka, no NVE polygons — the release band is slope only
Happy to walk through any of it.
Also built: embedded systems, moving-map engines, production Rust against Norwegian national geodata, and a live product of my own at solrapport.no.
bjreppen@gmail.com