commit cbeb46c93545d57a2822ab6fce7e1b5ef1656839
parent 3b51766e9842f2e890b6c3096fe52aaf62216754
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Thu, 30 Apr 2026 20:49:36 +0200
content: add post on duneweb cellular automata
Diffstat:
4 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/img/duneweb.png b/img/duneweb.png
Binary files differ.
diff --git a/pages/020-duneweb.cfg b/pages/020-duneweb.cfg
@@ -0,0 +1,7 @@
+filename=duneweb.html
+title=duneweb: Cellular automata for bedforms
+description=Educational tool for visualizing how simple rules at the grain scale give rise to dunes and ripples.
+id=duneweb
+tags=science, education, cellular-automata
+created=2026-04-30
+updated=2026-04-30
diff --git a/pages/020-duneweb.html b/pages/020-duneweb.html
@@ -0,0 +1,65 @@
+<blockquote>
+<p>Demo: <a href="https://andersdamsgaard.dk/duneweb">andersdamsgaard.dk/duneweb</a>.</p>
+</blockquote>
+
+<figure class="pagefigure">
+ <a href="https://andersdamsgaard.dk/duneweb"><img src="img/duneweb.png"
+ alt="duneweb"
+ class="pageimg"/></a>
+</figure>
+
+<p><a href="https://andersdamsgaard.dk/duneweb">duneweb</a> is an interactive educational tool demonstrating how
+cellular automata and self-organizing complexity explain bedforms: the
+ripples and dunes that rivers, oceans, and deserts build under flowing
+fluids.</p>
+
+<h2 id="motivation">Motivation</h2>
+<p>Sediment on a river bed does not stay flat. Small perturbations grow
+into regular ripples, which merge and evolve into larger dunes. This is
+a consequence of feedback between flow, sediment transport, and
+topography.</p>
+<p>Systems like these appear in many places, from the stripes on sandy
+beaches to the linear dunes sweeping across the Sahara, and studying
+them reveals general patterns of complexity that emerge from local
+interactions alone.</p>
+
+<h2 id="mechanics">Mechanics</h2>
+<p>duneweb simulates a thin layer of sediment on a two dimensional grid.
+Each cell holds a height representing the local bed elevation. The rules
+are simple:</p>
+<ul>
+ <li><strong>Upslope erosion</strong>: fluid motion lifts grains from the sediment bed.</li>
+ <li><strong>Downslope transport</strong>: grains hop or slide downhill.</li>
+ <li><strong>Deposition</strong>: grains settle when the local shear stress drops.</li>
+ <li><strong>Avalanching</strong>: when a slope exceeds a critical angle,
+grains cascade to neighboring cells until stability is restored.</li>
+</ul>
+<p>These rules encode physical processes such as saltation (the hopping
+of grains along the bed) and fluid driven transport, following
+<a href="https://sseh.uchicago.edu/doc/Werner_1995.pdf">Werner (1995)</a>. No global
+coordination is involved: each cell only “talks” to its neighbors.
+From these local interactions, entire fields of dunes emerge.</p>
+<p>You can adjust parameters directly in the browser: grain size, flow
+speed, sediment supply, grid resolution. Watch how ripples form,
+migrate, merge, and disappear as conditions change. The tool runs
+entirely client side; no data is sent to a server.</p>
+
+<h2 id="scale">Scale</h2>
+<p>Werner’s model is deliberately abstract. Sand is moved as discrete
+slabs on a lattice, governed by a hop length (counted in lattice sites),
+two deposition probabilities, a shadow zone angle, and an angle of
+repose. None of these parameters carry inherent physical units. The
+model is scale free: macroscopic dune morphology emerges from local
+rules regardless of what physical dimensions are assigned to the grid.</p>
+<p>To relate the simulation to a real landscape, a user must choose a
+physical cell size and scale time accordingly. The model does not
+prescribe these choices.</p>
+
+<h2 id="c-implementation">C implementation</h2>
+<p>A command-line C implementation is available for large grids and long
+times. It implements the same algorithms with better performance,
+suitable for batch experiments and quantitative analysis.</p>
+<ul>
+ <li><a href="https://src.adamsgaard.dk/werner">Git: git://src.adamsgaard.dk/werner</a></li>
+ <li><a href="https://src.adamsgaard.dk/werner/file/README.rst.html">Web view of README</a></li>
+</ul>
diff --git a/pages/020-duneweb.txt b/pages/020-duneweb.txt
@@ -0,0 +1,69 @@
+ Demo: [1]andersdamsgaard.dk/duneweb.
+
+duneweb is an interactive educational tool demonstrating how
+cellular automata and self-organizing complexity explain bedforms: the
+ripples and dunes that rivers, oceans, and deserts build under flowing
+fluids.
+
+## Motivation
+
+Sediment on a river bed does not stay flat. Small perturbations grow
+into regular ripples, which merge and evolve into larger dunes. This is
+a consequence of feedback between flow, sediment transport, and
+topography.
+
+Systems like these appear in many places, from the stripes on sandy
+beaches to the linear dunes sweeping across the Sahara, and studying
+them reveals general patterns of complexity that emerge from local
+interactions alone.
+
+## Mechanics
+
+duneweb simulates a thin layer of sediment on a two dimensional grid.
+Each cell holds a height representing the local bed elevation. The rules
+are simple:
+
+ - Upslope erosion: fluid motion lifts grains from the sediment bed.
+ - Downslope transport: grains hop or slide downhill.
+ - Deposition: grains settle when the local shear stress drops.
+ - Avalanching: when a slope exceeds a critical angle,
+ grains cascade to neighboring cells until stability is restored.
+
+These rules encode physical processes such as saltation (the hopping
+of grains along the bed) and fluid driven transport, following
+[2]Werner (1995). No global coordination is involved: each cell only
+"talks" to its neighbors. From these local interactions, entire fields
+of dunes emerge.
+
+You can adjust parameters directly in the browser: grain size, flow
+speed, sediment supply, grid resolution. Watch how ripples form,
+migrate, merge, and disappear as conditions change. The tool runs
+entirely client side; no data is sent to a server.
+
+## Scale
+
+Werner's model is deliberately abstract. Sand is moved as discrete
+slabs on a lattice, governed by a hop length (counted in lattice sites),
+two deposition probabilities, a shadow zone angle, and an angle of
+repose. None of these parameters carry inherent physical units. The
+model is scale free: macroscopic dune morphology emerges from local
+rules regardless of what physical dimensions are assigned to the grid.
+
+To relate the simulation to a real landscape, a user must choose a
+physical cell size and scale time accordingly. The model does not
+prescribe these choices.
+
+## C implementation
+
+A command-line C implementation is available for large grids and long
+times. It implements the same algorithms with better performance,
+suitable for batch experiments and quantitative analysis.
+
+ * Git: `git://src.adamsgaard.dk/werner`
+ * Web view: [3]src.adamsgaard.dk/werner
+
+References:
+
+[1] https://andersdamsgaard.dk/duneweb
+[2] https://sseh.uchicago.edu/doc/Werner_1995.pdf
+[3] https://src.adamsgaard.dk/werner/file/README.rst.html