Voronoi, Delauney, and Quadtree – Example 2.6


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, see here and here or see the full article from Architect magazine. You’ve seen it in Beijing Aquatic Center but it also appeared in an interesting landscape application by Benedict Groß, the Avena+ Test BedIt 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 a concrete example done by a friend of mine, where the United States is divided into territories based on its proximity to baseball stadiums.

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…