Transform a surface with attractor points

Hello guys!

I have a surface and i want to create something like this where the surface transformed due to rectangles in various distances.

I thought that a way to do it in grasshopper is with multiple attractor points. My problem is that when i set multiple points as attractor points it creates a different point grid for each attractor.

So when i create a surface from points i take a strange surface like this.

What i have to do in order all my attractor points affect a single grid of points.

attractor (11.5 KB)

Thanks in advance

Graft your point input, average out their individual contributions, and shift the tree back down a level:


There’s also an issue with your surface construction, check out the edited file for 2 different approaches-
attractor (19.3 KB)

Check this as well…

attractor (15.9 KB)


I like this one, but Preview fails in Rhino 5. It has an ‘M’ (Material) input instead of an ‘S’ (Shader) with no default defined. Not standard?


Looks like another difference in GH 1.0.0005. including bellow…

Odd that it works in Rhino 5 if I connect a Colour Swatch or Create Material to the Preview 'M; input, it’s just missing a default.

Thank you very much guys for your help!

What if I would like the transformation length of each point to have the same length with the vertical distance of each point to my base surface?

I used closest point in order to count the distance of each point from surface but I think that I dont know the right way to connect them on remap target .

I’d like to have different heights for each of points, using your definition above. How would I do that? Currently all of the points are pushed to the same height.
(More than one point controling their own heights, on the same surface)

If you have an understanding of the data tree, then it’s just a matter of whether you will apply different weights to each attractor point.

attractor (12.9 KB)


heavy !

1 Like

hi do you know how i can create a surface which is not joined by 4 sides such as this? Btw i am using the same script which you have used so thanks for that :smiley:

Thank you so much, This was really helpful for me as well! How can you change the script to also allow those points to have “negative” heights?

Think about it:


Im sorry but I dont get it…?

How do you make a positive number, negative?

By multiplying it with a negative number. But the curves still go up, even if I use a negative number…

Assuming the script is the same as the original - something interesting happens here, the first ZVector is redundant, instead of putting your negative at 1, place it at 2 - OR, remove the first ZVector and just feed the values straight from Multiplication into MassAddition


Thank you so much Sash you really helped me out here!