River Erosion Simulator: Stream Power, Channel Incision & Landscape Evolution

simulator intermediate ~10 min
Loading simulation...
E = 1.0 mm/yr — at Q=100 m³/s, S=0.01

A river with 100 m³/s discharge on a 1% slope with erodibility K=0.001 incises bedrock at approximately 1.0 mm/yr, roughly balancing a 2 mm/yr uplift rate and approaching topographic steady state.

Formula

E = K × A^m × S^n  [Stream power incision law]
Ω = ρgQS  [Total stream power, W/m]
S_eq = (U/K)^(1/n) × A^(−m/n)  [Steady-state slope]

Stream Power & Bedrock Incision

Rivers are the primary sculptors of continental landscapes. The stream power incision model — E = K·A^m·S^n — captures the first-order physics: erosion rate depends on the power of water flowing over bedrock, controlled by drainage area (a proxy for discharge) and channel slope. The erodibility coefficient K encapsulates rock strength, climate, sediment tools, and channel geometry into a single parameter that varies by orders of magnitude across lithologies.

Steady-State Landscapes

When tectonic uplift is balanced everywhere by erosion, the landscape reaches a dynamic steady state. Rivers develop characteristic concave-up profiles where slope decreases downstream as drainage area grows. The steepness index — the slope normalized by drainage area — becomes a powerful metric for inferring rock uplift rates from river profiles, enabling tectonic analysis from topographic data alone.

Transient Response & Knickpoints

Landscapes are rarely in perfect steady state. Changes in uplift rate, climate, or base level generate transient signals that propagate through the river network as knickpoints — steep reaches migrating upstream. The rate of knickpoint retreat depends on discharge and erodibility, and the pattern of knickpoint positions across a drainage network records the history of tectonic and climatic perturbations.

Beyond Simple Stream Power

Real rivers carry sediment that both provides tools for abrasion and protects bedrock from erosion when it blankets the bed. The tools-and-cover effect creates a nonlinear relationship between sediment supply and erosion rate. In transport-limited settings, it is sediment flux divergence — not stream power — that controls erosion. Understanding this transition is critical for predicting how landscapes respond to changes in climate and land use.

FAQ

What is the stream power erosion model?

The stream power model states that bedrock erosion rate is proportional to the power of water flowing over the bed: E = K·A^m·S^n, where A is drainage area (proxy for discharge), S is slope, K is rock erodibility, and m,n are empirical exponents typically near 0.5 and 1.0. This simple model successfully predicts river profile shapes in many tectonic settings.

What controls the shape of a river profile?

A river's longitudinal profile reflects the balance between tectonic uplift and erosion. In steady state, the profile adjusts so that erosion equals uplift everywhere. Concave-up profiles are typical because drainage area increases downstream, allowing erosion to match uplift at progressively lower slopes. Knickpoints — abrupt slope changes — indicate transient adjustments to changes in uplift or base level.

What is a knickpoint?

A knickpoint is a steep reach in a river profile that migrates upstream over time, like a waterfall retreating headward. Knickpoints form when base level drops (sea level fall, downstream capture) or uplift rate increases, and they propagate upstream as a wave of incision that progressively adjusts the channel to new conditions.

How fast do rivers erode bedrock?

Bedrock erosion rates vary enormously: from 0.01 mm/yr in tectonically quiet cratons to 1-10 mm/yr in active mountain belts like the Himalayas. The highest rates occur where strong precipitation, steep slopes, and erodible rock combine. Rates are measured using cosmogenic nuclides, thermochronology, and direct monitoring of knickpoint retreat.

Sources

Embed

<iframe src="https://homo-deus.com/lab/geomorphology/river-erosion/embed" width="100%" height="400" frameborder="0"></iframe>
View source on GitHub