Originally posted on Substack
“The Artist always has the masters in his eyes.” - Ralph Waldo Emerson
What makes a good generative agent?
It’s an interesting question, that I will scratch but the surface. However, I’ve gathered a list of general considerations from my observations of the generative arts. My intent is to discover and explore.
Some of this comes from the pursuit of understanding… in an ironic way. For one, It is the pursuit which help build an eye for the different, and aesthetically pleasing. Another aspect is that the pursuit brings meaning and “eureka” moments.
But I’m aware to the fact that art may never be completely understood in a scientific manner. I mean how inspiration would art be if it could be predicted?
Yet there are elements; color theory for instance can help provide a visually appealing framework. But even color has other uses as well. In the Netflix Series “Life in Color With David Attenborough” one will find that color has its uses in attraction, navigation and survival. And the question does come up, are there elements in our lizard brains that associate our past to what we call “aesthetically pleasing.”
But there is the functional art of graphic design or even video games. They all drive a sense of
All that being said, there are aspects by which we create generative agents that help elevate the design and aesthetic of the moments to help maximize the experience of creating and enjoyment of its output.
Beauty?
This is an interesting concept to consider. It is said that “Beauty is in the eye of the beholder” and there is much truth to that. Yet the question is, what makes something beautiful?
- Is it when a piece of work resonate with more than the current society?
- When it has been sold several times
- When it lands in the Louvre?
And it could be all of the above, but many of those questions are contextualized in western thought. Could there be axioms of aesthetic or beauty? The other question I’d have to ask is, what is “good” art? Is good art pretty or beautiful?
At this point in generative systems (generally speaking) there are two dominant ways to bring most works to life:
- Discrete mathematics
- grid based systems, boolean algebra, etc.
- Replicating natural phenomenon
- flocking, swarming, perlin noise, etc
These two dominant methods bring most of the awesome work to life. They provide context to our everyday world of building and then also just the natural beauty of nature.
Archetype - Kjetil Golid
Subscapes - Matt DesLauriers
All these are questions that I think should be considered when working on a new piece of art. I think there is a field of study that can be done to better understand these things. There is a language that is universal
Flexibility
When you think of a generative agent, you have to give the code a mind of its own. It has to make decisions about the shape it should draw, location, color, thickness and frequency to name a few. These are all going to bring life to a piece but without parameters or the “physics” of its output, it just creates a primordial soup of randomness. $
It’s a good starting point, but it does not create much. Your brain is may currently be searching for some pattern. Now since this has been generated by a pseudorandom algorithm, there may be a pattern that a quantum computer may be able to distinguish or there might be an iteration where the Mona Lisa will pop out through the evolutionary process. However if we wait on evolution, we are looking at a long wait for it to pop out.
Subtle Pattern
As I mentioned the “physics of a system”, I think of physics as the parameters of the possible. For instance gravity has a pull to earth, however it doesn’t pull us through the earth and thus there are defined parameters on what is possible. In the same way, the parameters that we give to a system can help generate things that aren’t rote, or mechanical but have some fluidity to the mix.
Take for instance, this Pollock, though much randomness is at play there are a few things to note which we can call the pattern of his piece:
- Color (which will be my next point)
- Distribution
- Drip Pattern
Pollock chose to use the viscosity of the paint and gently drape the color onto the canvas. He could have used a brush, or a bucket and string to make the matters. He also didn’t just simply drop the paint onto the canvas; rather he uses a yellowish background and then layers the colors on top of each other. Each color has its place, the red seems to only come out in certain areas to emphasize.
And though you might find this to be too random for your liking, it does have a subtle pattern that has to be studied. Without careful consideration, we can look over the consideration of choices made in creating Number 8.
Number 8, Jackson Pollock
Color
The point of which colors are chosen are important to the mood and character of the image. Even a random pixels in an image of a few colors can create images that are pleasing to the eye. Following, I’ve got a palette of a couple colors (left) I’ve used in some of my work.. it has a bit of an energizing energy within the palette that is mixed.
Lets the Pollock image, we are going to extract the image’s dominant colors. I’m going to cheat a little by pulling out my Swiss Army Knife for quick tasks called Mathematica. It’s really a symbolic representation language in mathematics with a bunch of amazing functions that can do alot.
DominantColors[img, 7] // Add "HexRGBColor" to get hex colors
The Wolfram Language code provides the colors that are most dominant; and you can see that we used the same method of random squares with a color palette but generates a very different energy. Its very soulful and inviting with its warm tones of yellow (right image). But, shapes of the same size can be methodical.
Variation
When the output of your code generates the same thing again and again. It is hard for there to be a generative nature to it. For instance, if the color is the only thing that changes; there is probably an end to it.
Every one of these images are different but, they won’t really provide something incredibly different. so what happens when we start changing the size of the squares that are being generated?
There is a big difference, just adding an extra parameter of randomness that can help provide a bit more beauty to the system.
Simplicity in Complexity
The beauty of the simple can be baked into a more complex piece.
Here we have done something quite simple, we have rotated the squares a bit based on a perlin noise algorithm (gives a field of values) to give the image a little more variety to the image. Again simple rotation, but the complexity behind the rotation is all but hidden to the viewer of the image. Thus the pattern that the perlin noise generates is interesting. When we start adding different amounts of color, we continue creating a variety of images as follows.
As you can see, you quickly can bring a bunch of interesting little elements into the system to generate patterns that are interesting to say the least. This all is just fundamental elements that can be moved into a number of interesting spaces depending on the creativity of your usage. A couple things that come to mind is:
- Weighting each color
- Create margins and confine the randomness to a space.
- Confine in a circle
- Circle packing
- Other shapes
- Stroke
Above variation.
With randomized stroke around rectangles
With a few circles added in
With margin
Whats the story?
The last element (though there are many more) is the story. I think there is much to be said as to the context or the “why” behind a scene. It doesn’t need to be an elaborate story, but what brings one to put together yet another piece of art.
- Sheer drive to create or discover
- Pursuit of excellence - creating something different than or better than before
- Inspiration from other artwork
- Driven by experience or emotion - breakup or disaster
- Protested works (a.k.a dada movement)
Stories drive our ability to empathize and connect, even when the story is just a product of passion. We as humans can understand why someone is passionate. We celebrate the likes of a Picasso due to his forging and being an explorer of new media. Even when I think of the passion that Beeple exhibits to create new content every single day for 10 years. There is a sense of wanting to root for him.
Good Agent?
I know that as I think through pieces like this, it gives me the ability to hone the craft of creating and pairing the mechanics of a generative agent with creativity. I don’t think there is a formula to success on what makes a great agent. It’s all about creating your story and letting it live the life of its own.
Sometimes it will create a great splash, and sometimes it won’t ever be heard. It is always more important to cherish the process and letting out the creativity then being heard or selling NFTs, or ever being recognized.
🔖 Articles and Tutorials
Future Sketches - Baku Hashimoto
Baku Hashimoto is a video director/visual artist/creative coder based in Japan. Having backgrounds in both digital arts and filmmaking, he works on everything from MVs and web features to interactive art, conducts experiments in different modes of expression, and explores diverse styles of video and graphics.
Definitely check out this weeks Future Sketches talk!