Rhino, Grasshopper, Kangaroo and Galapagos

Grasshopper is a pretty fantastic plugin for Rhino that allows powerful visual programming in a 3d design environment. 

Parametric Concentric Circles with even circumferential spacing

The problem is in getting a variable set of concentric rings with points on them evenly spaced where the distance between points on all rings is very similar to all other rings.

After designing a program that allowed the parametric design of these rings, i designed a Galapagos Fitness Algorithm that numerically evaluated the quality of a set of parameters. From here the Galapagos solver does it's thing and iterates through generation after generation of solution, inserting random mutations to the top 20% of the previous generation, and repeating the process.

For the example below, when asking for a set of concentric rings from radius 3" to radius 7.5",  and 200 total points, it found a solution that while only has 185 points on 7 rings, has a maximum total variance of less than 0.019" on the largest ring. This means the arc length between points on the largest ring is within 0.001" of the spacing of all other rings!

Kangaroo Drillium project

The previous project made me think about smartly perforating surfaces. Simply applying a grid of holes is fine for rectangular surfaces without breaks, but what about surfaces with weird geometry, and/or lots of important internal holes that can't have close proximity to these perforations?

Kangaroo to the rescue. Kangaroo is a physics engine for use in grasshopper. For my application i created offsets for the external and internal geometry, randomly populated hole centers within the area contained between them, and then created an array of circles each a little too big to neatly fit. The physics engine then forced each circle to avoid overlapping it's neighbours. Once the circles settled, they were in a very evenly distributed organization that follows arbitrary geometry beautifully.