Final Project: Semi-Randomized Path for Clay 3D Printing (MAT238)

by maxmereminsky in Craft > Clay

143 Views, 1 Favorites, 0 Comments

Final Project: Semi-Randomized Path for Clay 3D Printing (MAT238)

IMG_1139.jpg
IMG_1132.jpg
unnamed.png

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

Screenshot 2024-06-11 183044.png

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

FDRLXXGLXAEX9JP.png

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

Screenshot 2024-05-26 033608.png
Screenshot 2024-06-11 183112.png

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

IMG_1031.jpg
Screenshot 2024-06-11 165556.png

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

IMG_1042.jpg

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

Screenshot 2024-06-11 183144.png

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

Screenshot 2024-06-11 183213.png
IMG_1107(1).JPG

The final vase has an 80mm diameter and a 200mm height. The print was successful and took 40 minutes.

Glazing & Conclusion

IMG_1133.jpg
IMG_1134.jpg
FK8VEGULXAEWOHZ.jpg

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.