proof of concept plotter
Before committing to a full-scale vertical plotter with a wooden frame, I built a proof-of-concept version using materials I had at home to test my code and refine the movement logic. For the base, I repurposed a canvas board and attempted to secure the stepper motors at the corners with double-sided tape, but they kept falling off. I reinforced them with duct tape, which provided enough stability for testing. Using a simple Arduino sketch generated with ChatGPT, I programmed the motors to move a brush to specified coordinates. The program, built with the AccelStepper library, allowed me to define the board’s dimensions and calculate the necessary rotations for both the X and Y axes. After some adjustments, I successfully tested movement by inputting random coordinates, confirming that the motors responded correctly.
The next step was establishing a serial port connection between the Arduino and a hand-tracking system using ml5.js and p5.js. This would allow real-time transmission of keypoint coordinates from a webcam, enabling the plotter to follow hand movements dynamically. By integrating computer vision with hardware control, I aimed to create an interactive system where gestures could directly influence the brush’s motion, merging digital tracking with physical drawing.
Reflections
Last Thursday, we did a full walkthrough of our table setups for the final submission from last semester. We kicked things off with Soda’s setup, where Andreas walked us through her assessment, pointing out key takeaways and positive aspects we could learn from. One thing that stood out to me was how effectively she displayed her entire process—not just the final prototype but also three earlier prototypes and multiple experiments. This approach gave her work a clear narrative, making it easier for viewers to grasp the evolution of her ideas. Looking at her setup, I realized I could have done something similar. By displaying older experiments alongside my final piece, I could have provided more context, helping people better understand the thought process behind my project.
When it came to my own setup, the main feedback was that it wasn’t self-explanatory—my second marker struggled to interpret it, which made sense, especially since my CPJ (Critical Project Journal) was incomplete. I explained to Andreas that my prototype aimed to create a feedback loop mechanism where hand keypoints were sent to Gemini, which would then respond by generating a set of blue hands that dynamically moved in relation to our own, essentially "dancing" with us. While Andreas acknowledged that my technical execution was strong, he pointed out that my submission ultimately fell short in presentation and communication. My setup and explanations were too brief, making it difficult for others to fully grasp my concept. Looking back, I see how much better I could have framed my project—next time, I’ll make sure my presentation does justice to the work I put in!