This model represents a river as a chain of nodes, computes signed curvature at each point from centred tangent differences, and migrates every node perpendicular to the flow by an amount proportional to a slightly downstream-lagged curvature signal — the same core mechanism believed to drive real bank erosion and point-bar deposition. The polyline is continually resampled to even spacing, and whenever two non-adjacent points drift within the cutoff threshold, the loop between them is spliced out and stored as a new oxbow lake.
How a straight channel spontaneously develops sinuous bends purely from curvature-driven bank migration, and how those bends inevitably tighten until a "neck cutoff" severs a loop, leaving it stranded as a crescent-shaped oxbow lake beside the newly straightened river.
Choose a Preset (Laminar/Straight to Braided-ish), or tune Erosion rate, Cutoff threshold, Perturbation amplitude, and River width directly; pick Flow direction, toggle Show palaeo-channels to see faint historical channel positions, and use Pause/Reset or Generate new river to restart with a fresh random seed.
Real oxbow lakes can persist for centuries after cutoff, since the abandoned channel is quickly plugged with sediment at both ends — the Mississippi and Amazon river floodplains are dotted with hundreds of them, each marking where the main channel used to flow.
Any tiny initial bend creates a small curvature, which slightly speeds up flow (and erosion) on the outer bank while slowing it (and depositing sediment) on the inner bank; this asymmetric erosion pushes the bend outward and downstream, amplifying the curve until it becomes a full meander loop.
As a meander loop grows, its neck — the narrow strip of land separating two nearby parts of the same river — thins until the river breaks through it during a flood, taking the new, shorter path and abandoning the old loop, which becomes a curved, cut-off oxbow lake.
Sinuosity is the ratio of the actual channel length to the straight-line valley distance; a value near 1.0 means a nearly straight channel, while values above roughly 1.5 indicate a strongly meandering river.
Water flows slower along the inside of a curve than the outside, so it can no longer carry as much sediment, causing sand and gravel to drop out and build up a point bar, while the faster outer-bank flow instead erodes a cut bank.
They are periodic snapshots of the river's centreline from earlier in the simulation, showing how the channel's position has drifted and evolved over time — a simplified analogue of the abandoned channel scars geologists find preserved in real floodplain sediments.