Best Way to Build Solid Strips from Lines

Is it possible to create a solid section by converting lines into strips in Grasshopper?

I’m working on a tree-like structural component and I have a series of lines that I’d like to convert into strips to form a solid section — ideally something that resembles a Voronoi pattern in cross-section.

The idea is to use timber strips, so the final geometry should be a buildable solid rather than just curves or surfaces. I’ve tried using Loft and Sweep, but then I’m not sure how to combine all the strips into a single solid, since Solid Union or Solid Difference only works with closed breps or meshes. I was also thinking on inflating mesh pipes until they collapse with the others but I think its a bit heavy.

Has anyone done something similar or has an idea on how to approach this? I’d really appreciate suggestions — even better if it’s something that could work well for fabrication!


STRIPS.gh (359.3 KB)

The idea that this could be built of wood strikes me as absurd.

These are all closed breps but SUnion (with flattened input) fails.
I used Loft because Sweep1 failed.


STRIPS_2025Jun12a.gh (363.4 KB)

P.S. Using Rectangle instead of Polygon, one curve fails,


STRIPS_2025Jun12b.gh (362.8 KB)

Dude, if it were as easy as just sweeping, I would’ve done it already.
The real challenge is how to create a Voronoi-type section that follows the lines. The Voronoi cells in the section should get larger or smaller to make that possible—like in this image.

The question is: computationally, how can that be modeled?

:rofl:
Sweep failed so I used loft instead.

Do tell? Your goal is not clear to me at all.


STRIPS_2025Jun13a.gh (366.7 KB)

With SDF, Isopod, you can generate a field from a curve and subtract it with the fields of all other curves, the result is a shape that is voronoi-ish in each section (but the logic behind is not working on planar sections).
But you have to repeat this process for all elements, and it’s heavy, slow.


voronoi solid strips from curves.gh (17.0 KB)

2 Likes

We could indeed define Voronoi regions for curves implicitly, but I think there would be quicker ways of doing this than doing the difference with the union of all other items for each item in the list.
Ideally we would want to define a single field, something like the difference between the distance to the closest curve and the distance to the second closest. There are a few more subtleties than this, but the key idea is that the regions towards the interior of Voronoi regions have a clear unique closest object(which could be a point, curve, etc), while the the regions near the boundaries of Voronoi cells have multiple objects a similar distance away.

Inigo has a page about this Inigo Quilez :: computer graphics, mathematics, shaders, fractals, demoscene and more

That said, for this specific question, I think a simpler way might still be explicitly calculating planar Voronoi cells for slices as polylines and lofting these (with some adjustment to make sure the correct cells are matched between layers, and the changing number of sided between layers is handled)

2 Likes

that made me recall this:

pretty easy and direct to create planar voronoi cells and trim data tree from the left or from the right to isolate single branches… but making solids out of those sections will be a nightmare (varying amounts of straight lines + arcs for each section…)

STRIPS_inno.gh (376.0 KB)

I’m posting the file now, before playing a bit with shrinkwrap: I might not have a PC anymore after that :smiley: (lately shrinkwrap crashed my Rhino like 95% of the times…)

3 Likes

I am amazed at the effect of using the ‘Radius’ input (‘R’) of Voronoi :bangbang: Up to that point, our GH is very similar, but adding cell radius and tricky manipulation of the data tree after that is cool! :+1:

I still don’t see how this can be built of wood, but learned something.

2 Likes

Daniel, your knowledge is always priceless and fun!
Thanks!


Curves/Pipes voronoi SDF!



voronoi solid strips from curves 2.gh (81.3 KB)

Heavy!
Should be trivial edit this to make it work with other kinds of geometries…


(I wanted to participate at the workshop/conference these days in italy, but I’m unable to… hopefully next time!)

5 Likes