Intro
I’m fascinated by the interplay of repetition, shape and pattern. Much of my artwork explores unexpected combinations of these elements. I conceived of this project, Iterāns (which means to repeat) early one morning while lying awake and letting my mind wander. I had recently read How to Make Repeat Patterns by Paul Jackson and was amazed by both the simplicity and complexity present in the realm of patterns. 
I began to wonder how I could build on this idea. In contrast to the landscape of repeating patterns, what might a non-repeating pattern look like? Could I create something that was ordered, structured and repetitive, without it actually repeating? What would happen if I pushed repetition to the extreme while making subtle adjustments to shape and rhythm?
I started by sketching a few squares, circles and lines grouped within different structures. I then asked myself how I could scale this up to hundreds or thousands of these assemblies? I choose the Processing programming language to generate the design and subsequent creation of each pattern. Processing makes programming accessible to artists, designers and others with a focus on visual projects.
Fig 1. Exploratory sketches for a non-repeating set of pictograms
A Beginning: The cellMap
Looking at my initial sketches gave me the idea for the underlying grid structure that I use as the basis for each work. The sketches could be broken down into a set of cells, some larger and some smaller. This led me to develop a set of grids that are 3 units (cells) wide by 3 units tall. Individual cells can be combined within the cellMap so that a group of four or nine can be merged into a larger square within each.
Cells are assigned sizes according to a stream of random numbers between 1 and 3. In order to create variation and rhythm the numbers are weighted to fit a gaussian distribution with a standard deviation of 0.5 and a mean of 2.
Fig 2. Distribution and sample of seed numbers which are generated to determine cell size
The number ‘1’ defines a single grid cell at the smallest unit size of 1 x 1. A ‘2’ causes two horizontal cells and two vertical cells to be joined to create a 2 x 2 sized cell and a ‘3’ combines all nine cells into a single 3 x 3 sized cell.​​​​​​​ These can be arranged in six possible layouts within the 3 x 3 grids.
Fig 3. Possible cellMap layouts based on cell sizes within 3 x 3 grid
Now to Add Shapes
The cellMaps are just the beginning. Each piece is populated with an assortment of shapes. I started with simple geometric shapes: rectangles, ellipses, lines and triangles. Later I added the ability to use more complicated geometric or organic forms. These can be combined again and again for surprising results.
Shapes are placed into the cells and scaled to fit the amount of space available, creating a dynamic scale throughout the grid. Because the numbers aren’t evenly distributed (there’s a bias toward 2’s) there are many more cells that contain a 2 x 2 grid than a 1 x 1 or 3 x 3 — a design that balances the rigidity of cellMaps with a fluid layout of sizes throughout. 
I can also choose to vary each shape’s rotation, scale, aspect ratio and offset from the standard grid. Shapes can be filled and/or outlined with custom palettes that are selected for each piece.
Repetition: The gridRepeator
A single cellMap may be interesting, but this work is focused on the exploration of repetition and scale. CellMaps are duplicated and iterated for variation on an underlying 2D grid. These grids provide an ordered structure on which malleable cellMaps and shapes are placed. The number of rows and columns can be varied as well as the overall grid scale and spacing. Furthermore, multiple grids can be layered each with its own set of cellMaps, shapes and colors to create a truly endless set of designs.
By combining all of these elements I am able to assemble novel patterns from a concise set of rules. Some pieces are very simple and geometric consisting of just a few lines or circles arranged across the default grid. Other pieces become a swirling maelstrom of shapes and colors that veil the underlying geometry and grid structure entirely. Viewers may be drawn into a calm and contemplative layout or be confronted with a dizzying visual that demands attention.​​​​​​​
The Tool
All of this could be accomplished manually with a piece of paper, pencil and ruler, however I am looking for scale and quantity. By facilitating rapid iteration I set myself on an endless journey with many unexpected turns. A key part of this process is the development of the enabling software tool of which I have arguably spent more time developing than I have using it. I consider this a critical and underlying part of my process.
Each piece is outputted in both a .png and a .svg format. SVGs are custom written directly from the code in order to maintain full control over layout and ensure desired results. I also save the parameters of each piece which are the instructions for generating it. These include the grid size, number of rows and columns, sets of shapes and colors and many other settings. Each time these parameters are run, a unique randomized work is produced from the same recipe. All Iterāns pieces are time stamped lending to a continuous history and documentation of their creation. 
The code base has continuously evolved to add new features and options throughout the body of this work. Anything that lets me expand on creative output is tested and tried. Cycles of artistic creation and software development have alternated, each one inspiring the other and leading me on novel and unexpected paths.
Back to Top