Ambient Recursion Algorithmic Art
What could be the first in a series of algorithmic artworks, Ambient Recursion was created using a programming technique known as recursion. Note that the image above has been cropped to fit the screen. To see the complete artwork, click on the cropped image above. A new window will open revealing the complete artwork. Note that a full size excerpt from the center of the artwork is displayed at the bottom of this post. Once you've viewed the uncropped image, it will be clear that while the artwork is strongly symmetrical, it is not perfectly symmetrical. I find that by avoiding perfect symmetry, the image becomes more interesting and aesthetically pleasing.
The programming language I used for this work was the Processing programming language. The most challenging part of writing this Processing program was in getting the recursion to perform as I wanted it to – especially with respect to screen boundary conditions.
Because I used a random factor to determine which sub-functions would be called, which in turn influenced the depth of recursion, I found that much of the drawing was being done off-screen – or so I guessed when viewing the program's output. To get a handle on just where the drawing was happening, I replaced the drawing commands with print commands that dumped out the x,y coordinates and other supporting parameters for every shape being drawn.
This problem solving tactic proved to be most useful as it led me to reevaluate the entire drawing process. If I could dump the coordinates and associated parameters of every shape to a print file, why not write them to a Java arrayList and then draw using the data stored in the list. While the principal benefit of this approach was in insuring that every rectangle would appear within the canvas, it also provided me with the opportunity and ability to manipulate the relationships between the shapes. This was a true case of serendipity.
The second most challenging aspect was in coming up with a title. Given the nature of the image and the fact that I was listening to a collection of ambient music by Brian Eno while developing and writing the program used to create this artwork, the title Ambient Recursion was a natural choice.
While I have not yet added Ambient Recursion to my gallery of artworks here on Artsnova, I have made it available on Redbubble.
A full size excerpt from the center of the artwork.
Using the definition from Geeks for Geeks, recursion is:
The process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called as recursive function. Using recursive algorithm, certain problems can be solved quite easily. Examples of such problems are Towers of Hanoi (TOH), Inorder/Preorder/Postorder Tree Traversals, DFS of Graph, etc.
For more about recursion, see the Wikipedia definition for Recursion (computer science)
To iterate is human, to recurse divine.
L. Peter Deutsch