## 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 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 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…

excelent!Dom B exp values??

LikeLike

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

LikeLike

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?

LikeLike

This comes from the plugin “Mesh Edit Components” which you can download from food4Rhino

http://www.food4rhino.com/project/meshedittools?etx

LikeLike