loading...
running...
The science
The river sets the pace. Where bedrock is eroded by flowing water, the stream-power law says the bed lowers at a rate proportional to the power the water spends on it:
dz/dt = U - K A^m S^n
z bed elevation, A upstream drainage area, S = -dz/dx local bed slope, K erodibility of the rock the river is cutting into (it changes layer by layer), U rock uplift. Drainage area follows Hack's law, A = ka x^h with h = 1.67, measured from the divide.
Knickpoints. For n = 1 the equation is a pure advection equation: a step in the bed moves upstream at c = K A^m, x_k(t)^(1-hm) = x_0^(1-hm) - (1-hm) K k_a^m t The step does not smooth out; it travels intact and leaves a graded reach behind it. For n > 1 the step diffuses. The page solves the profile with an implicit upwind scheme (unconditionally stable) and checks it against this closed form.
Steady state. Setting dz/dt = 0 gives S = (U/K)^(1/n) A^(-m/n) a power-law profile with concavity theta = m/n. The page integrates a profile to steady state and regresses log S on log A to recover m/n.
Layers. Each layer has its own K, its own weathering rate and a critical slope. Hard caprock and cliff-forming limestone have low K and steep critical slopes (cliffs). Shales have high K and gentle slopes. When a soft layer under a hard one wears away faster, the hard layer is undermined and retreats in blocks: this is differential erosion, and where fractures isolate a block you get buttes and hoodoos.
Valley walls. The heightmap is evolved by exchanging material between neighbouring cells. For each pair the higher cell gives a flux made of three terms: weathering w s/s_c, linear diffusion D s/dx and, when the slope s exceeds the layer's critical slope sc, a slope-failure term proportional to the excess. Material reaching the channel is carried away by the river (the volume ledger is shown as a check).
Honest simplifications. The river is one channel with a fixed sinuous path; the layers are horizontal (a small regional tilt follows the plateau); there is no sediment-cover feedback, no lateral river migration, no overhangs (a heightmap cannot represent them) and no rockfall mechanics. K, w, D and critical slopes are plausible illustrative values for a dry plateau, not measurements of a real canyon; time is in model years and the time-lapse runs roughly a million years in ten seconds. The base-level drop is imposed instantly at the outlet; layer names are generic.
Live checks. (1) the numerical knickpoint position against the closed-form retreat integral, (2) the steady-state slope against (U/K)A^(-m), (3) the regressed concavity against m/n, (4) the live volume ledger: change of rock volume equals minus the exported sediment to 1e-6.