Leaf Patterns, Nested Voronoi Diagrams

I spent much of the weekend working towards finding a way to create patterns similar to the vein pattern of leaves. My first research brought me to the rhino plugin millipede, which can do form finding based on stresses, and if calibrated right, according to those on the forums could create leaf like structures.08_slab_highres.png

While this software was very capable in preforming many of the strength to weight and surface area relations that govern leaf growth it seemed to lack in the aesthetic qualities that I was looking for in my splint design. As I did more research I came across another blog by Omar Helmy in which he tried to tackle the same problem but on a 2 dimensional scale. He used 2 different ways of attaining leaf vein geometry, nested voronoi diagrams, and a shortest walk diagram.

While neither of these are exact, I chose to focus on the nested voronoi diagrams because they seemed have greater strength per material, and would work better for this application. Now I had the approach all there was to do was to figure out how to make it.

I was lucky enough to find a free low-res 3d scan of the human body from cgtrader.com but the mesh was too rough to create a satisfactory model, so after using a plugin to convert a mesh to brep(looking back this step was probably unnecessary but I didn’t know that at the time) I deconstructed the brep of the splint area into points and edges, then used the patch device to create a smooth surface of the area.para 2.0

In my first attempt to create the nested voronoi diagrams on the surface I used the 3d voronoi mesh, and was planning on creating a solid mesh using exoskeleton from the intersection lines between the surface and the voronoi brep, but I ran into 2 problems, the first was that while the mesh looked fine from a distance, up close there was lots of distortion that would have caused the wearer much discomfort.


The second issue was that with some geometries voronoi diagrams, especially those projected onto planes cause an error message: “object reference not set to instance of an object.” The help forums said that this was a bug, that may be fixed in future versions but I decided to instead try a different method of applying the pattern.

With the help of altv.org and their incredible section of examples I was able to create the 2 patterns flat then map them on the splint surface and cut out the pattern that I wanted.


My original trials went very well but when I tried to create much larger patterns on the surface I found that the large geometry would not  fit the surface very well causing issues when I tried eval surface to give me normal vectors to extrude my cutting pattern along. The resulting splint was ok but not what I was looking for

para 2.3

I found that with this large geometry I needed to just a manual z value, and larger extrude values than I had used previously, changing these gave me what I was looking for.

para 2.4

The only issues that I have found so far have been that it takes a few minutes when loading a new brep surface into the program due to the large number of components, My task manager is only showing ~35% CPU usage, is there any way to make the computer use more of its ram and CPU on this task to speed it up or is it restrained by other factors?para 2.5

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s