Undulating surface keeping edges straight

So I have a wavey surface with an attractor and a sine wave to move control points and make a surface out of them. That’s all good, however I would like to keep the edges of my surface straight (= flat).
ondulating surface_for review.gh (11.6 KB)

I could exclude the outline points from the move component, but I would like it to be a smoother transition between the flat edges and the center where the waves happen.

Any comments welcome!

d = point distance to edge.
inf = maximum influence (from where start gradient).
if( d > inf)
v = 1
v = (d/inf)^2 or ^0.5
multiply v with the amplitude

I’ve done many of these using decay along edges. Basically, measure distance to nearest edge and if it’s less than a certain value, reduce the vertical movement of points the closer they are to the edge.

A quick search returns these though there are many more to be found:

These below use a different method than fading near edges though, as suggested here:


thanks @Joseph_Oster for all the resources, I’ll check them out and see how I can apply the to mine.

I think i get the logic, not sure how to build it in components yet but I will give it a go.
thanks @Dani_Abalde

Similar to this:

Quite difficult to find this stuff. Many more… The forum search feature is especially useless.

The first example I mentioned is the best one. A quick copy/paste into your code:

undulating_surface_2020Feb25a.gh (18.6 KB)


thanks, that’s pretty close! I’ll check the other links and of course the forum search (just sometimes the keywords aren’t obvious for me)

“pretty close”? How is it the slightest bit different from exactly what you asked for?

Forget about the forum search feature, it’s nearly useless compared to Google: “rhino grasshopper whatever”


Sorry, it is what i asked for , didn’t mean to sound unappreciative!
I just want to tweak it to make sure it doesn’t look like there’s a flat rectangular frame around the wave, i’m working on it.

1 Like

It’s not about being appreciated, it’s about what you asked for:

I would like to keep the edges of my surface straight (= flat).

Increase the maximum for the ‘range’ slider and bump it’s value up to ~80+?


1 Like

Interesting use of Pull component, @Joseph_Oster … i’ve actually never used it and i see its potential now… i feel noob.
There is always something to learn.

Can I ask you why you used Round and Eval components? Using the result of the division to the mapper seems to give the same results…

I’d say it was exactly what was asked for and pretty close to what is wanted.


1 Like

They make one the maximum value passed to Graph Mapper. Maybe that range checking is built into Graph Mapper now?

Again, the maximum for the ‘range’ slider can be increased and then bump it’s value up to ~80+? It’s value must depend on the dimensions of the geometry (surface).

I’ve always seen it locking the values at maximum if the source exceed the x-range of the mapper.
In the linear version, instead, it evaluates numbers also outside.
2020-02-25 16_43_02-Window

yep, range increased. Looks better.
I will try to smoothen the corners a bit though

Fillet the perimeter curve and ignore points outside of it?

undulating_surface_2020Feb25b.gh (23.7 KB)


Good one, that’s it.
Thanks @Joseph_Oster