Course project documentation
View the Project on GitHub Creative-Motion-Control-Course/Team-Pancho
The aim of this project was to create a custom CNC machine that allows the user to create highly geometric designs for ceramic bisqueware via precise slip-dripping from an extruder mechanism. We accomplished this by modifying a Creality Ender 3, disassembling all parts except for the axes, and connecting it to a Stepdance board. To drip the slip glaze from the extruder, we utilized a syringe and push-down mechanism. Through Stepdance, the user is able to calibrate the device and define the extrusion rate, height of the extruder, and location of the extruder head.
We began by developing our slip formula. Recycled clay was broken down into progressively finer pieces and combined with water to produce a “mother slip,” from which all subsequent slip batches were derived. We tested consistency by manually extruding the slip on a sponge, which successfully resulted in formation of well-defined, cohesive blobs.

Next, we added pigment to our slips, using Cobalt Carbonate (Blue) and Copper Carbonate (Green).
We referenced this recipe: The Ceramics Bible by Louisa Taylor.

Throughout the project, the slip would naturally dry out over time, so we continually adjusted the recipe — adding water or dried slip as needed — to maintain the appropriate consistency.
We removed all unnecessary components from the Ender to maximize the available space for modifying the mechanism. From there, our primary focus was experimenting with different design approaches for extruding slip from the location previously occupied by the extrusion head.
We began by examining the instructional model, studying its features to understand how it could be adapted into a design similar to Constantijn.

We developed a simple CAD design that used a small syringe to extrude slip. Once constructed, however, it became clear that we would need to accommodate a wider range of syringe sizes and implement a more reliable mechanism for pushing the plunger. This was our first iteration of the extruder:

Referencing our previous project using an AxiDraw plotter, we drew inspiration from its screw-in mechanism, which holds a pen or brush in place using a simple twist-and-tighten fitting for XY plotting. We adapted this same screw-in approach for our machine, but replaced the pen holder with a triangular cavity sized to hold a syringe barrel securely in place.
To actuate the syringe, we added a second triangular slot positioned above the screw-mounting plate. This slot holds the end of the plunger in place, allowing it to be pushed downward in a controlled, consistent motion as the mechanism drives it — dispensing the slip effectively.
Since our overall assembly was unnecessarily bulky, we replaced the steel rods with aluminum rods and substituted the original lead screw with a 150 mm lead screw.
Setting aside assembly, fitting, and other minor adjustments, we arrived at a final working design:

The software is built on Stepdance, a custom embedded library developed in this course. Rather than requiring coordinate input or code-level configuration, the system keeps all interaction physical — potentiometers, encoders, and buttons. Under the hood, motion is calculated in polar coordinates and converted to Cartesian internally, mapping onto the geometry of wheel-thrown artifacts.
KinematicsPolarToCartesian polar_kinematics;
polar_kinematics.output_x.map(&channel_a.input_target_position);
polar_kinematics.output_y.map(&channel_b.input_target_position);
This is the conceptual heart of the machine. Rather than commanding XY positions directly, the system processes polar coordinates (angle + radius) and converts to Cartesian internally.
button_d1.set_callback_on_press(&zeroingAxis);
time_based_interpolator.add_move(GLOBAL, 30.0, -214.49, -384.41,0,0,0,0);
One button press zeros the XY axis and moves to a known home position that is aligned with our physical extrude mechanism.
drip_filter.set_ratio(dripRate, TWO_PI);
drip_filter.input.map(&polar_kinematics.input_angle);
drip_filter.output.map(&channel_e.input_target_position);
The glaze extrusion is coupled to the angle of rotation. This means dots are placed based on where the head is in the circle, not how long it’s been running — ensuring even angular spacing regardless of speed variations.
float64_t dripMultiplier = analog_a1.read();
drip_filter.set_ratio(dripRate * dripMultiplier, TWO_PI);
The drip rate is adjustable in real time via a physical potentiometer. This is the key usability feature, and it directly supports our non-CAD-CAM design goal.
encoder_1.output.map(&polar_kinematics.input_radius);
encoder_2.output.map(&channel_z.input_target_position);
The radius and height aren’t typed in, but rather set by physically turning encoders. Again, we utilize a gestural and hands-on approach rather than coordinate-entry.
The full source code for this project can be found here.
After refining how we envisioned user-interaction with our machine, we recognized that the process was more involved than expected and required clearer guidance. To address this, we developed a step-by-step set of instructions for operating the machine. We consulted with classmates to identify any gaps and revised accordingly. The result was the following set of instructions for using SlipDrip.
The resulting artifacts encompassed a range of different slip patterns and different firing stages.
User Interface: the instruction manual is thorough, but this also makes the machine difficult to learn without prior instruction or help.
Slip Consistency: the slip composition changed frequently and was never formulated precisely — it was made by feel rather than a fixed recipe.
Centering: objects were not always perfectly circular, making precise centering impossible at times. Additionally, the center of the bat didn’t always align with the center of the object itself.
Mechanism Accuracy: making the slip extrusion rate a user-adjustable parameter was a necessity, since the slip required constant monitoring for changes in consistency, and it was difficult to know exactly where it was being applied.
Laser Pointer: adding a laser to the extrude mechanism would make it clearer to the user whether the object is centered, and would alse ensure that the drops land where the user actually wants them to.
Refine Mechanism: the mechanism itself needs to be reinforced, as it constantly needed to be checked for retightening and at one point required parts to be reprinted because they no longer worked as well.
UI Elements: small adjustments, such as reversing the potentiometer direction so they turn the same direction could improve the user experience.
Standard ○────○────○────●────○ CustomDoes the machine necessitate a novel mechanism (or mechanisms) in any part of its functionality? Does it adapt existing mechanisms?
Although originally adapted from an ender 3D, it was stripped down to its bare essentials and uses a custom mount and extruder mechanism.
Would someone need to practice with the machine to use it effectively? Or is the interaction relatively controlled and constrained? What element of risk, if any does the machine introduce?
The device is highly specialized, requiring two distinct layers of expertise: a ceramics background (throwing, trimming, and firing the bisqueware that the machine glazes) and hands-on familiarity with the machine itself, since achieving a desired pattern requires developing a feel for how the extrusion rate, radius, and height interact in practice.
Does the machine necessitate a novel mechanism (or mechanisms) in any part of its functionality? Does it adapt existing mechanisms?
The mechanism is adapted from the instructor model; however, the modifications to this model were heavy, and the size changed completely.
What is the relationship between the amount of engineering complexity and the application? How robust is the mechanism and how many cycles of operation is it likely to withstand? What level of prototype is the mechanism? How might it be improved?
We ran multiple cycles and it was able to withstand a lot of wear and tear, so it could feasibly operate; however, this is a minimum viable product, as there is a lot to improve.
How similar is the machine to an automated fabrication technology versus a manual tool?
It most closely resembles a lathe, as it repeats the same motion, only that the potential of that motion is entirely up to the user.
What is the degree of craftsmanship of the artifacts?
The uncentered pieces, the small amount of glassware, and the lack of testing make these artifacts inherently rough, as they were produced on a faster timescale than most ceramics.
Could the artifacts be produced by other means? If so, what would be involved? Does the machine reduce challenges or create new opportunities compared to other workflows for artifact production?
These highly geometric designs can be produced manually with a large amount of time and effort, measuring and slipping with great intention. This machine reduces the time and effort required, allowing for faster iteration compared to a manual workflow.
How much of the artifact is produced through manual means vs automation? Where is the line drawn?
The only step that is automatically produced in our artifact-creation process is the dropping of the slip; the body, slip preparation, and glazing all rely on a human operator.
To what degree is the design of the artifacts determined/specified in advance of material interaction?
The body and more are all defined by the user in advance, but during the specific interaction the user is limited in that they can only make circles. However, the complete control offered through the user interface — the z-axis, extrusion rate, and radius — means that much of the motion is left to the user.