Is it possible to scatter objects on a grid of points so that they don’t collide with each other while also maximizing the amount of objects scattered?
Let’s say, I have a hexagonal grid where each of it’s vertex is an anchor point and I have 3 types of geometry that I would like to fill the grid with so that there’s as few unoccupied grid vertices as possible. Every corner of an object has to sit on one of the grid vertices. The objects can be rotated around Z axis to fit.
Since I also want to control the amount of each type of geometry, my initial thinking was to setup a hierarchy and start with scattering the biggest type, then culling the list of points that it occupies and use remaining ones to scatter smaller ones. It’s not a scalable solution and I’m often left with gaps because certain vertices can be used by two or more objects as long as they don’t intersect with each other (I understand that touching is almost as same as intersecting).
I’ve also looked into scatter plugins but they all seem to lack the function of overlapping or manual control of each type of object. I know that such workflow has been long established in other major 3d modelling software so there must be away of applying those methods in grasshopper (I’m sure it’s doable with C# or python but my knowledge in those is pretty lackluster).