Hydraulic Erosion on Arbitrary Heightfields

This work was my (Theo Beyer) final thesis for my bachelor in Informatics: Games Engineering. I'm very pleased with how it turned out, and as a procedural generation enthusiast it is satisfying to see, how this algorithm turns an ugly piece of terrain into a beautiful one. You can find my thesis here.


The creation of realistic looking terrains is an important part in the movie industry as well as in computer games and simulations. Realistic and visually appealing landscapes help the consumer to immerse themselves in the virtual world. One of the greatest challenges of generating terrain are the effects of erosion. Those effects can be found everywhere in nature and are a vital part of natural looking terrain.

After a foundational research in the field of erosion algorithms, I wrote an highly adaptable algorithm to simulate hydraulic erosion on a heightfield. This algorithm excels through its various parameters, which allow several results for the same input. Through its interactivity it allows the user to erode the terrain according to its needs.

The Algorithm

Very abstract terrain is turned into realistic looking one without losing its distinctive features.

The algorithm I implemented was inspired by Ranmantaru Games. It is a particle based approach in which single drops are placed onto the map, run downhill and move material depending on their carry capacity and speed of motion. The drops are simulated in 2.5D, which means the drop is considered to be always at ground level and it only saves its position in two dimensions. Also the drops do not interact and are not simulated with physical principals. The special feature of this algorithm is that the particles move the same distance every simulation step although they are not bound to the grid. The simulated time per step is not consistent. Therefore this simulation is not suitable to simulate a fluid visually, its purpose is to simulate the impacts of water on the terrain.


Theobald Beyer

Procedural Generation
Shaders / Graphics