generative modeling for Rhino
It's great to now have 3d Voronoi directly in Grasshopper.
I was wondering, does it compute a 3d convex hull and/or Delaunay tetrahedralization behind the scenes ?
If so, could they be given components too ?
I know there are ways of achieving this with external libraries, but it would be really nice to have it as part of the core grasshopper functions.
nope, Voronoi3D has no such optimizations. It basically creates a box volume and then slices that volume over and over again with the mid-planes between the center point and all other points. I don't use Rhino SDK boolean difference obviously, that would take forever, I use a fast volume slicer that only works on convex closed shapes with linear edges and planar faces.
3D-ConvexHull is something I'd like to do at some point, Volumetric Delaunay though seems very obscure. Can you give me an example of where it would be useful?
Interesting to hear about how it is working.
I was thinking that volumetric Delaunay (like TetGen) could be interesting to play with for physical simulation of solids, and also maybe for making spaceframe structures that could be 3d printed (along similar lines to Harri's recent work).
I found it easier to thicken the edges of Voronoi mesh cells into a solid (like this) than it would be trying to thicken a wireframe that's just a collection of lines, and it could be interesting to do similar with the dual.
There's no pressing need for it though, my question was more just in case it was being calculated already.
An internal delaunay, especially is a well distributed set of points that respect the boundary surface, is a really nice way of getting a physical response from a polygon mesh. Also once you have a simple point-plane intersection tests you can bounce complex objects against each other using the (constrained) convex hull faces (always triangles..). Should be very accurate and could handle self intersections of a "floppy" form.
I believe there is also some research in modeling reinforced concrete as a dense stick and pin 3D delaunay network rather than FE.
I'd be interested in converting my project to Grasshopper, the key is really efficient constrained delaunay calculation. Let me know how you get on. I'll send you a copy of my paper which outlines a few processes I introduced to create an internal mesh that is not directly related to the resolution of the volume to fill.
This is my attempt to make an incremental convex hull component. Works well with small amount (less then 300) of random points. There are some bugs - doesnt work with more than 4-5 coplanar points, probably because visibility function is really simplified. Despite that it is really fun.