“Superformula” print series using DIY wall plotter

Posted on June 3, 2012 in Art, Code, Hardware, Portfolio

A few months ago I began working on a wall plotter drawing machine as part of an independent study in my graduate program at UNK. The goal was to not only create the machine, but to also use it to produce some artistic prints, and eventually even install it in public on campus. Fast forward a few months, and I still had not completed a functional wall plotter! I spent many, many hours in frustration as my plotter misbehaved and eluded my best efforts to troubleshoot it. I finally realized a major design flaw in my plotter, which allowed me to start making progress in leaps and bounds, progress that is still going on today! However, a wall plotter is, at the end of the day, a tool, and tools are meant to be used and explored by the user. For this reason, I chose to develop a piece of software that explores the wonderfully powerful superformula and exports forms that I can plot directly using my new drawing machine.

About the wall plotter

During the Spring 2012 semester of my grad studies at UNK, I spent a lot of time and effort researching, designing and tinkering with ideas for a simple wall plotter based on various designs I’d seen around the web, most notable of which being Tinkerlog‘s Der Kritzler and Sandy Noble‘s Polargraph. I noticed that they all followed a single fundamental design of suspending a pen between two stepper motors using either string or timing belt.

Initially, I tried to create mine as cheaply as possible, using strings and sewing machine bobbins, but after a few weeks of frustration, I realized it just wasn’t worth it to try to make them work. I switched to timing belts and pulleys and noticed an immediate change – the beast of the wall plotter had been tamed.

All throughout this process of tinkering, I produced a series of articles about what I was trying out, problems that were occurring, and my thoughts on how to proceed. I hope that my obsessive documentation will help someone in the future avoid some of the pitfalls I encountered along the way 🙂

About the superformula

Developed in 2003 by Johan Gielis, the superformula is an abstraction of another formula created way back in the 19th century called the superellipse. As Gielis notes, the forms that the superformula is capable of producing are very organic in nature, suggesting that similar mathematical processes occur in natural artifacts that we associate with aesthetic beauty: shells, leaves, starfish, crystal structures and much more.

It’s seemingly endless range of output is astonishing, to say the least, and still surprises me with new forms and combinations everyday! Ranging from stark minimalism to crippling complexity, nearly every form I’ve seen conjures up associations with organic phenomena – so much so, that I’ve begun thinking of these resulting forms as mathematical Rorschach tests. These pieces are especially entertaining when viewed by groups of people, with competing interpretations and associations.

Realizing the superformula in code

In order to draw a form, my wall plotter requires that the form be in a vector file format (SVG), which is to say a set of points and lines between those points that make up the overall shape desired. I opened up my favorite computational art framework, Processing, and got to work. Implementing the superformula is a somewhat trivial process, and has been done by many, many others before me. I actually chose to base my code on the implementation shared by Form+Code, which can drawn not one just one shape, but several iterations with very similar parameters.

After implementing the superformula, one must pick appropriate values for the formula’s various parameters. Because the range of possible forms is so large, the combinations of values for these parameters is staggering, but is nonetheless almost guaranteed to produce something aesthetically interesting.

There are six parameters for the superformula, each of which have a distinct influence over the final form produced by the formula. To explore these parameters and their resulting forms, I felt it was best to utilize random numbers wherever possible. I constantly tweak the limits of these random functions and find new, unexpected forms every day! A key takeaway idea from this series for me is the value of experimentation. At first, I didn’t quite feel like I understood how the superformula came up with forms. By isolating parameters, tweaking their ranges and evaluating the resulting forms, I’ve gained a much more intimate intuitive understanding of how this formula works, which to me is just as valuable as the tangible artifacts I’ve produced.

I encourage you to download the source code for yourself and play with the parameters and see what happens!

Photos of prints

Sorry for the quality of these photos – I don’t have a good set up for photographing paper! I’ll get better at this in the future, but for now, this is about as good as I can do 🙂