algorithmic modeling for Rhino

In response to this discussion:

I am posting my definition for generating an open foam mesh.

(I didn't post back at the time because there were some troubles with weaverbird back then and I was having to use some ugly workarounds, but now that is all fixed)

To sum up the approach -

take a random cloud of points

generate the 3d voronoi

scale the edges of the cells towards their centres, and also towards the centres of the faces.

connect these 2 sets of scaled edges with mesh quads and join

cull some of the outer faces

subdivide and smooth with weaverbird

(In the video there were some other variations on the smoothing/relaxation, both of the initial point positions and the final mesh, using hoopsnake and/or kangaroo)

Views: 201901


Replies to This Discussion

Hi Daniel,
I'm trying to construct a mesh similar to the one shown in red and blue on the surface of the rabbit. Do you mind sharing how you did this? Or perhaps is there a link that already explains how?

this is so great! i tried to apply this to my meshed geometry from rhino but it doesn´t look so great. it creates single solid rings all over my mesh. what do i do wrong? is it possible at all to apply this to a mesh from rhino? thank you!

Hi Daniel,

Thank you for this great tool.

I tried the component with the mesh attached, but it didn't see to work with either method for the center.

Do you have any advice on this?

Thanks a lot.


this is so cool !

This seems like an appropriate place for these questions. This definition is similiar to the one on LAN site called gh_shelling. I was having a very difficult time trying to figure out how to keep the original list of breps intact once they were recreated as joined meshes. So for every brep I wanted to end up with the same number of meshes eventhough I was changing the number of faces which defined the brep. This was done by relofting the outer edges of each face to a scaled version of those edges. So basically if I had a four sided face it now became 4 faces. I just had a difficult time keeping these newly lofted faces relating to the list of the original faces. It works but there must be a better way to do this. Can somebody show me how they might solve this problem of essentially adapting a previous tree structure to a new data tree.


Are you from the future? How were those made then? No 3D printer allows such perfect surface drawings that I know of. The hand looks a bit weird since it's blurry but the object isn't. It's glossy so it's not a simple 3D print. The joints are too perfect to be glued together at the lines. This is quite a mystery, actually.


I really enjoyed this post and tried those definitions, but I was not able to create a foam looking mesh in a closed surface/brep like e.g. a torus - with not "structure" in the middle. 

Any ideas to solve this?


Hi teejot,

do you mean something like this?

Or do you mean something like this?




I would really like to know how you did that first one :) Putting the voronoicellstructure mesh skeleton into a freeform shape (not just "ready made geometric forms" but in lofted surfaces or something like that? Would that be possible? I tried to use another 3dvoronoi component that uses a brep instead of a box but didn't get it to work unfortunetly :(

Hi Isak,

here is my definition (I did it for my students of the A³ - Algorithmic Architecture Advanced seminar).

The first image I've done using this definition, a torus and random points on the torus.

The secound one is done with the same definition, a torus and points in the center line of the torus.

If your freeform shape is a closed Brep than it should work.

Hope it is like you expected.




Thank you so much Martin! I will try it out later, I am sure it will work well!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service