*“History doesn’t repeat itself, but it often rhymes.” - Mark Twain*
In our day-to-day lives, it’s natural for us to fix a conceptual view of the people, places, and things around us in our minds. We might think, “that is the tree outside my window. This is my house. That’s my friend. I’m me.” In fact, this type of abstraction is necessary for us to make any sort of sense of our world. But is the tree outside your window today truly the same tree as it was yesterday? Are you exactly the same person as you were yesterday? Or twenty years ago? In a sense, the abstraction is an illusion. Our physical reality is inseparable from the flow of time; everything is changing, all the time. Sometimes the changes are fast, and sometimes they’re imperceptible — but time never stops. Change never stops.
__*because unless until*__ represents this concept in art, as a generative system of systems where each output changes over time. New days present new views of the algorithm, where a variety of mathematical shapes gradually and endlessly shift, demonstrating a more local and immediate form of change. Even so, each day’s appearance has enough in common with the one before it to provide the output with a continuous sense of identity. With the arrival of each day, what about the art has changed -- and what remains the same?
Changing Over Time
-
One of my favorite aspects of generative art is the joy of discovery when viewing a new output for the first time. I also enjoy the novelty that comes with watching a chaotic system evolve over time. But, once you’ve seen a particular output from a long-form generative art collection, you’ve seen it. My intent, with the time-based mechanics in this algorithm, is to preserve that feeling of discovery so that every viewing and every day brings something new.
In __*because unless until*__ colors are applied differently depending on the day of the week. The detail level of the animation changes over the course of a month, providing a different visual balance between the shapes, and the textures that fill them. Each month, the animation’s shapes are altered. The weave of these different cycles mean that each day has its own characteristics. It would take at least seven years to see every available combination.
Some outputs come with “Daily Modes” tied to a specific day of the week, where colors and textures are altered in a particular way. Each output also comes with a "Fiesta Day" -- one day of the year where it shows a set of new behaviors. One day in December is designated as “Glitchmas” — a holiday shared across all outputs with another unique behavior. Glitchmas falls on a different day each year.
Animation
-
The algorithm works by layering multiple animations, whose intersections are used to divide the canvas into regions that determine the palettes and rules for a section of the output. The rules are applied to an underlying field of cellular automata, which change state accordingly. At the core of the project is a generic framework that runs arbitrary animations in their own threads. The threading enables performant, fluid motion (I find it sensuous -- I often find myself thinking "I want to run my fingers through it.). Threads run asynchronously, which in combination with the chaotic behavior of cellular automata means that outputs evolve in a unique, non-deterministic way each time. After a few minutes, the canvas is likely to be in a state that will no-one will ever experience again.
The animations in __*because unless until*__ are a return to some of my favorite mathematical techniques from a prolific period (2010-11) when I was first beginning to make art: Mandelbrot and Julia fractals, isolines, polar inversions, spirals, regular and irregular polygons, and — of course — cellular automata. It’s been a joy to revisit them, and to combine them with my more recent animated practice. As the animations progress, a variety of emergent features sometimes appear — such as cloudlike trails, regular and irregular structures, and moiré.
There are dozens of cellular automaton rules in the algorithm, which can take the states of surrounding cells as input in one of over a hundred ways. Derived from these rules, there are over a thousand possible textures, and billions of ways that a cell might change depending on its rules, state, and surroundings. The states of cells in an area around each cell are used in one of 18 different ways to select from the palettes available in the output — each of which is an interpolated gradient containing hundreds of colors. The large number of possible combinations contribute to a diverse pool of possible appearances.
Help
-
Press **[H]** to open a set of interactive menus providing additional information about the available time-based features and interactive controls. The “Today” panel provides realtime information about which detail level or special day is currently active.
For collectors wanting a more concrete experience, a “Canonical” mode is available that makes the animation appear as it did at unix epoch (January 1, 1970), and a “Synchronous” mode is available that makes animations evolve in a deterministic way (at the cost of performance). These modes are used when generating the thumbnail animations for each output.