Ripple/Raindrop Pattern

Random raindrops?
Here’s one way


raindrops.gh (12.5 KB)

15 Likes

Opening the file above I have to choose an sdf library which I don’t know what it is and don’t have.

The C# script contains a line using sdf

I deleted it and it seems to work

Hi Daniel,
I mean instead of clicking on screen, can the points be specific location and drop order (or drop at the same time)?

Thanks!

amazing

Here’s a version that lets you input specific locations and the iteration number for each at which it drops.
dropsequence.gh (16.8 KB)

1 Like

Thank you so much for the definition you shared - in return i have a small contribution :
After a few hours searching how to add a time shift to the math function, I came up with the lazyest possible idea.


(I just tested it on a simplified definition for experimenting)

What do you think ? :upside_down_face:

1 Like

Hey Daniel,

your work here is amazing. As always.

When trying to open this last GH file, it seems to miss a library:
image

Would you have a trusted source where to obtain it?

Many many many thanks :heart:

Ah, sorry about that- looks like I accidentally left in a reference from a different project.
It isn’t actually used in the code and the line can be deleted.
dropsequence.gh (18.8 KB)

1 Like

Thanks so much for getting back.

I downloaded the new attachment twice, but it’s still coming up with the exact same error message. Maybe it’s still addressed somewhere else in the code?

Would be so nice to use this :pray:

Curiously when you press “Cancel” on that message, Rhino completely freezes and needs to be process killed. Maybe another topic.

ah, my mistake again - I had removed the ‘using’ statement in the code, but not the assembly reference in the component :man_facepalming:. Try this one
dropsequence2.gh (21.9 KB)

(though if it was freezing before when you dismissed the warning message, I expect it would still freeze for you here, for some unknown reason unrelated to the reference issue - what SR of Rhino are you using?)

Oh wow it works now, and it’s incredible!!

I see the 100 points you generated. I’ll try to work out if I can change it so that my point cloud drops into water all at the same time. Sadly I have 650 pts for one big image of interference waves :laughing: but I hope it’s still possible.

The time factor is the C# script part I presume, right?

And SystemInfo reports I’m on Rhino 7 SR19 2022-6-14.

To have them drop at the same time, just connect a single value to the ‘x’ input of the script instead of a list.
For 650 points hitting at once, you’d probably need a very dense grid though, which could get slow.
As I mentioned above - this way with 3d forces is an inefficient way of doing things - just one which was possible with existing goals. For more detailed simulations it could be worth writing a custom one to speed things up.

I am so grateful for this whole thread!!
I’ve been experimenting with ripples at specific points using @DanielPiker 's dropsequence.gh; as I began increasing the density of the mesh (trying to get small detailed ripples as though from very small rain drops) I noticed an interesting phenomenon where the decaying ripples are broadcast in a square shape:


which in my case is causing “younger” ripples to start out squarish before the center rounds out again:

I presume this square that the ripples are propagating within is evident in the c#, but I am pretty new to it all so I’m not sure how to account for it there. I’m wondering if there is a way within grasshopper to use something like… coCircular? or distance… to round out the young ripples?
(my end goal is to bake a frame with a range of ripple sizes/ages).

My first post I hope I’ve done everything right :grimacing:

Thank You!!

ripples_squareQuestion.3dm (4.5 MB)
ripples_squareQuestion.gh (19.7 KB)

Hi @shisanwu

I hadn’t noticed that artefact before. Interesting that it doesn’t show up at lower resolutions. Looks like it’s caused by how the smoothing interacts with the square grid.
One alternative approach without additional coding is to triangulate the quads and use the Soapfilm goal instead of Smooth, because then the diagonals are appropriately weighted:
dropsequence_tri.gh (24.1 KB)

As mentioned before though - it gets pretty inefficient, and a custom goal specifically for this type of 2d wave propagation would probably run much faster.

1 Like

can this effect be applied onto a surface like this one in rhino file?

i want to achieve somehting like this on my surface please?
image

ripple.3dm (253.0 KB)

Hello
what you show is not really Ripple/Raindrop
you could look at that

i like the first post that you sent , the file which you wrote how can it be applied to a irregular surface? just not a rectangle?

If I am not wrong all these field tools use points coordinate to generate the “bump” so they could use whatever surface mesh brep you want. But you must extract enough points and use the “bump” to regenerate a surface, brep or mesh. Generating a mesh is the most simple in general.

I Didnt see any surface/brep mesh input :frowning:
im trying to to achieve for this surface , i even tried surface morphing but it wont work here is the file , thank you so much sir!


marble turbulence noise v3 (1).gh (108.7 KB)

Hello
OK there is no brep … on the first, the second below was on mesh. But whatever the lazy/simple/ more modern way is to do that. It will miss some particular way ( the formulas inside the C#)

You need Weavebird (not mandatory it is just used to refine the mesh) and Nautilus plugin
noise LD.gh (91.8 KB)

2 Likes