GitPedia

SimpleWindErosion

Procedural Wind Erosion / Abrasion / Suspension / Cascading / Aeolian Process Simulation

From weigert·Updated April 13, 2026·View on GitHub·

C++ implementation of a simple particle-based wind erosion system for terrain generation. This is an adaptation on related particle-based erosion systems, e.g. hydraulic erosion, designed to capture sediment transport, abrasion and cascading. The project is written primarily in C++, first published in 2020. Key topics include: abrasion, dune-simulations, erosion, geomorphology, particle.

SimpleWindErosion

C++ implementation of a simple particle-based wind erosion system for terrain generation. This is an adaptation on related particle-based erosion systems, e.g. hydraulic erosion, designed to capture sediment transport, abrasion and cascading.

Rendered using my homebrew TinyEngine.

Link to a blog post about this.

Two Dune Simulations

Compiling

Use the makefile to compile the program.

make all

Dependencies

Erosion System:
- gcc
- glm
- libnoise

Renderer (TinyEngine):
- SDL2 (Core, Image, TTF, Mixer)
- OpenGL3
- GLEW
- Boost
- ImGUI (included already as header files)

Usage

./winderosion [SEED]

If no seed is specified, it will take a random one.

Controls

- Zoom and Rotate Camera: Scroll
- Toggle Pause: P (WARNING: PAUSED BY DEFAULT!!)
- Change Camera Vertical Angle: UP / DOWN
- Toggle Hydrology Map View: ESC
- Move the Camera Anchor: WASD / SPACE / C

Screenshots


Simulated dune formation with sedimentation and cascading.

Pyramid
Simulated dune formation with additional obstacles and abrasion.

Reading

wind.h - wind particle movement, sedimentation process

world.h - world data storage, generation, rendering

License

MIT License

See my blog for a more detailed copyright notice.

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from weigert/SimpleWindErosion via the GitHub API.Last fetched: 6/27/2026