Skip to main content

The emergent geometry of rock slopes

Summary: Simulation tools in support of a geomorphic, non-convex Hamiltonian theory of rock ramp-cliff retreat and the emergent geometry of Richter-type slopes.

3d model of West Mitten Butte rendered in Blender

Abstract

An iconic image of the American West is the desert mesa: a steep cliff, rising above a ramp-like rock slope, capped by a flat bench. This famous landform has long been assumed to develop where strong rock overlies weak, and where rockfall debris suppresses ramp erosion.

Such an explanation cannot be true in general, however, because the archetypal geometry can arise even in uniform bedrock with no talus armouring. Here we argue instead that the ramp-cliff shape is an emergent property.

Theoretical evidence comes from a simple model of scarp retreat whose combined rates of weathering and surface-normal erosion are written as a slowly varying function of gradient.

Model analysis and simulation, using geometric mechanics and level sets, reveal the sharp break in slope to form automatically as a transient shock solution of a non-convex Hamilton-Jacobi equation. Strong erodibility contrasts are not needed to explain this behaviour, but when present they lock the landform into its classic shape and allow it to persist long-term.

Comparison of differential cliff recession in geologically homogeneous versus heterogeneous bedrock at sites in Utah and Colorado confirms our hypothesis.

Level-set solution

The purpose of the Python code presented here is to derive, analyze, and numerically solve a geomorphic Hamiltonian1 model of rock slope erosion and retreat2. The code is provided as a Python library package and associated Jupyter notebooks (e.g., here and here).

Ramp-cliff retreat for strong-weak upper/lower rock layer erodibility

Numerical solution of the model Hamilton-Jacobi equation is achieved with a level-set scheme3 that employs Lax-Friedrichs finite differencing to obtain stable viscosity solutions for a non-convex Hamiltonian. The level-set code is custom implemented in Python.

Model analysis is performed using some tools from geometric mechanics4: having converted the rock-slope erosion model into geomorphic Hamiltonian $\mathcal{H}(\mathbf{r}, \mathbf{p})$ form, this Hamiltonian is then used to derive Hamilton's ray tracing equations $(\partial_{\mathbf{p}}\mathcal{H}, -\partial_{\mathbf{r}}\mathcal{H})$ and the co-metric of rock slope erosion tensor $g^{ij} = \partial_{ij}\mathcal{H}$; these properties are then probed to understand model stability, notably to place bounds on the non-convexity of $\mathcal{H}$ and to identify critical angles.

References

  1. Stark, C.P., & Stark, G.J., 2022. The direction of landscape erosion. Earth Surface Dynamics, 10: 383-419. ↩

  2. Howard, A.D., & Selby, M.J., 2009. Rock Slopes. In: Parsons, A.J., Abrahams, A.D. (eds). Geomorphology of Desert Environments. Springer, Dordrecht. ↩

  3. Osher, S., & Fedkiw, R., 2003. Level Set Methods and Dynamic Implicit Surfaces. Springer-Verlag New York, Inc. See page 50. ↩

  4. Holm, D.D., 2011. Geometric Mechanics. Part I: Dynamics and Symmetry (2nd Edition) ↩

Release files for erosionfront 0.1.23

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for erosionfront 0.1.23
File Size Uploaded
erosionfront-0.1.23.tar.gz 59.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for erosionfront 0.1.23
File Interpreter ABI Platform
erosionfront-0.1.23-py3-none-any.whl Python 3 none any Details

Total release size: 130.7 kB

Release files / erosionfront-0.1.23.tar.gz

Download URL erosionfront-0.1.23.tar.gz
Size 59.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bc25cbf794cdd65f6ff945da3920c177269013015f4df36341a5ff7effc2a4e9
BLAKE2b-256 checksum
How to use checksums
452a5cbe6ecc87dc8c380777127ccbe23d16779482ffa6c37e69c0be4fff90f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release files / erosionfront-0.1.23-py3-none-any.whl

Download URL erosionfront-0.1.23-py3-none-any.whl
Size 71.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a98c9f07ea0efa96ada87c822a13ce7f2a2d32b23f46ccacbeb106cd29700bc6
BLAKE2b-256 checksum
How to use checksums
55cf06842f6c4d00704611a74a598addb07953537bd83df561b076a324ab99e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.23 This release

2 release files

0.1.22

2 release files

0.1.20

2 release files

0.1.19

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page