Final Project: Semi-Randomized Path for Clay 3D Printing (MAT238)
by maxmereminsky in Craft > Clay
322 Views, 3 Favorites, 0 Comments
Final Project: Semi-Randomized Path for Clay 3D Printing (MAT238)



For this project, I wanted to develop an algorithm to generate a randomized path for a clay 3D printer to follow. I thought this project was interesting because downward moves are generally avoided for 3D printing to prevent tool-head collision with the part, but I wanted to challenge this rule of thumb. I had the path traverse a set of points in a cylinder, and I used this to make a vase.
Supplies
- Rhino
- MATLAB
- Potterbot
- Glaze
Cylinder Points Setup

In Grasshopper, I created a cylinder and subdivided it to generate the points. I initially tried to write the pathfinding algorithm in Python within Grasshopper, but I am more comfortable using MATLAB. To accommodate this, I streamed the contents of the cylinder points to a CSV file that MATLAB would reference.
Initial Path Rules

I sketched out what the path could look like in 2D and came up with the following rules:
- Must be one continuous path
- There cannot be more than 3 semi-completed layers along the z-axis (3 is a guess)
- The next point must already have clay (or the build plate) beneath it
The 3 semi-completed layer rule ensures that unfilled points towards the bottom of the print aren't left behind and that the nozzle won't plunge into the print.
MATLAB Implementation
The MATLAB code imports the CSV of cylindrical points, rearranges the points according to the rules I define, and outputs the path as a CSV which is imported back into Grasshopper.
First Path & Visualization


The initial rules produced the path as seen in the image on the left. I visualized the path in Grasshopper by sweeping a circle along the path.
This was a poorly defined set of rules because the path would typically fail within the first 3 layers due to the limit of 3 semi-completed layers. I had to generate many paths to find one that completed the cylinder.
Path Rules II
At this point, I met with Emma to brainstorm how to improve the rules for 3D printing, and we determined that the path should start off with a few planar layers before starting the randomized path to establish good print bed adhesion at the beginning of the print. She also suggested to implement continuous layers above the randomized layers if I couldn't generate a complete path. I implemented this later.
The new rules are as follows:
- Must be one continuous path
- There cannot be more than 3 semi-completed layers along the z-axis
- The next point must already have clay (or the build plate) beneath it
- No vertically upward moves
- First 5 layers are continuous
The restriction of vertically upward moves helps keep the path moving along the cylinder rather than failing quickly. This did help, but the path still failed pretty early.
Print 1


I converted the path from a CSV file to GCode for the Potterbot within Grasshopper and ran the print. The feedrate was too fast on the first print, so I slowed it down to 0.5x speed, and this produced a useful result. There weren't enough layers of the randomized path to see what the path would look like in clay, so my next step was improving the length of the randomized path.
Rules III
New rules:
- Must be one continuous path
There cannot be more than 3 semi-completed layers along the z-axis- The next point must already have clay (or the build plate) beneath it
- No vertically upward moves
- First 5 layers are continuous
- Move diagonally downward whenever possible
The 3 semi-completed layer restriction was the limiting factor in the path length, and I noticed there was enough clearance with the nozzle to move diagonally downward more than 3 layers. With these observations, I redefined that rule so that the path would move diagonally downward whenever it had the option to. This allowed for mostly complete paths that only failed at the top of the cylinder.
Print 2

This print was a great proof of concept, it successfully printed the complete path. It looks much more organic than I imagined, almost woven. With the success of this print, I decided I wanted to make a vase with this technique which required adding a base and implementing a continuous path on the top to make it look finished.
Print 3

I implemented the base and top path to the MATLAB code and made a small test print. The test print was successful and gave me confidence to move forward with the large vase
Print 4

.JPG)
The final vase has an 80mm diameter and a 200mm height. The print was successful and took 40 minutes.
Glazing & Conclusion



I applied colored underglaze and transparent glaze to my prints. The prints were porous before the glaze, but the glaze filled in the cracks and they are watertight now. I'm very happy with how this project turned out. It's hard to tell how the randomized path portion of the vase was made (it doesn't look 3d printed, but seems tedious to do by hand) which is my favorite part of this piece.