Ripple/Raindrop Pattern

Really cool to see thanks.

Not sure if this is using d and t…

This is from a @DavidRutten example from years ago (can’t find the link)
I use this for nice static wave interference from point sources. (13.7 KB)

1 Like

This approach reminds me of a shock wave propagating as a cone. (11.9 KB)
… edited to use that formula.

But this don’t seems a “ripple/raindrop” … more like the visualization of a constant audio tone/sound.

For a ripple/raindrop i imagine variables like, for each droplet:

  • speed … so energy
  • time elapsed since hit
  • volume (pouring a glass of water from 1cm might have the same energy of a droplet, but the resulting wave is completely different)
  • direction … but this would be overkill…

… anyway…

1 Like

Yes, this looks like a reversion to the models I posted in June, 2019.

Of the additional parameters you mentioned, I think time elapsed is the most important. I imagine it to be a kind of damped oscillation at the center point, in addition to the “half-life” damping factor at a distance in @DavidRutten’s equation from 2016:

Beyond me though.

P.S. It’s not as simple as this but maybe something similar?


I said I wasn’t inclined to revisit this topic… But visualizing ripples have been a fascination of mine for more than 40 years(!), going back to using character sets to represent “pixel” density.

Looking again at from June, 2019, I’m really impressed with some of the features in this model, especially “caliper” (purple blob group) and “Ripple Preview” (yellow group):

I added the “EXPERIMENTAL” ‘time’ slider (blue group), which is nonsense but interesting? No other changes. Resolution (white group) is low for better response time but can be increased. (57.1 KB)

Nowhere near as cool as @maje90’s animation though!


I’m on R5 so can’t open the file. Don’t worry, I will just comment from the sidelines on this one.

I agree it looks more like a visualisation of a constant sound. Perhaps that is because the decay is not significant enough?

I agree that the parameters you suggest are probably what are needed.


Yes, this came from a definition that David Rutten posted and I believe you contributed to that discussion too. I can’t find the original link.

In the damped sine wave equation, does energy correspond to Amplitude and volume correspond to Wavelength? Wave form and propagation are probably among the most studied and best understood aspects of physics so the answers we seek are certainly well documented in textbooks.

But for the lazy artist trying to visualize ripples, consider this waking insight:

The white curves are a result of plotting the damped sine curves for each point along the X axis, then mirroring them in the YZ plane and joining the originals to their mirror images. The blue curves are the result of “time shifting” the white curves in the X direction and lopping off both ends to match the original curves.

I butchered a copy of the model I posted yesterday, leaving only the “Ripple Preview” feature to see the effect on any selected point. The white group at the bottom does the mirror/time shift thing. (39.4 KB)

There must be a way to accomplish this mathematically instead of by geometric construction?

1 Like

… i’m quite thinking the same… more or less…

I’m finding a lot of stuff, but it’s incomprehensible for me… complex math.

I’m looking at droplet splashes in slow-motion, different crests have different speeds, sort of shockwave effect.

Maybe it’s easier to just design the animation aesthetically and forget about math/physics behind.

1 Like

I remember looking at online “textbooks” in the past and being overwhelmed by the complexity.

I completely agree.

Looking again at your brilliant “droplets” animation, the time factor for each point is equivalent to its negative Z value, right?


Nice elegant definition @maje90

I was inspired to have a play with an iterative version using Kangaroo-

Using springs instead of Laplacian smoothing gives a slightly different effect, with more isolated waves- (12.0 KB)

Doing it with only existing goals this simulation ends up doing a lot of unnecessary work - since it is calculating all the 3d forces and then restraining them to be only vertical, when all that really needs to be updated is a single scalar per vertex. It could be interesting to make a custom goal for this, since it should be much more efficient.
I imagine it would even be possible to put all this in a GhGl shader.

Also - have a look at this:


It’s also fun to anchor some of the points within a region to create an obstacle for the ripples to flow around


Being able to do that on an interactive web page is very impressive!

This is even nicer-

The trick for the caustics is clever:


Astonishing! Created “back in 2011”… We have such amazing technical capabilities, yet can’t seem to shake off the political dark ages.

Every picture has it’s shadows
And it has some source of light
Blindness, blindness and sight
The perils of benefactors
The blessings of parasites
Blindness, blindness and sight
Threatened by all things
Devil of cruelty
Drawn to all things
Devil of delight
Mythical devil of the ever-present laws
Governing blindness, blindness and sight
– Joni Mitchell

1 Like

We need native grasshopper access to OpenCL and similar stuff… like… years ago.

Maybe the whole mesh libraries of rhino should be remade to support GPU computing and parallelization.

Time passes…

These samples should all be possible through GhGL. Probably hard to implement, but possible.

Check this as well (18.1 KB)