Discrete aggregation question/help

Hi! Im trying to achieve something similar to this reference, by making an aggregation with the WASP plugin for grasshopper - But I cant seem to figure out how to get the same lightness in the structure and achieving something similar to my reference.


Example from my grasshopper file:

aggregation1.3dm (109.2 KB)
aggregation1.gh (40.2 KB)

All suggestions and clues to how I could achieve the same sort of aggregation result would be really helpful! I uploaded my rhino + grasshopper file. Thanks!!

1 Like

tagging Andrea: @ar0551

The first Wasp related thing that I notice here is that you’re using the wasp constraint component with a simple box as it’s constraint. It is possible to use something more complicated as a constraint, and the sample images you show appear to have done that. If you were to copy your constraint box, and move it over say 4 or 5 units in x, y and Z, and then subtract it from your original box, you’ll get a constraint region that will give you more of a “shell” effect, rather than a “box full of stuff” effect.

One thing that I also saw immediately that is not directly related to Wasp functions: Your project conforms strictly to an XYZ grid. This is a huge advantage if you want to thin out the aggregation after creating it with Wasp.

For example, sort all the boxes output from wasp by which plane their smallest faces are aligned to, place centroid dots in all of those smallest faces. From this, you can use algorithms to cull some of the boxes from your final output.

Cull by odd vs. even position in one of your grid’s axes for a very basic thinning.

Or find stacks of boxes along an axis that have more than a certain number of boxes in a row, and cull a certain number of boxes randomly from those rows. Again, because you’re working within a strict grid, this should be pretty easy to do: project all the centroids of the smallest faces to a plane. Sort those points into colinear groups along one axis. Create polylines from the groups, explode the polylines and sort away any segments with a length greater than one. Re-join the lines. Now you know where your stacks of blocks are. Cull some of them.


I totally agree with all the suggestions from @Max3 , using more complex geometric constraints and/or thinning the structure after aggregation would definitely help.

Additionally, a slightly more complex approach could rely on using Field-driven aggregations, ideally with a series of surfaces as drivers. You could even cut holes in those surfaces to create openings in the aggregation.

Lastly, you could also try to use the new Adjacency/Exclusion Constraints, that allow you to specify specific surfaces along your parts which cannot connect to another part. This could also help you to create a “lighter” structure.

If you never used fields in Wasp, a good place to start are this videos:

1 Like