"spiralize" offset curves for fabrication

@laurent_delrieu i did with online tool it reduced your 3.93mb file to 970.79 kb
com-optimize but if you’re curious to do within the grasshopper this is not the one you’re looking for.

1 Like

I use Daniel Piker one which seem to use a free library

an old version of camtasia studio 3. I have not found built in .NET component which i could access in ironpython to build the gif myself.


1 Like

https://ezgif.com/optimize/ezgif-1-5a284da62e48.gif @laurent_delrieu it is very simple you can use this. In optimization method just select reduce every 4th frame


Is possible to share the definition

No problem it is very similar to what I proposed in the other discussion.
First put the curves
Choose the number of spheres (1000 seems OK, 4000 points on my PC gives 5 min of calculations)
Toggle Kangaroo to TRUE, adapt the diameter if needed. If OK toggle to FALSE.

Choose an attractor point
Now you can open the DAM
Adapt the Graph Mapper in order to tweak the shape of the curve. As there is no dam double click on Graph Mapper to modify it.

You will need Kangaroo, Clipper, ShortestWalk. Human is not mandatory just to draw the lines so it is cool for the animation.

spiralize path Laurent Delrieu.gh (47.4 KB)


Wow! How did you generate that? I have been looking to make some similar spiral art with my DIY pen plotter for a long time!

Look above there is a link to a publication


Thanks for your reply. Sadly I think this will not work on my Mac version…

This is an interesting subject for me, so I have spent some time working off of the paper 'Connected Fermat Spirals for layered Fabrication", presented at SIggraph 2016. This approach breaks down into three pats: a) a spiralizing routine, b) a node network for deciding what sequence to connect the spirals in, and c) connecting the spirals. I have taken the approach of variable offsetting the line width, rather than assuming a constant distance.
10 days later, I have a fairly robust algorithm for the spiralizing; next I need to decipher how to address node analysis and then sequencing of ‘connecting the dots’ I mean spirals. the reason i am taking this approach, building on laurent’s and other’s work, is that I want the end resulting spirals to closely suggest the original geometry .
It is a deceptively simple problem, no wonder it took 10 post docs in computer science from 5 universities in 3 countries to do this.

The stair step effect can be relocated easily around the spiral, I move it to the larger side of the curve set for this image, it is easier to see than if on the area of more compact spacing.
Next, figuring out how to sequence the order of connecting spiral in a complex design

Hi @clement the link of the paper doesn’t work, could you upload it again, please.
Another approach from Andrea Graziano single curve offset.

HI @ThomasE, here is the page: link


thanks @clement awesome, any chance to share a part of your file, as an example to study and understand the contour tree graph, thanks!

Could you update remove duplicate lines component to kangaroo 2 version or show where to put it?

Hi @ThomasE, sorry there is no tree graph, it was entirely written as python script so there is no GH involved. I actually did not read the paper fully (i am not a math geek) so i only looked at the images. You’ll definitely want to use Clipper to make the offsets and keep track of the offset levels, then connect them…

spiralize path Laurent Delrieu.gh (44.5 KB)



Hi @arch.a.graziano any advice to achieve that result?


I was looking at this >> https://homes.cs.washington.edu/~haisen/CFS/index.html#:~:text=A%20new%20kind%20of%20“space,fill%20patten%20for%20layered%20fabrication. but I didn’t had time to develope it properly

1 Like

Coming back to an older topic for me, worked on this last year, came up with a fairly robust algorithm to ‘spiralize’ each part of a region, but stalled out trying to interconnect each spiralized region, I attempted node analysis, but was not successful. Interested if anyone lese has worked on this in the last few months.