
If you poke around Grasshopper too much, sooner or later you will find the Voronoi diagram function, and will be tempted to use it on every design project from then on. The temptation is understandable. Even Stan Allen used this on his Tai Chung great Park design. You’ve seen it in Beijing Aquatic Center but it also appeared in an interesting landscape application by Benedict Groß, the Avena+ Test Bed. It has been overused to some degree, which is understandable since it is so easy to do, but it still has many useful applications…. the trick is to make it not so obvious.
So what is the logic of a Voronoi system? Basically it is a diagram based on a cloud of points, dividing an area spatially where each cell is defined as all areas that are closer to one particular point in the cloud of points than any other. Here is an example from the blog engaging data which shows which national park in the US is closest to you using the Voronoi diagram.
Anyways, on to the script. This one is actually super easy…
Step One – Setup a grid of points. Like example 2.2, you could put in the points manually, especially if you were doing something like the baseball map, but in these examples we will start our points based on a grid and then
Step Two – slowly jitter the points based on the same logic as example 1.3.
Step Three – Now just input these points into the 2D Voronoi component and voila! generative design! OK, voronoi has some other options you might want to play around with, such as setting a boundary to get rid of the annoying super huge edge cells, and a radius function to round off the corners of your cells…etc.
While your at it, you can try out the Delauney mesh component, which triangulates a surface (examples 7 and 8 below) or the Quadtree component (example 9), which basically divides an area into squares where each square has a certain fixed amount of points. Quadtree doesn’t really do much interesting with this particular grid, but it is useful when you have high densities of points in certain regions of a point cloud and low densities of points in others.

And here is the associated Grasshopper script screenshot…


Comments
4 responses
excelent!Dom B exp values??
Dom B uses an expression override to give the negative value of the input, which makes the domain extend from positive A to negative A (which is B). you could also use a negative component before Dom B. Sorry, I try not to use the expression override too much in the screenshots but this time it got through
Very nice indeed, thank you for sharing this with us.
Just one question, what is that componente of “Explode Mesh” the first component on the right seen in the last photo? And where can I find it?
This comes from the plugin “Mesh Edit Components” which you can download from food4Rhino
http://www.food4rhino.com/project/meshedittools?etx