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


Replies to This Discussion

Alternatively try this definition. I've labeled the section that closes the mesh


That's awesome. Thank you so much!

Hi Ben, 

I know this is literally 4 years later, but I'm trying to use these scripts and I'm wondering how you were able to get it to be rigidly defined by a cube. When I plug my geometry into the definition I get a skeletal mesh that is only bounded by the geometry not directly related to the defining edges of the cube. That might be a bad description, but basically how did you get the sharp edges of your cube in your mesh?


Hi there.. How can i connect four end Point outs to one Point Param.?

It seems impossible :D 

Thanks Daniel Piker (; nevertheless, its very helpful to me!


Hi Emanuel,

To connect multiple outputs to one input just hold down shift on the keyboard when connecting

hi i'm having a problem using your script. i'm using about 10 different boxes and they are mixing all each others i'll send you the script.


Thank you!

Very nice discussion! Thanks.

I have one favour for you - could weaverbird catmull clark component output vertices and faces in datatree, where each branch represents primary face, (which was smoothened/triangulated) ?


This maybe (I am not 100% sure) will convert our meshes (Daniel's and mine) to geometry based on surfaces.


Here is a little proof of concept : 


Mesh on the left was was obtained by meshing a surface.

Next it is rebuilded with surface from grid points component, which results with almost same surface as one used to make mesh (surface on right is made from mesh)

Hi Mateusz,

this is interesting: I've spent now a couple of hours of this Sunday evening to see what this would look like. In general, I think the subdivision component is more helpful when it returns a mesh. To put the two things together, here is a script that takes the mesh and separates it into several sub-meshes, each one being the descendant of an original face. This script works in general for this component.


My turn ! (only untrimmed surfaces !!!!!!)


closed breps : 






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service