generative 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)
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)
(waits for evenevenbetter) :)