Any help with perforated attractor script on curved surface

Hello guys,

So for the longest time I’ve been trying to take an attractor point script and flow it along the surface of my model that I’m building for class and in normal circumstances, placing a grid w/ attractor points would be fine if the surface was flat, but my model is a very curvalinear sub-d model and after talking with my professor, he said that I would have to use another script alongside the attractor script in order to get the cells to orient properly on the model… I hope I’m describing this properly as this is very new to me and I’ve checked out tons of youtube videos but haven’t had any success as it seems there is hundreds of ways to create perforated surfaces, but none that seems to fit my problem, any help would be greatly appreciated. Thanks guys. I attached the GH file with both scripts, and an image of what I’m trying to achieve with multi attractor points, and if anyone can explain the difference between Surface Morph and Map surface and which would be best in this use case, that would be great. Thanks

SubDSurface.3dm (99.5 KB) SurfaceAttractor.gh (20.7 KB)

I used a slightly different approach. Geometry is internalized, no need for Rhino file.


SurfaceAttractor_2020May23a.gh (43.0 KB)

A refinement would be to cull holes that overlap edges before splitting the surfaces…

The white group does that (below):


SurfaceAttractor_2020May23b.gh (47.4 KB)

Hello Joseph,

Thank you so much for the help, so I have a few questions. Is there any way to make the perforations near the point attractors go completely solid? and I assume I’d just use the srf at the end to put the cells on my surface correct? And am I able to use brep at the end instead of Srf since I can’t select SubD surfaces with the 'Srf" block.

The ‘min_R’ slider sets the minimum radius of the circles and you could cull circles less than a specified radius.

I don’t understand these questions, you’ll have to take it from here.

Ok nevermind I just opened the script and played with it a bit, and I understand that I can just bake and offset the end result which would be srf, and you already have a brep at the beginning. I’m just wondering now how I can try and close off any cells near point attractors and how to stop cells near the edges from clipping each other, and if theres any way to keep the cells from not “overlapping” each other? I have a feeling when I place this on my model, since it technically has around 14,000 surfaces, the debrep block is going to try and select each individual surface…

The yellow group (below) culls to ignore circles less than ‘cull_R’ radius.
14K surfaces is likely to be a problem…


SurfaceAttractor_2020May23c.gh (48.1 KB)

This approach keeps the grid points square in top view instead of following the curved surface edges.


SurfaceAttractor_2020May24a.gh (50.2 KB)

1 Like

Hey Joseph,

Thanks for really trying to work a script for me to solve this problem, I’ll test out this new script you posted and I’ll let you know how it goes!

From your PM and initial description, it sounds like you want a SubD solution instead of a Brep/Surface solution? SubD remains mysterious to me, especially with regard to GH, so maybe someone else has a better answer than the four variations I have provided. Good luck.

1 Like

Alright, thanks for your help, Joseph. I’ll keep trying to figure it out, maybe convert my surfaces to a poly-surface and see what happens.

The Brep input I’m using is already a polysurface with four “faces”.

@Joseph_Oster Hi! I am not familiar with grasshopper but would like to give this ago, can you provide link to this grasshopper and explain to me how to make all of my holes the same size? Thank you!!!