Implications 0x7cf4c151c1aad1c4ab1c37173d6069b07a1d5d4e502486891089bfb8e0a21805
Implications is an exploration of the relationship between symmetry and chaos, via a system where intersecting regions resonate in different patterns. The interactions between the regions are unpredictable and emergent, as their boundaries move and rules shift. Overlapping, entangled, inextricable -- like two sides to a coin -- each region has its own identity, but they're inseparably implicated.
This work continues my study of cellular automata (CA) as a medium. Many different rulesets are included, each with a characteristic behavior and appearance. New techniques for coloring, blending, and drawing the cells help provide diverse perspectives on the underlying system. As a deterministic CA, each animation frame is a direct implication of the one before it.
Implications is also a celebration and deconstruction of pixels, which feature prominently in the textures. Present at a variety of scales, overlapping, flickering, moving -- this project brings pixels into focus and looks at the role they play in our perception of an underlying image. When pixels give an inaccurate, incomplete, or shifting view of an image, where's the line between perception and reality? Where do individual pixels with simple behaviors end, and where does the whole of what we call "shapes" and "patterns" begin?
Implications #1, Art Blocks test net, showing the "Giga" block size. Can't miss those pixels!
Inspiration
This project started as the answer to a question: "What happens when cellular automata with different rules interact in the same space?" After the release of mono no aware in October 2021, I was thinking about how I might try new kinds of rules and systems to get some additional complexity and diversity in my outputs. Around this time I was doing some sketches, and one of them was really promising -- where a few circles divided a canvas into an "inside" and "outside."
On one side was a static, geometric, circuitry-resembling ruleset I called "cyber." On the other, a fluid, organic-looking ruleset behaving similarly to surface tension that I called "creep." As the circles changed size and overlapped, their contents interacted in complex ways. They reminded me of little petri dishes full of life exchanging information, which gave the sketch its working title -- cultural exchange. Examples of the sketch are here.
Motivations
A main goal for this project was to give a faithful representation of the complexity and beauty that cellular automata are capable of, in a way that's both accessible and satisfying to watch. My approach was to give more thought to the experience of the viewer, and less to the complexity of the system -- relative to my earlier work.
Texture Diversity
My first generative artwork was mono no aware — another work about chaotic systems and symmetry. The project was an adaptation of an earlier algorithm based on Game of Life — one not originally designed to consider aspects like “set diversity” or “appealing color palettes.” There is one finely-tuned automata algorithm at the core of the animation, with a couple of variations that appear occasionally (called “glitch”). To generate diversity, mono no aware relies on different starting configurations in a variety of symmetries; but, all of the outputs eventually fill the canvas, causing the textures to be fairly uniform across the set in the end.
With Implications, I wanted a wide variety of textures throughout the lifetime of the animations, which required many different types of rules for automata. Allowing the rules to change over time serves as an additional source of diversity. To have a large enough pool of rules for automata, it seemed like what I needed was a generative way to create them. This is a really challenging problem, because minor changes to rules can have unpredictable or undesirable results. Some potential rulesets aren't the greatest, and would break the output. I solved this using a technique I call curated constraints -- more on this here.
Implications #88, Art Blocks test net, showing rule changes at 0:24, 0:39, and 0:56
Maintaining Composition
In both mono no aware and Zoologic (April 2022), the entire output was the “cells” of cellular automata in motion. Though Zoologic used overlapping polygons that gave a little more control over the textures and composition, at its heart it was still a chaotic system totally “at the whims” of the cells’ behavior. Sometimes, that can make the animation feel a bit noisy or difficult to fine tune the diversity and appearance for.
In Implications, I wanted a little more control over the composition and symmetry, while still having a chaotic system with emergent properties. By using simple, controllable geometric shapes to divide the canvas into regions, I was able to ensure a wider variety of pleasing outputs. These shapes also help the viewer have something to focus on, and provide an additional source of rhythm and symmetry to the animation.
Implications #70, Art Blocks test net
A balance between noise and structure keeps the animation dynamic, but still with a feeling of composition. It gives you the comfort of knowing what’s coming, but also an opportunity for new surprises or moments of delight. The outputs can run indefinitely with a sense of familiarity, but never come back to the same appearance twice.
Focus on Aesthetic Appeal
With this work, I really wanted to focus on giving the viewer an enjoyable, in-the-moment experience. Zoologic was a lot about the "aesthetics of the system" and exploring a model using interactive controls. But I wanted Implications to be simply about what you see and feel. A few considerations here:
Improved engine and framerate management for smooth animation performance
Careful selection of rulesets to avoid flashing, emptiness, or lack of movement
"boringness" detection to ensure the animation doesn't become stuck in an undesirable emergent state
Greatly reduced interactive controls (and less emphasis on them)
Work on color, opacity, and filters to provide more nuanced color and texture
Improved composition to increase visual interest
I spent more time refining the visual appearance of this algorithm than with previous projects. After it was first "done" and uploaded to the Art Blocks testnet, I made a list of areas to improve and spent another two months refining the textures and performance.
Symmetry and Motion
There's a hypnotic appeal to symmetrical systems in motion. The human visual system is hard-wired to detect objects and make sense of symmetry, so I wanted to engage those systems in the viewer. Most outputs have some type of symmetry to them, based on a few factors:
The symmetry of the starting cell placement
The symmetry of the container
The symmetry of the geometric regions
How these various aspects relate to each other
For some outputs, a feature called "asymmetry filter" causes a random selection of the pixels to be skipped when rendering each frame, presenting an imperfect, asymmetrical view of a symmetrical system. The brain seems to fill in the gaps, giving the impression of symmetry, but sometimes there's a bit of an uncanny feeling that comes with it -- like viewing an optical illusion. [note: I'll be interested to see if other people experience this feeling, too.]
Implications #100, Art Blocks test net -- demonstrating "asymmetry filter"
At times, the shifting colors and patterns can be rhythmic, mesmerizing, or even psychedelic. I wanted the outputs to have a meditative quality to them -- something that would be engaging to watch for a while.
Features
For Implications, I wanted to simplify my exposed features. My goal was to make each of them something that's fairly easy to understand, and that has a significant impact on the character of the output or would be something someone might want to search by. No raw numbers are exposed. The features are:
Animation Style
Determines the types of geometric shapes and symmetries that are allowed. "Imagine" and "Perplex" have a lot of flexibility on the placement of shapes, and "Implications" shows a variety of sliders.
Block Size
Determines the default size of cells/pixels/blocks in the animation, and correspondingly the resolution of the simulation. (note: this can be changed using the X key (press H for instructions on interactive controls), which impacts the behavior and appearance of the animation)
Palette
The selected starting colors for the output. These may change over time, as the colors take a Brownian walk through HSL color space (as dictated by the Color Drift feature). Hidden variables may alter the palettes subtly. Implications has a somewhat irreverent relationship with colors, which are unsentimentally named for Greek letters.
Circle Type
Determines the number and placement of circles
Circle Pulse Rate
How fast do the circles change in size?
Starting Placement
Which cells are living or dead in the first frame in the animation? Critical to the symmetry and initial appearance of the output.
Symmetry
An emergent/"phenotypic" feature that attempts to categorize the overall symmetry of the output based on the symmetries of the various shapes and cells
Topology
Do the edges of the animation connect to each other (Toroidal) or do they not (Bounded)?
Pixel Style
What's the appearance of the pixels? Combines Size+Appearance. Each output can come with one or two pixel sizes.
Normal: The pixels are sized to perfectly fill the grid
Small: The pixels are smaller than a cell of the grid, leaving gaps between adjacent pixels
Large: The pixels are larger than a cell of the grid, so they overlap
Digital: The pixels are uniform in size and placement
Paper: The pixels are "jittery" in their placement and sizing. For some reason, the texture reminded me of paper
Asymmetry Filter
Each pixel has a chance to not be rendered in each frame. The stronger the filter, the higher the chance for each pixel to be skipped. High values take on a staticky appearance.
Blur
How much do the frames blur together? Has a significant impact on output appearance.
Shape Type
"Shapes" are Squares and Triangles. Some outputs have them; others don't
Shape Rotation Speed
Do they sit there like lumps? Or do they channel their inner ceiling fan?
Sweep Left-Right/Top-Bottom
Some outputs contain "sweepers" -- rectangular regions that extend across the canvas periodically sweep from one side to the other to perturb the field with a different ruleset.
Slider Type
Some outputs contain "sliders" -- small rectangular areas that move across the screen at a variety of speeds and angles.
What's Next
The algorithm powering Implications is flexible enough to swap in new automata, geometric shapes, color palettes, and drawing styles to get outputs that behave similarly but have very different appearances. The underlying framework supports arbitrary aspect ratios, which could also be experimented with for new types of output. Since the framework is vanilla JS, the algo could be enhanced to include an audio component using a library like ToneJS. With additional adaptation, it's likely possible to optimize for compelling still outputs. I anticipate more work to come built around the core of the Implications algo.
Implications #19, Art Blocks test net
Thanks
First and foremost, I'd like to thank my wife for her patience, support, and thoughtful feedback these past six months I've been working on Implications. It's not the easiest thing to balance day jobs, nights and weekends making art, and parenting a one year old. I couldn't have done this without her support. We spent many nights looking at random outputs and making notes on what could improve -- and her constructive criticism was invaluable.
I'd also like to thank everyone who's supported my work so far and encouraged me along the way. It's really great to connect with other people who are excited about some of the same things as me -- math, chaos, animation -- and to be able to share these parts of myself. This has been a really exciting scene to be a part of, and it still feels like it's just getting started. I'm so glad to be sharing it with you all!
Comments