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)
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)
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.
This is fun!
And here's a way to go from any mesh to a thickened dual
I created a component for the dual operation (trying out the new GHA wizard). It takes a mesh as input, and outputs polylines for the dual (because rhino doesn't support arbitrary polygon meshes).
There is a choice of how the dual vertices are created - either using centres of the circumcircles of the original mesh faces (which gives the Voronoi diagram if the input is a flat Delaunay mesh), or using the barycenters (which seems to work better on curved or very irregular meshes).
Great, astonishing !
it is getting really serious. I actually have idea how to override connections and points for my ghx, but this need some time with scripting (getting topology from bunch of lines). I hope I will find for it some time soon, cause now I have to do my master degree final.