Hillslope Diffusion Simulator: Soil Creep, Curvature & Landscape Smoothing

simulator intermediate ~10 min
Loading simulation...
z_max = 50 m — parabolic hilltop at steady state

With diffusivity 0.01 m²/yr, hillslope length 200 m, and uplift 1 mm/yr, the steady-state hilltop elevation is 50 m above the channel, forming a smooth parabolic profile characteristic of diffusion-dominated landscapes.

Formula

∂z/∂t = κ·∂²z/∂x² + U  [Hillslope diffusion equation]
z(x) = U/(2κ)·(L²/4 − x²)  [Steady-state parabolic profile]
C_ht = −U/κ  [Hilltop curvature at steady state]

The Diffusion Equation for Landscapes

On soil-mantled hillslopes, the slow downslope movement of soil by creep processes can be modeled as a diffusion equation — the same mathematical form that describes heat conduction and chemical diffusion. Sediment flux is proportional to the local slope, and the resulting evolution equation ∂z/∂t = κ·∇²z + U smooths topography over time, rounding hilltops and filling valleys. The diffusivity κ encapsulates all creep processes into a single transport coefficient.

Steady-State Parabolic Profiles

When uplift is spatially uniform and channels at hillslope boundaries maintain fixed elevations, the steady-state solution is a parabola: z(x) = U/(2κ)·(L²/4 − x²). This elegant result means hilltop elevation scales with uplift rate and the square of hillslope length, while inversely proportional to diffusivity. The parabolic form is widely observed on soil-mantled ridges in humid temperate landscapes.

Curvature as an Erosion Rate Proxy

Perhaps the most powerful prediction of hillslope diffusion theory is that hilltop curvature in steady state equals −U/κ. Combined with independent estimates of diffusivity from cosmogenic nuclide measurements, this allows spatially distributed erosion rates to be mapped from topographic curvature measured with LiDAR — a technique that has revolutionized quantitative geomorphology in the past two decades.

Nonlinear Transport on Steep Slopes

The linear diffusion model predicts hillslope gradients proportional to erosion rate, but real slopes cannot exceed the angle of repose (~35-40°). The nonlinear diffusion model addresses this by making flux increase rapidly as slope approaches a critical value, producing planar steep slopes capped by convex hilltops. This transition from convex to planar morphology is a signature of the shift from creep-dominated to threshold-dominated transport.

FAQ

What is hillslope diffusion?

Hillslope diffusion models the slow downslope movement of soil (creep) as a diffusion process where sediment flux is proportional to slope: q = −κ·∂z/∂x. This linear transport law, combined with mass conservation, gives the diffusion equation ∂z/∂t = κ·∂²z/∂x² + U, which smooths topography over time and produces characteristically rounded hilltops.

What causes soil creep?

Soil creep results from many small disturbances: freeze-thaw cycles that heave soil normal to the slope, tree root growth and decay, burrowing by animals (bioturbation), wetting-drying expansion and contraction, and seismic shaking. Each disturbance moves particles slightly downslope under gravity, producing a net flux proportional to gradient.

What does hilltop curvature tell us?

At a hilltop in steady state, curvature equals −U/κ, directly relating topographic form to erosion rate and soil transport efficiency. Sharper (more negative) curvatures indicate faster uplift or lower diffusivity. This relationship enables estimation of erosion rates from topographic data using high-resolution LiDAR.

When does the linear diffusion model break down?

Linear diffusion assumes flux is proportional to slope, which works well for gentle slopes (<20-25°). On steep slopes approaching the angle of repose, soil transport accelerates nonlinearly, requiring models like the Andrews-Bucknam nonlinear diffusion law where flux diverges as slope approaches a critical value.

Sources

Embed

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