How to build this continuous voronoi external skeleton facade structure?

Hi, I am trying to build a continuous voronoi external skeleton structure illustrated in this image

I have started with voronoi cells, but it seems the cell structural lines cast on boundary surfaces aren’t very continuous. (14.9 KB)

What do you mean with “continuous”?
Also with “continuous voronoi external skeleton structure” you are “mixing” 5 different terms which make more questions than answers.
Explain in detail what you want to do.

There is a similar question asked on this forum. As I don’t remember the architect name I can’t find the link.
Always give credits to the owner of a design

Hi Riccardo,
Thanks for helping me to clarify the question. I mainly want to ask how to control the voronoi pattern to make the facade like the second image which is modified by photoshop.

Thanks, Laurent, for reminding me . The project source I had read is from here

You already seem to be on the right track for that.
Since the vornoi pattern is mainly controlled by the locations of your points, I’d consider placing the them by hand to get more control over the design. You can also play with the seed of your current, random point population to search for interesting results.
I guess scaling and filleting is the way to go to produce the voids. Keep in mind here that you want to have variation! It would thus probably be a good idea to make the scale factor and fillet radius of the cells dependent on, for instance the area of each cell. This way you can pretty easily introduce variation.
To get a surface you can simply divide the boundary surface of your vornoi region by the scaled, filleted cell polylines.

1 Like

Thanks your suggestion and common. I tried to adjust the seed and count of voronoi. Maybe because of I using 3d voronoi, it results some of the cells very small. But reducing count makes the cell generally too large. Would the 2d voronoi be easier in control the cell size in this scenario? (78.2 KB)

Yes, I see how that might be an issue. If you apply a simple 2D Vornoi to each individual face of your box, you’ll run into a problem, where the Vornoi cells at the border of each face don’t align with/correspond to their adjacent faces from neighbouring box faces. I imagine that would be pretty hard to remedy, so you should probably stick with the 3D Vornoi.

In general, the Vornoi pattern mostly depends on the positions of the points that it’s generated from.
If you are dealing with a rather small object, I’d probably bake the desired number of random points to Rhino, rearrange them until you’re satisfied with the resulting, new Vornoi.
Another option would be to relax the points with Kangaroo. Imagine each Vornoi cell as a circle or sphere with a certain radius that gets rearranged until each sphere isn’t intersecting other spheres anymore, thus relaxing the whole pattern. This is often referred to as circle packing. However, the resulting Vornoi pattern will become less interesting or random.

Hi, thank you for your suggestions. I figure out I need to slightly offset the center point of the voronoi cells out of the rectangle box a little bit to control the size of the voronoi cells.

But the second approach maybe is more like this one inflated balloon ?


What I meant would work a little different, but this is a great idea too, maybe an even better one! If you’re wondering, the simulation from the keynote was done in Maya with nCloth. It’s pretty straightforward to achieve. :wink:

Thanks for your information, unfortunately, I have no experience on working in Maya. But I just read a thread about inflating balloons within a boundary, and using its definition, I did a bit modification and tried to use the center points that are received from kangaroo relaxation to be as the new voronoi centers. But there still have some very small volumes. (218.0 KB)

I also wonder if there is a simplified definition just using grasshopper component without scripting c#. :wink:

If you start with the same center points that were previously used to generate the Vornoi, what you get by inflating them inside a boundary volume is basically the same exact Vornoi. :slight_smile:
What you can do to remedy this, is start with various sphere radii and/or inflation rates. You could come up with a set of rules that sets a larger radius and/or higher inflation rate for points/spheres that are closer to other points/sphere in the system, since these currently become small spaces by volume.
Another strategy could be to place your start points/spheres by hand and set custom radii and/or inflation rates. Like that you gain more manual control over the system and can dial it in so to say.
Yet another idea could be to simply delete points that generate tiny spaces and run the simulation again, until you have only blobs left that meet your volumetric requirements.

Whether there is a script free version for this, I honestly don’t know. Maybe @DanielPiker could chime in on this? :wink:

Hi thank you so much for your reply.
I did manage to find a script free version to do a similar job. balloonbox :slight_smile:
Yeah, I did try place start points manually but that were just pretty painful experience and lacking of variety. So just used 3d populated points. By introducing various radii and inflation rates can adjust the volume centers by pushing and squeezing to maximally reduce small voronoi, which results the volume centers is slightly different than the starting points’ position. But eventually I have to manually adjust the volume center’s positions to remove![3|690x314,75%] small voronoi. :joy: (26.5 KB)

1 Like