I am working on a project with a curving shell with spikes on it. I would like to populate the curving geometry with multiple sizes of spikes. So essentially different blocks, linked to points on the surface and angled according to the curve of the surface [See the section]. Considering the large number of spikes I think this can be done efficiently in Grasshopper. However, I’ve never used grasshopper before. By now I managed to populate the points on the geometry. However, the points are also placed on the inside of the geometry which is not ideal since I would have to manually delete the spikes later. Can someone help me out with the next steps and how to get the points only on the outside of the geometry?
Not sure how to define it in technical terms but basically the spikes should only be on the outer surface - so basically ‘outside’ ends where the geometry folds inwards and forms the opening. See screenshot.
Also spikes attached:
This effort creates long lines normal to each PopGeo point, then checks to see if each line intersects the brep. If so, that point is ignored, otherwise it gets a “spike”. In this case, I used cylinders instead of spikes but the base plane for each is available if you want to Orient spikes you created in Rhino.
As you can see, it often works but there are cases where an internal spike pokes through one of the holes in the brep so there is no intersection and that internal spike is allowed.
This seems absolutely great! Clear explanation as well. Thank you so much!
I’m gonna play around with it a little bit and will share an update when done
Perhaps an additional elliptical lobe could be placed on the interior and also checked for intersections with the lines in order to avoid the ones that happen to go through the holes.
Ah, I see now there’s “floors” and it’s not like a shell with holes.
It looks like SubD geometry so, depending on how the underlying mesh was generated, maybe the holes can be patched to create a solid version of the SubD form?
The geometry was indeed generated as a Subd. This is the final stage of my project so its mostly about populating the surface and it doesnt need much flexibility for testing different options etc.
So in that sense the small number of spikes which are generated on the inside are fine to be deleted by hand after baking.
Is there a reason some zones are left kind of empty, whatever the seed and amount of spikes? Can this distribution become more even?
Another question that I have is if its also possible to distribute oriented truncated cones on the surface but which intersect with the shell so they can be used for a boolean difference to create cavities or ‘bites’ in the shell.
Then I noticed there were some spikes being generated on the edges of the openings and at the top/bottom of the object that were at undesired angles. I eliminated this by trimming the surfaces back at the openings and at the top and bottom.
I believe this uneven distribution is due to the varying sizes of the surfaces that make up your object. I split the larger surfaces to make them more equal in size and the distribution seems more even now.