I chose to work on an algorithm I have been developing over the summer in Leah’s lab – fermat spiraling. Fermat spiraling is a space-filling algorithm that works by taking the contours of the shape (smaller and smaller equidistantly spaced curves from the first curve), spiraling them, and then connecting them again so that the path spirals in to the center, then spirals back out. This results in a single travel path
If the shape is more complex and has “holes”, the algorithm first connects the holes to the outermost contour, then follows the same method of finding the equidistant contours, spiraling them, then fermat spiraling them. Two of the pieces I chose were more complex, with holes on the inside that needed to be connected.
I chose four shapes, the UNM logo, gears, a heart, and a duck, and turned them into curves in rhino. I then used my algorithm to fermat-spiral each of them once, then printed each spiraled shape up to a layer height of 10 before moving onto the next piece, resulting in one single travel path between each of the pieces rather than multiple back and forth for each layer:
The code cannot be generated by a traditional slicer because it prints each object individually before moving on to the next contour stack. As you can see in the image above, there were very few travel paths. Unfortunately, this can also result in collisions if careful planning is not present: the nozzle dragged through the gear in the upper right corner before continuing to the next piece, melting it. The better toolpath would have traveled at the same z-height before dropping down to the first layer in order to avoid dragging through printed pieces.
I spaced the contours wider than the ender’s extrusion width intentionally in order to see the path more clearly. I was inspired by a piece that was brought in to class last week that had another space-filling algorithm with a single travel path and could be pulled apart. My original intention was to do the same, and have the shapes be able to be pulled apart in order to observe the single path. Unfortunately, I didn’t space the extrusion wide enough, which resulted in the bottom layer fusing. However, the path is still very clear.
Hi Jaime, this is such a cool concept and it was nice to see what you were talking about last week in Leah’s lab. Thank you for sharing such interesting computational applications! It also kind of reminds me of how people in examples we’ve seen in class would print really large things in a smaller printer and unfold it later. I wonder if this could have somewhat similar applications. I just love the idea of pulling it apart!
I love how this turned out! I wonder how packing shapes within shapes with this algorithm would look–like a recursive packing method.
Hi Jamie, I though your work was so incredibly simple, yet so computationally complex that I would have never guessed how challenging it is to create those paths.
Thank you so much for sharing your knowledge of those paths and how they are created using the algorithm.
Hello Jamie, your designs are super cool. It’s great that you were able to related this project back to something you were already working on. All I could think of as soon as you said pull them apart was of custom slinky toys even though that would not have quite the same form.
Hey Jaime, the precision of your fermat spiraling technique is fascinating, particularly in how it manages the contours with internal voids. It’s interesting to see such an algorithm in action. While I toyed with the idea of using a fermat spiral for a vessel, I opted out, yet it’s amazing to see how you integrated it into your project. Great work!