By Jim Plaxco, 6/17/2016
It should be no surprise that ideas, like life, evolve over time. What can be surprising is how your own idea evolves and can take you places you didn't foresee. The story of this idea began while sitting in the Minneapolis airport waiting to come home from the Eyeo Festival. Somewhat bizarrely I owe some thanks to the TSA for making me arrive at the airport extra early since it was during this waiting for the plane that I hit upon this idea. The seed for this idea was my having spent some time photographing the skyscrapers and buildings of downtown Minneapolis. At the heart was the notion of rectangles within rectangles. This subdivision of rectangles is conceptually related to a process known as circle packing - an algorithmic approach to filling a defined space with circles of various sizes. Two examples of my artwork that employ an interactive circle packing approach are Caillebotte Circles and Colored Circles Geometric Pattern
Not wanting to take any chances on forgetting what I was thinking, I pulled out my notebook and began to sketch out how the rectangular subdivision process would work - as well as writing out a pseudocode implementation of the process. By the time I boarded the plane I had the basic idea and program structure fairly well developed
Upon arriving home, I set aside time that evening to start coding up the program in a process of coding, testing, and tweaking. Once I became comfortable with how the program was working, I set out to explore what I could create with it. The only artwork I have publicly released using this initial version of the program is Data Tidal Wave (clicking on the image below will take you to the Redbubble product page for this artwork).
I modeled this artwork on The Great Wave off Kanagawa, a woodblock print by Japanese artist Hokusai published circa 1830. The title of the piece is a reference to the vast quantities of data that are collected, managed, analyzed, stored, shared, and deleted in our digital world.
In one of the sessions at Eyeo (I don't recall which session), the speaker (I don't recall who) showed a slide that simply said "Iterate, Iterate, Iterate." I totally agreed with this point as it is the process I follow in developing new ideas and graphics programs. Having just created a program that met my initial expectations, I asked myself the question "What can I change or add to make this program more powerful and artistically interesting?" For iteration one, I hit upon the idea of extending the program to 3D by adding the ability to draw 3D objects.
An example of the output produced by this version of the program is It's More Fun to Compute shown below. The title for this artwork just popped into my head upon viewing the completed work and is the title of a song from Kraftwerk's Computer World album (Yes, I frequently listen to Kraftwerk while coding).
Continuing to explore (and iterate), my next upgrade to the program was to change the fixed position camera I was using to capture the scene to a camera with mobility. I did this by adding camera control parameters that were driven by a combination of mouse movement and keyboard inputs. Being able to dynamically reposition the camera allowed me to explore different scene geometries. Below is the very first test output produced by this version of the program.
The area shown was supposed to be outside the camera's field of view. This error was a consequence of my not properly transferring the camera's screen viewport parameters to the output function. Unlike some other programming errors (all of which were my fault), this error was simple to correct because I instangly knew what I had simply forgotten to do.
One of the artworks created using the movable camera version is the piece A Push Button Universe. The title is a reference to the simulation hypothesis. This concept, long a popular theme within the science fiction world, proposes that our reality is actually a simulation and we are all simply actors/agents in that simulation.
The next evolutionary step in my creative coding process represented a fairly large step in terms of challenging my computer's CPU. Whereas the previous versions operated in what I will term a snap-shot mode, the final version operated in a quasi-movie or multiple exposure mode.
An example of an artwork created using this version of the program is Android Vision. The concept behind this artwork is the question of how an artificial intelligence will perceive itself or others.
And this is where things stand as I write this. Whether or not I will continue to pursue this line of creative coding and art production is an unanswered question at the moment. For my artistic endeavors, it's not just the creation of the actual artwork but also the creation of the tools I use that excites me.