High Level Question: Voronoi Cells-Size based On Surface Curvature

Howdy! Brand new here (and to Grasshopper).

I have a high level question on the feasibility to get a specific outcome, not looking for an education on how to do it (although I’ll take anything I can get); I mostly just want to make sure I am not barking up the wrong software tool tree.

I want to know if it is reasonable to build a Grasshopper tool to a) generate a Voronoi pattern b) on an arbitrary, closed polysurface c) the cells of which have their size (and therfore, density) determined by the local curvature of the surface (see my lousy drawing):

With the very little I understand about Grasshopper, the way this will likely work is a set of points are distributed across the surface of my object which serves as the basis for one of what looks like several Voronoi generators (from which, of course, some sort of solid object could later be built). The distribution of those points seems to be my biggest conceptual bottleneck.

Seems like two primary paths would be most fruitful:

  1. place a point on the surface; measure the (relative?) curvature of the surface at that point; this number is used to determine the distance to the next point placed (high curvature => short distance; low curvature => long distance); rinse and repeat until surface is covered; sick your favorite Voronoi generator on the points and surface


  1. generate a greyscale curvature map; use this map as an image-based attractor for points applied to the surface; high curvature is, say, white, low curvature, black; white attracts with some strength, black repels with some strength; Voronoi the resulting pattern to taste

My question: is one or both of these options viable? If so, any recommendations on which one I should choose? Is there a Secret Option C I should look at?

Thanks for any help you can provide,

You can use MeshMachine to remesh the shape properly, so that each mesh vertex is the center of a voronoi cell. After that, you can extract the voronoi using its dual mesh.

@Dani_Abalde, thanks! That has me going in the right direction! On previous treks to get this result, I had hoped for something that would find the center(ish) of the triangles and use that to fashion a Voronoi network, but hadn’t thrown enough time at it and then something shiny would distract me. Huge help, thanks again!

Be warned that Meshmachine is buggy and fragile, also very old and seems unlikely to ever be updated. It was incredible and has no replacement and I’m so sad that it’s been abandoned, but that’s the timeline we’re in.

I’d use your option 2: make a grayscale map of the curvature (there are GH plug-in components that can do this), use Kangaroo to distribute points on the object with spacing determined by local color, then voronoi that.