Ways to animate volumes of ground erosion?

Advice about simple way, or plugin, to animate flowing particles representing stylized large scale geological processes (erosion).

In short, I would like to make an animation to illustrate an aspect of erosion of the ground, including soft soil, sediment rock and bedrock as well as mountain formations, and comparisons between those).

The animation is not meant to be a very detailed simulation with exact natural parameters, suffice to illustrate amounts of (natural rates) erosion over longer periods of time. Think like low confines of grains slowly grinding down the initial mass while spreading out filling up some lower areas around it, etc.

The animation doesn’t have to illustrate actual natural looking geological or geographical features, it’s more important to just grinding down and lover the level of particles spreading it out, and then perhaps lift up the eroded material again and start over eroding it again back an fourth aso.

So what I’m asking for is a convenient way, or suitable plugin, to represent the movement of eroded particles the particles where I can mess around with heaps of particles back and fourth. Stylized large scale geological processes meant to illustrate displacement of volumes over time, which is why true representation of geology or geography is less important in this case. If possible to make it cool looking while at it, isn’t a bad thing, though.

// Rolf

Maybe something like Diffusion Limited Aggregation, except run in reverse?

This is purely speculative, but in theory you could implement an agent-based system with a voxel subdivided, eroding medium. The particles could be boids (i.e. cohesion, attraction, separation, etc.) with an additional property: an erosion force or friction. This would allow you to vary this friction for different types of for instance substrates to get more diverse results. The voxels would have a certain resistance or life span that would get diminished by agents passing over them, thus exercising friction. Voxels with no life span left would disappear thus creating the erosion. The individual voxels could be remeshed with Marching Cubes.
Of course this method would probably not scale very well. The higher the resolution, the slower the simulation.

Another approach could be a shader or height map-based one, which would most certainly be more efficient, we’re talking millions of particles here, but I guess not really easy to do in Rhino.
If you want to branch out, you can look at Houdini or game engines (i.e. Unity, Unreal, etc.).

Here’s also a very interesting video:


Very interesting video. I’ll study the code and see if I could use a similar approach. The clip shows a much more detailed scenario than I absolutely need to illustrate what I want to illustrate, but if it’s not too complex to adapt to my case, it would definitely add a lot more sense of reality, which always is a plus.

I also don’t need to have a “real time” process running (well, it would be very slow in real life but…) it suffice to record a video and speed it up to whatever speed is bearable to watch to arrive at the points I want to make with the illustration/animation.

Although perhaps a bit overkill (I’ll determine that later), thanks for the tips! Very interesting.

// Rolf

I didn’t go in the detail
I did something like that

If useful, I can search the script I have done.

1 Like

Hi @laurent_delrieu, If I understood it correctly, the animation in the lower right corner (I scrapped my FB account years ago) also filled cavities with eroded materials?


If so, it is extra interesting, because this is one important part of what I intended to illustrate (in cycles, lifting up lower areas after higher ground has been grinded down, then repeat N times, aso).

// Rolf

I make some rain, then waterflow or drainage (there are lot of scripts) then erosion depending on something I don’t remember exactly, surely using some kernel, slope …
The filling is a fake.

The only thing I need to have factually correct is the numbers (volume / time). That part doesn’t need to show (visually) correct, no problem. The volume/time-numbers can be put as transparent overlays in the the visual.

The animation is only to give “average Joe” an idea about what is going on.

What I would need though is to get the whole thing to erode, mountain tops included (+Thermal Erosion, that is). But that shouldn’t be to difficult to drag down in addition to the more detailed erosion processes.

// Rolf

here is the script. I don’t go in the description as I don’t remember but there are not lot of parameters. Mesh is important so it is surely better to have faces size that are same order of magnitude to the kernel factor. So a very rough code.

drainage erosion.gh (3.9 MB)

Thank you very very much! In the best case I understand some of the code! :slight_smile:

// Rolf