Voronoi on a Trimmed Surface for an arm splint


I am trying to make a definition for reaching this goal: arm splint

Arm-voronoi.gh (38.6 KB)

I have two questions:

1- I first rebuilt a loft surface from a sequence of sections of an arm scan (stl).
Then I made some curves on surface and a cut for the thumb; as result, I have a trimmed surface.
I tried to follow some exemples on how to make a voronoi structure out of it, but I do not now how to deal with a trimmed surface.

2- Also tried to convert my trimmed surf to a mesh in order to do other stuff later, bit the conversion just selects out the faces that are insode the cut lines

Any sort of help is appreciated!! :slight_smile:

…Forgot to say that I might have chosen the wrong way to make up it,
I am not an expert…

Here my definition.Arm-voronoi.gh (38.6 KB)

This isn’t the whole answer, just one possible direction to follow.

Arm-voronoi_2018Apr15a.gh (43.1 KB)

One of the methods I use is this.

Arm-voronoi_re.gh (54.6 KB)

1 Like

Thanks Kim!

from your method I learn something interesting on how to cope with trimmed surface; also, building closed nurbs curves from the discontinuity points is an effective way for avoiding the mess in offsetting polylines on a freeform surface, like I was trying this morning (see below)…

There is only this part grouped that I haven’t understood, could you enlighten me?

Then, I think I should clean up my surface, because at the hand level there is some useless detail that produces this weird shape:

Finally, is there a change to reach a smooth geometry following this method?

I tryied adding some WB smooth but the result is very bad (as expected, considering input topology)…

Maybe I have to work with meshes from the very beginning?

Any following suggestion is warmly welcome!!


To select the trimmed surface that has the most longest edge length…

And check this mesh version with a decent topology as well.
But if I were you, I’ll just bake the final brep and add Fillet Edgesin rhino and then convert it into mesh for 3D print…

Arm-voronoi_reV2.gh (60.5 KB)


More smoother mesh… and final mesh was flipped…

Arm-voronoi_reV3.gh (60.9 KB)


Thanks a LOT Kim,

you rock! :wink:

Hello, I found this thread as I’m trying to do the same thing. I’m mainly using the same approach Hyungsoo posted in the first

However, I’m trying a slightly different approach using Network Srf instead of a single Loft to get rid of the Seam Line. However, I’m getting a bit of an issue with kinks around the thumb. My guess is that it has to do with my method of creating the initial curves, but I’m not sure how to fix it. I’m controlling how many curves are projected onto the scan of the arm using a Slider called “Loft Curve Spacing”. If it goes anything underneath 10mm, then I start having problems. Anyone have any ideas?

20200124 - 3D cast - 2 part network srf.gh (531.2 KB)

I don’t know if this will help or not, but here’s a simple way I found here a few years ago to turn most any shape into a Voronoi.

Arm-voronoi-bb1.gh (36.8 KB)


Thanks for replying! The problem I have with that is that it untrims the surface making it such that I’d have to add the trim of the thumb later again.

I’m having more trouble with refining and getting good quality curves to make a smooth loft. Do you have any methods for that other than what I’m doing?

This may be too simple for your requirements, but here’s the same Loft with a thumb hole. I just created a cylinder and used it to poke a hole where I thought the thumb might go.

The resulting geometry could easily be 3D printed by simply standing the arm on it’s end. As it stands now the edges around the thumb hole would be sharp, but these could be fixed with a file or with some sanding, or, probably better, with some mesh smoother prior to baking. I have printed several parts with this method and they have come out just fine - I’d say certainly good enough for use as a cast. Here’s an example: VoronoiSquircle1

I don’t understand your comments about obtaining a smooth Loft. The Voronoi parts I’ve printed have all been reasonably smooth - at least to the extent my printer is capable of making. Perhaps you mean the tolerances used by GH & Rhino. I’m not very familiar with these, but I know you can tweak them by setting the GH Preview Mesh Quality to Document Quality or even your own settings by tweaking Custom Quality.

Arm-voronoi-bb2.gh (46.1 KB)

Thanks. I should probably cut out a cylinder instead like you’re suggesting.

I guess I could better explain what I’m trying to say. What’s the appropriate method to obtain curves from a mesh? Currently, I set up an array of lines, extrude them and then use Mesh | Mesh to find the intersection curves. Then I use Rebuild (deg 3, 25 points) to make the curves smoother. I’m also using Close Curves for any open curves and am filtering out any curves I catch from the thumb.

However, sometimes the resulting loft is always a sort of irregular surface, and when I trim the thumb, the perimeter around the thumb looks jagged (see pic).

I attached what I’m working with. Shitty scan aside on mine, I noticed that a big difference is the distribution of points in Giaco’s curves vs mine. His are distributed more heavily towards one end. I’m trying to replicated that with remapping, but haven’t been super successful yet.
20200201 - 3dp cast loft curves.gh (1.0 MB)

By the way, I tried yours and it worked fine for the voronoi on my set of curves. But I’m still having the issue I mentioned above. Again, thanks for offering all your advice. Really appreciate you taking the time.

I don’t have the Pufferfish add-on so I can’t reproduce the same results that you have, So I am assuming the 27 curves in your crv object (the one just below Parting Line) came from the mesh object at top left.

I’m no expert on how the GH Loft function works, but I can say that the Loft generated from the 27 curves is really ugly. I culled out the first 6 curves (0 - 5) and the resulting Loft looks good. Adding just one more curve (Cull 0 - 4) results in the Loft getting bad at the top. And it just gets worse from there on up.

Typically this sort of thing happens when the Loft control curves are mis-aligned. In other words, when their starting/ending points do not have a nice smooth alignment. But that is not the case with your curves - their start/end points are nicely lined up. So there is something else going on.

Lofting curves 5 - 27 results in a “twisted” Loft, and I think this is due to the fact that curve 5 is the first one that includes what I call a fill-in web between the thumb and the hand. Curve 5 really should be 2 curves, one for the hand and one for the base of the thumb, which is separate.

But it’s not, and this continues for curves 4 - 0. I don’t know why your mesh tries to fill in the space between the thumb and the hand, but I’m guessing that has resulted in some weirdness with curves 5 - 0, and this in turn causes the Loft generated from them to look bad. My sense is you’ll have to fix this (somehow) before you’ll be able to get any proper results.

There’s an old saying in the aerospace industry : “If it looks good, it is good.” Your Loft doesn’t look good, but it needs to.

So I am assuming the 27 curves in your crv object (the one just below Parting Line) came from the mesh object at top left.

Yeah, that’s right.

I got a really bad scan, so I feel that might be part of it. I think for now I’m settling on just starting the loft lower into the hand (similar to what you did with the culling) and not worring about that transition section where the thumb starts.

What would your approach be to generate loft sections out of that mesh? I think I included it in the GH file.

You really can’t accurately do a cast with one surface. It’s a complex form.

I don’t think there’s a way to get a decent loft from your mesh. I tried using the curves in pairs (0, 1),(1,2), (2,3) and that produces twisted lofts. So there is something bad happening (as far as Loft control curves goes) when you generate the curves from the mesh. The curves look ok, but the GH Loft function doesn’t like them. As I said, my experience when this happens has been that the curves were not aligned properly. But something else is happening with your mesh. I can only guess that whatever it is has to do with how your mesh was generated, and how GH creates the curves from meshes in general. Both of these processes are mysterious to me.

I’ve not done any scanning myself, but I wonder if there’s a fundamental problem with scanning that does not allow for separate parts (thumb & hand) to be scanned as separated geometry. That web between the thumb and hand looks very suspicious to me.

What if you took the mesh and loaded it into something like Meshmixer and by hand just eliminated the web and manually fix up the separation between thumbs and hand? Or maybe just eliminate the thumb completely and make a smooth patch where you could manually make a hole after the Voronoi was generated?

In other words, tweak the mesh so before loading it into GH so that GH can make control curves that the GH Loft function likes. If you can make a nice loft you can make a nice Voronoi.

1 Like

I agree you can’t make a single Loft surface from the image you showed - the reason, of course, is the thumb hole. But if that wasn’t there it would be easily made. Think about the shape of the air intakes for a twin engine jet aircraft - that is a loft surface and will typically have a fairly complex shape comprised of totally different star/end shapes as well as a twisty 3D curve along it’s length.

1 Like

Thanks for trying. I thought I was going crazy or that I was doing something terribly wrong.

I didn’t do the scanning myself either. And actually, I did do what you suggested already, and smoothed out the mesh in Meshmixer (though I don’t have a ton of experience with it). I requested another scan from my other team members. I think web has to do with the fact that the person held their fingers together instead of apart. Also, maybe the scanning itself needs better technique. I haven’t done any scanning myself either, though.