ADM – Abstract Drawing Machine – is a vertical XY plotter that uses a dual stepper motor-controlled pulley system to drag a drawing utensil across a surface. This particular drawing machine has different modes in which it can be both an interactive art piece where people can play and affect the outcome, and it can also be a standalone art installation. The idea of ADM stemmed from something I mentioned in my entry statement nearly two years ago – this idea of an interactive visualization where anyone can create their own piece of art. ADM is a self-indulgent project that not only focused on the end product of a functioning drawing machine, but the journey of building, experimenting, and playing that has (so far) spanned these last two semesters. ADM's two current interactive functions are – (1) inviting users to leave a mark on the canvas by guiding ADM to draw out words, and (2) encouraging people to explore the follow-me mode that tracks a single person’s path directly in front of the canvas. When play-testing one of my very first projects here at ITP, I witnessed a wonderful moment of my classmates playing with my Arduino-driven version of making music with spoons and glasses of water – their reactions of excitement and joy when discovering and playing with this piece were something I have held dear to me over these last four semesters and is something I strove to make a part of my thesis project. Through ADM, I want people to be curious, play, discover, and enjoy watching this little robot make some art.
My initial research began with simply looking into drawing machines that already existed. I came across many CNC-type plotters, such as the AxiDraw, as well as other unique forms of drawing machines done by people like Fernando Orellana, Jamie Newton, or Max Mertens. However, I had a very clear vision of this being in a vertical form with a hanging pulley system – which eventually led my research to the machines made by Harvey Moon and Jürg Lehni. From there, I needed to figure out the main communication component of this machine – was I going to learn G-code? Was there a library out there that already existed? In this search through the interwebs, I found most of the Arduino libraries made by people were meant for drawing machines in a tabletop CNC form and I was very reluctant to teach myself G-code. So from there, I began the journey of creating the ADM Arduino Library, a streamlined library that utilizes the AccelStepper library and consists of custom functions and drawing modes. This is where my research took a turn, and I went down several rabbit holes of researching different mathematical functions, algorithms, patterns – anything I came across or resources many classmates and friends sent my way that made me think – I wonder what this would look like if I plugged it into ADM? And from here is where the long and ongoing journey of experimenting, playing, and asking myself, I wonder what this does…? This is something I hope people ask themselves and are curious about when interacting with ADM.
The hardware used consists of an Arduino Nano 33 IoT, two Adafruit TB6612 stepper motor drivers, two stepper motors, a timing belt with hanging weights, a custom-built pen carriage with interchangeable cartridges, a Kinect V2, a custom frame built from extruded aluminum, and two gantry kits. As for software, I used the AccelStepper Arduino library as well as a custom ADM Library that streamlines AccelStepper and has its own custom modes and functions, p5.js, OpenFrameworks, and Vectorworks.