My fascination with machines and computers goes way back. To this day, I still remember my childhood realization that a few lines of code can make a CPU process thousands of calculations a second to perform a task.
Much later, I got to see the poetry in all of this. Under certain conditions, machines can produce art (I did not say create—that’s another conversation).
More recently, I’ve been curious about plotters—the AxiDraw V3 being a good example. They are simple machines: a mechanical arm holds a pen and follows a precise trajectory to draw. The programming it takes, and the resulting art are fascinating.
I decided to make one at home, with what I had in terms of supplies, but also time. I drew a quick sketch on a Sunday afternoon, and a few days later, I started.
It took me:
to build a prototype.
Arduino sketches (programs) are written in C++. The two servos needed to move at the same time, so I relied on a for loop that increments two variables.
The polar coordinates are generated randomly and stored in two arrays.
It takes less than 20 lines of code to get the robot to draw.
I decided to use random coordinates instead of trying to plot them for two reasons:
I ended up tweaking the arrays a bit when a drawing is not interesting.
Since I’ve programmed the drawing sequence as a loop, I had to come up with some rules to decide when to stop the robot.
I decided to let the robot run for longer (an hour) if I felt that the drawing would look better with a lot of lines. Others would have lost their character, and I stopped them after a few cycles (~20 or 30).
I’ve enjoyed this process because it takes me from the idea of perfection and repeatability (the code) to imperfection and noise.
Because the servos are not robust or precise, and because of how loose the overall structure is, the lines are never superimposed. The robot drifts a bit more at every iteration, and although the code does not change, gaps appear. Some lead to gradients, other to patterns.
To stress this contrast, I print the code next to every drawing. The code can be copied. The drawing is unique.
I send a bi-monthly newsletter. If you’ve enjoyed learning about this project, I think you’ll be inspired to make stuff.
Which is also the name of my newsletter!