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: 194658


Replies to This Discussion

This is a really nice discussion, and hopefully the right place for my question.
I want to create something like this:

What I tried so far, was to experience with some definitions from this thread, what I got you can read here: HERE

But I'm not satisfied with that, so maybe you can help me :)

Really no way? 


I have been going through all of the posts regarding the voronoi skeletons, and have not been able to find a proper solution for my problem, so am wondering if u guys could help me.

Problem: I have modeled a hand in 3ds max, from a box. All faces are quads, if that's the proper word for faces that consist of 4 vertices, but are not necessarily planar. I have exported it, optimized for Rhino. When I import it into Rhino and reference it as geometry, it is referenced as a mesh. I wanted to implement the voronoi skeleton on such a form, but it seems that it is very hard to obtain a watertight model. 

I also turned it into a brep, by joining surfaces that mimick mesh faces, and tried definitions then, no luck. If You think it can be done let me know and I'll provide further details or pics.

Thank You in advance

Here you have. It's a bit longer than it should be since there are no trim curve with mesh or mesh inclusion components.

Disable/toggle the grouped components to remove the outer layer.


You can choose to generate the points using the populate 3d component (volume) or populate geometry component (surface). They shouldn't be connected.

wow, cool!



Thank You very much, I think it did the job, all that's left is understanding how it's done and printing it, thanks again 

That definition generates a skeletal mesh following the OP approach so the outer skin remains open and it won't allow you to 3d print.

Attached is a definition that should close the outer skin of the mesh.


Unfortunately, there were also tons of errors resulting in naked edges. I made the definition needlessly more complicated to try to reduce them but there are still some. I want to think it's due to the low precision of mesh intersect or the nature of the voronoi algorithm creating out of tolerance edges but it's more likely due to faulty logic in definition (I screwed up somewhere).


If naked edges form any regular loop, you can always use slTopoSphere from the Starling plugin. I probably should've called it just "cap mesh". Similiar effect may be achieved with "naked polylines" from WB and then applying "wbTile".






  • Add Photos
  • View All

© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service