How to create random shape and hole patterns for perforating 3d meshes

hello again everyone,

i’m trying to figure out how to make various perforation shapes and patterns on 3d meshes so that i can eventually thicken and 3d print them. i know how to create regular sized repeating hole patterns using weaverbird picture frames on a mesh and then using catmull clark subdivision to turn those picture frame holes into round holes. what i’m trying to figure out is how to create more irregular round holes and other shaped patterns across meshes on different parts of a mesh to make more natural and interesting perforation patterns. i want to vary the density, location and size of holes ands other shapes across meshes, ultimately perforating them to then thicken then and 3d print them.

i have found 3 very nice examples of hole patternmaking scripts in the forum which have helped me discover how to do some of this and i’ve included them and the efforts i have made to try and get them to produce the hole and shape patterns controls on the 3d meshes that i have mentioned here. i’ve also discussed the challenges i have with each of the three scripts and techniques i have tried here:

  1. Holes and recesses on a surface : this creates a beautiful pattern that uses surface morph to map it onto a surface. the problem is I want to do this with mesh and there is no mesh morph technique that i am aware of for this. i’ve heard that pufferfish has a twisted box morphing technique that might make this possible but i’ve not tried that yet. does anybody know how to produce a pattern like this on a 3d mesh ?

  2. Project holes on SRF of : this also produces a very nice hole pattern using triremesh and results in a hole pattern similar to the weaverbird picture frames - catmull clark subdivision technique. i tried to create random radii on this but that did not work. it would be great if this could use random radii and also somehow not completely cover the mesh in holes, leaving some areas blank.. any thoughts on how this might be accomplished ?!

  3. Make regular round holes on the surface of the object : another lovely random hole patterning technique, beautifully scripted and tbh it’s a bit beyond my understanding. i’ve not managed to get it working on the meshes i use but any suggestions here on how to apply this to the internal mesh and how to only apply the patterning technique to certain parts of the mesh rather than the whole mesh would also be very useful.

there is a recent post i created here similar to this - ‘Perforate mesh deleting random quads/triangles based on their area size’ - demonstrating how to delete random quads from a mesh but i was not very happy with the pattern it produced. i wrote that script to try and avoid doing so many extrude cut patterns from the 3 techniques i have been playing with here as sometimes my meshes are big and i need to extrude cut hundreads/thousands of hole patterns out of them!

so I’ve been exploring this method i posted along with the 3 aforementioned methods to try and improve upon and create hole patterns on meshes that allow for both the hole/pattern size, and hole/pattern location on the mesh. it seems point attractors and using techniques like kory bieg’s pattern variation (varies hole pattern based on curvature of surface but again only works on surface) could be helpful here but i’m not sure how to integrate them. there seems to be great options for pattern making and projecting to surfaces but the problem i have is getting it to work on the organic meshes i typically work with.

i hope you can open the attached script here. i have disabled all of the components in it as they are quite demanding, the original methods are grouped in pink and my efforts in the default violet group colour - it’s best to enable each sub group one at a time and see how it works and then see what i have tried.

i notice some people have mentioned in previous posts of mine that they don’t have all of the plugins i use in grasshopper, i have tried to bake all of my geometry internally and limit my use of exotic plugins. please let me know if you are getting any requests for exotic grasshopper plugins and i will try and resolve and reupload the file (if anybody knows how to check which plugins and remove the need for them in a script, that would be very helpful too!). thank you in advance for any advice and tips you have on developing these type of hole patterns for 3d meshes!

hole pattern explorations rev1.gh (1.4 MB)