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


Reply to This

Replies to This Discussion

Ok, so here is my approach to this. Without culling and with culling (like Daniel) not used mesh faces. As I can see from image (I will look at it later) its somehow different :). 

The VB script is just cosmetics - unify mesh normals


working on this algorythm ,I realized that connections form 3d delaunay triangulation (or am I wrong ? see file)

Does somebody has better idea for voronoi3d faces matching (in my def) ? Its based now on polygon area, and due to this regular voronoi cells (i.e. cubes) wont work.   


It isn't delaunay you can see when use the delaunay component the lines do not match. maybe a way to match would be (and im not sure right now how to do this) to define the original voronoi cells pre scaling as coupled faces that take up the same space, then have this list travel down to where you want to connect centroids in the face to face direction?

"It isn't delaunay you can see when use the delaunay component the lines do not match."  I really dont understand this :)

I didnt mean it wasn't delaunay, I mean it wasn't matching the same connections as the delaunay edges component. sorry bad wording. :D


Here's another approach with only 4 components (using the property that the Delaunay edges are perpendicular to the Voronoi faces)

Now I wonder if there's an easy way to get not just the edges, but the actual tetrahedra...

(Michael - I think the reason the lines do not match those generated by the standard Grasshopper Delaunay component is because that is only triangulating the projected points in 2d)



Indeed :)

This one should work better (there are some limitations, but look at these regularities:D)


impressive. nice stuff. Im surprised at the speed of computation as well.

And it can even work with geometry not obtained by voronoi3d ! (actually it works like meshBrep + weaverbird, but with faster meshing (automated))


(waits for evenevenbetter) :)






  • Add Photos
  • View All

© 2017   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service