it took about 45 minutes for this process lol so i thought i'd share my (mis-)adventures..

..my intent is partly to implement a realistic looking erosion procedure and partly to simply try stuff and see what happens and what i learn from the experience..

after researching various documented erosion algorithms my first step was (and will be for a few more attempts) to see what results i get with the simplest implementation. the first simple implementation wasn't so good, but maybe i can combine it with other things later..

here's a bit of my standard musgrave's ridged multifractal implementation.. 8 octaves, lowest two aren't ridged..
naiveerosion0.jpg

and the result:
naiveerosion1.jpg

this postulated erosion drops random raindrops with n amount of soil moving capacity. this moves from pixel to pixel (contiguous 4) until the "drop's" capacity is depleted. deposition was calculated by taking the height difference (an INT in this implementation) and performing a modulus by a static value to determine the amount of material displaced between the two pixels. loop this until out of capacity or no lower pixel. there is no other differentiation, eg. above or below water, slope to neighboring pixels et c.

i know that's really crude but the goal was to see what results are possible with the simplest methods first... in case you decide to try this yourself

ftr i think the 'take a modulus by n' strategy is bound to leave artifacts eg. on ~linear slopes, but in practice the results weren't as bad as i expected. while this algo did effectively fill basins, it really did "slump" the heightmap as if it were sand.. removing much of the detail it would be preferable to retain.

if i attempt other methods i'll add them to this thread, with a pragmatic description of the method and intent fwiw.