Skip to content
SpecializedSource checked

Thermal Erosion

Smooths steep terrain by moving material from unstable slopes to lower neighbors.

Quick Facts

Compact metadata for implementation and discovery.

Category
Procedural Generation
Difficulty
Intermediate
Family
Terrain Erosion
Tier
Specialized
Status
Verified
Review
Source Checked
Sources
1
Formulas
1
Relationships
2
Code example
Ready
Visualization
Ready

Overview

Thermal Erosion models loose material sliding downhill when height differences exceed a talus angle.

Core Concepts

talus angleheight differencedownhill transferiterative relaxation

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(cells)

Average

O(iterations * cells)

Worst

O(iterations * cells)

Space

O(cells)

When to Use

  • Use when terrain slopes should look more naturally settled.
  • Use when terrain smoothing is a central requirement.

When Not to Use

  • Avoid when sharp cliffs must be preserved exactly.
  • Avoid when the generator cannot enforce the playability, connectivity, or style constraints required.

What It Does

  • Finds steep neighboring height differences
  • Moves material downhill
  • Repeats until slopes stabilize

Use Cases

  • Terrain smoothing
  • Talus slope generation
  • Post-processing rugged heightmaps

Inputs

  • Height field
  • Talus threshold
  • Erosion rate

Outputs

  • Relaxed height field

Key Formulas (1)

Slope threshold

move material if height[current] − height[neighbor] > talusthreshold
move material if height[current] - height[neighbor] > talus_threshold

Detects slopes that are too steep to remain stable.

Pseudocode

  1. 1.For each cell, compare height with neighboring cells
  2. 2.If a height difference exceeds the talus threshold, move material to lower neighbors
  3. 3.Repeat for several iterations
  4. 4.Return the stabilized height field

Canonical Example

Input
cell height = 10, neighbor height = 4, threshold = 3
Output
material moves to neighbor
Explanation
The slope is reduced because the height difference is too steep.

Implementation Notes

  • Use a separate delta buffer per iteration to avoid order-dependent updates.
  • Expose seed, scale, and constraint parameters so outputs can be reproduced.
  • Keep a tiny example with expected output beside the implementation.

Common Pitfalls

  • Too many iterations can over-smooth distinctive terrain shapes.
  • Random-looking output can still contain repeated patterns, dead ends, or invalid regions.
  • Not defining boundary, empty, or degenerate inputs before implementation.

Interactive Mechanism Walkthrough

2D Grid Wavefront & Trajectory

Show sharp peaks shedding material into smoother slopes.

S
#
#
#
#
#
#
#
G
Step 1 of 4: For each cell, compare height with neighboring cells
generated-grid

Notes

Thermal erosion is simpler than hydraulic erosion and often used as a smoothing pass.

Sources (1)

What each reference supports for this entry.

Texturing and Modeling: A Procedural Approach

Book

Procedural terrain reference for erosion-style slope relaxation and height-field modification.

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

Alternative toHydraulic Erosion

Thermal erosion moves material by slope stability, unlike water-driven hydraulic erosion.

Tags

Procedural GenerationTerrainErosionSimulation