We all know Voronoi diagrams right? At the AA there was a bit of a running joke about how much they were used. A quick image search will turn up thousands of design projects based on them. Their wide appeal is understandable – they have a simple and clear logic which can be used to generate organic looking tessellations from any pattern of input points.

The recent obsession with them in architecture schools goes back maybe 6 or 7 years, but they were invented more than 100 years ago. So are there still aspects of them which have not yet been explored?

Firstly, there is a remarkably easy way of generating 2D Voronoi diagrams without any sort of coding or plugins that I suspect is perhaps not as well known as it deserves to be. Just take cones and simply look at the orthogonal projection of where they intersect.

voronoi_conesVoila! instant Voronoi

(This is not a very computationally efficient way of doing it, but it certainly makes it more intuitively understandable)

Secondly, there is an alternative way of generalising Voronoi diagrams to 3D which gives a variety of interesting curved surfaces.

In 2 dimensions a Voronoi diagram partitions the plane(2D) according to proximity to points (0D), with the boundaries being lines (1D)

In 3D we can also divide space according to proximity to points, giving polyhedral cells -like bubbles in a foam- and this is usually what is referred to as a 3D Voronoi (and what has gained popularity within architecture)

However, there is another way of generalising from 2 to 3D that is arguably more natural. Before, we had an (N)Dimensional space partitioned according to proximity of (N-2)D objects and the boundaries were (N-1)D objects.
So taking N=3, we have a division of 3D space by surfaces according to proximity to lines.

I wrote a quick Grasshopper sketch to play around with these surfaces (sometimes called medial surfaces, but as far as I can tell, they have not yet been used much as a generative design technique). Its very crude at the moment and limited to only 2 curves, but you can see that it generates some interesting forms. (The chunky Lego aesthetic is only temporary, until I get around to having a go at implementing a marching cubes algorithm)

In the simplest case, 2 lines give a hyperbolic paraboloid:

A Hopf link:

2 Helices give a Helicoid:

A Whitehead Link:

A Square knot:

Next step is to make it work for multiple curves. There are some fascinating links with (near) minimal surfaces. Taking spatial networks or 3D weaves (like the ones in this video) as the input curves could give all sorts of interesting labyrinths.

Get the Grasshopper definition here:
medialsurface.ghx