Adding Points to Ripple

Cool, glad you are enjoying this and following along. More changes… (74.6 KB)

“radial rectangles” has been replaced by the more general “rectangles on curve”, a circle being just one possible curve. So there are now four ways to define the list of rectangles used by the model, one of them with three example curves, all moved “above the fold” since the model doesn’t care how the rectangles are created.

Added displays for “grid points”, “Expression kOps” and a “fuse” feature in the "“Ripple Points” group, ‘Max_kOps’ (red slider), to throttle the maximum number of slow Expression evaluations.

As explained in the model:

=== NOTES ===
The “fuse” feature in the ““Ripple Points” group, ‘Max_kOps’ (red slider),
works best when the slow grid points ‘Expression’ and ‘Dist’ components
(red group) are disabled (”!!! SLOW AT HI-RES !!!").

The displays for “grid points” and “Expression kOps”, the “Caliper” and
“Ripple Preview” features still work at high resolution.

(optional) Reduce delay in Data Dam preceding it from 10 secs. to “Always”.

Also note that a Repeat data component has been inserted in the lime green group. This is done so that if there are more ripple points than wave forms defined, the whole set will be reused instead of repeating the last waveform. Note that the ‘Scale’ group now has a “Steps” slider instead of using the number of ripple points, as before.

The composite rippled surface is finished at SrfGrid in the gold group. The green “base” group adds sides and a bottom to make a “Closed Brep” solid from each rectangular surface (the green Join to be baked).

Exaggerated amplitude can be useful for Caliper tool with red ”!!! SLOW AT HI-RES !!!" group disabled:

12 ripple points, 6 wave forms, 21 rectangles (3" X 16"), 11 ‘ptsPerUnit’ resolution, 126,378 grid points, 1,517 “Expression kOps” (1,517,000 Expression ops!), ~2 minutes:

1 Like

This (above) was the primary point of yesterday’s update to the GH model, and today’s as well.

To review briefly, the primary inputs for this ripple model are:

  1. a list of rectangles
  2. a list of “ripple points”
  3. a list of “wave forms” consisting of three parameters: Wavelength, Amplitude and Damping

Until yesterday, if you used the “Scale” option, the number of wave forms was guaranteed to be the same as the number of ripple points, evenly distributed by Range components. Now the “Steps” slider determines how many wave forms will emerge from the “Scale” group. It was always possible (and still is) using the “Config” group to define fewer wave forms than there are ripple points. Now it can be done with “Scale” as well.

Repeat Data (yesterday) is one way to handle that. Another way is to specify which of the available wave forms you want to apply.for each point. The updated lime green group in today’s code does that, with options to:

  • use either “Series” (like Repeat Data) or “List” (defined in a ‘idx_Wave’ text Panel in this example).
  • add random Jitter to the lists of wave form values.

This is like defining a list of stone sizes (wave forms) available to drop into the pond, creating as many ripple points as you like with them, anywhere you want, provided you have adequate CPU power for your required resolution. (77.4 KB)

P.S. I have not yet tried to explore what happens if you define more wave forms than ripple points…?

1 Like

Impressive advancements from the original code!

I had a hard time with the Data Dam being set to always I did try that along with keeping the resolution <5 that was probably a bad idea so I switched back to 10 seconds.

You beat me to it with the idea of having more wave forms emerge from scale while keeping the ripple points at 5.

Radial exploration isn’t something I wouldn’t be using at the moment maybe in the future but its super fun to play with and explore new forms. I’m going to start experimenting with having more waves than ripple points that sounds very interesting. Thanks for all the knowledge Joseph.

Both components in the red group (!!! SLOW AT HI-RES !!!) should be disabled when reducing the Data Dam delay.

Just the opposite. It makes sense to have more “ripple points” (X/Y coordinates) than wave forms (pebble sizes). So you effectively re-use the pebble sizes. Having more wave forms defined than physical points doesn’t make sense* so I didn’t test/fix the code to handle that.

Have fun. Creating the tool is only part of the art project. Please post your results here. Cheers.

P.S. OK, sorry, I see how that* could make sense! :wink: When using the ‘List’ option, you can avoid using all of the wave forms defined. I think of it more the other way, that I can have many points defined using only a handful of wave forms (pebble sizes).

I spent a few minutes exploring this condition and found that the only way to create a problem is using the ‘List’ option instead of ‘Series’:


Using only three “Ripple Points”, the ‘Series’ option guarantees that the number of wave forms will equal the number of points, but using ‘List’, twelve wave forms get generated, ten of them combined on the last point of three. This is bad! Ugly, unwanted, subtle if you don’t understand it. Warning, don’t do that! I could have fixed the code to prevent it from happening but didn’t.

Clean (below, easy to avoid… would be better if code protected against this condition)


Later… A fix was simple, I talked myself into it. Adding List Item after ‘idx_Wave’ Panel driven by the existing Series component does it. It also appears to gracefully handle the condition when ‘List’ contains fewer wave form indexes than “Ripple Points”.
Re-wired the end of the “base” group to get around a tree mis-match problem that, in some cases, prevented “Closed Brep” results. (78.9 KB)

Notice that when multiple rectangles are used, the “base” of each one is no thicker than its deepest wave trough, plus the ‘Base Thickness’ slider. So they may all be different… Might want to change that? Or take advantage of the fact that you only need a thick base in areas with deep craters.

1 Like


I did use list item and that’s how I started to learn grasshopper is through list rather than the geometry that affects that list such as pebble sizes as many other points, but didn’t have much success in a geometry that I liked I agree it is Ugly and not realistic for what I am doing it could become useful in later projects. I should’ve thought about the existing series component when testing this rather than recreating it.

I think it is best to consider a thick base for areas with deep craters.

Here is the form that I have found best for my project. Had to keep the height less than 15/16" while creating wave forms that you could actuality see if fabricated that decay. I also tried to keep amplitudes low so I don’t get a volcano like crater. Here are my results!topview_from5