The river follows the Howard-Knutson rule, where each centerline node migrates along its local normal at the rate

R = Ω klWκ + Γ ⟨klWκ⟩,     ⟨f ⟩ = Σup f e−αs ⁄ Σup e−αs

where κ is curvature, s is distance upstream, Ω = −1, Γ = 2.5, W = 100 m, and the memory length = 1/(αW) is the meander scale. When two banks come within the cutoff distance, the loop is cut off as an oxbow. Each step the channel is rasterized onto a grid, and a distance transform gives every floodplain cell its distance D to the river.

Households settle the grid with utility

U = −wd D + wc C

with wd = 1 and C the number of settled neighbors (cohesion). A household the river erodes is relocated to the best open cell: forced migration. The worst-placed household moves to the best open cell when it gains more than the stubbornness μ: voluntary migration. Population is conserved.

t = 0 yr  •  sinuosity  •  pop 0  •  forced 00)  •  voluntary 00)
River Stable 0 New 0 Abandoned 0 Drowned 0 Oxbow scar
50 2 1
500 0 5
Advanced & visual settings
50 1 100
Relocations per step
Forced Voluntary
Channel sinuosity