Ricky Reusser recently discovered (https://mathstodon.xyz/@rreusser/1119...) (or rediscovered?) that with a negative coefficient in the gradient magnitude term of the KPZ equation (https://www.mit.edu/~kardar/research/...) you could get a nice-looking simulation of hydraulic erosion.
And the equation couldn't be simpler. One term smooths the height image, the other decreases it at a rate proportional to the gradient magnitude.
da/dt = laplacian_a - b * gradient_mag_squared_a
And by spatially varying the coefficient of the gradient term we get different effects. In this video:
1. Adding a blob to the second channel causes more erosion in that region.
2. With constant positive b the rate of erosion is proportional to the gradient.
3. With Perlin noise the erosion makes pleasing ridges all over.
4. With low erosion in the center we can make a volcanic plug.
5. Slightly lower erosion in the center for more dramatic mountains.
6. Diagonal stripes of less erosion.
7. With a constant negative b, the surface increases where the gradient is higher. This models surface deposition, such as when snow falls.
Video produced by Ready: https://github.com/GollyGang/ready
See Patterns/KardarParisiZhang1986/erosion.vti