Generative Art

A practical guide using Processing


  • On Amazon
  • ISBN: 978-1935182627
  • My Rating: 6/10

Generative Art is a really beautiful and well designed book, providing a good introduction to generative art. However, I wish the chapter about Processing would have been replaced with one or two more chapters about creating generative art, as I think you could write more than just six chapters about it.

My notes

If you want to do something, the best way to go about it is to stop talking yourself out of it and just get on with it. Nothing should stop you, as long as you're happy to work without reward.

Programming art is a different discipline than programming systems, and there should be no right or wrong way to use the powerful tools we have at our disposal.

With art, you're aiming to produce a response, but if that response is different in different people that doesn't matter. It's fine for one person to like a piece while another sneers. Even better, if one viewer loves the work, we would hope another might hate it. If we can foster such an extremity of reaction, it'd be a measure of success. Perhaps the only cardinal sin of art is to be boring.

Even bad art can be good, as it is only the very worst that can inspire an extreme reaction. To not produce any reaction at all is to fail as an artist.

Generative art is about the organic, the emergent, the beautiful, the imprecise, and the unexpected. It's about exploring these within a world of logic and precise mechanics.

Generative art is about having fun with coding. Programming isn't just about good practice, structure, and efficiency; it can be about freedom, creativity, and expression, too.

The aim of generative art, if it has any aim at all, is to make something beautiful.

Generative Art: In Theory and Practice

Generative art refers to any art practice where the artist uses a system, such as a set of natural language rules, a computer program, a machine, or other procedural invention, which is set into motion with some degree of autonomy contributing to or resulting in a completed work of art.

To be able to call a methodology generative, our first hard-and-fast rule needs to be that autonomy must be involved. The artist creates ground rules and formulae, usually including random or semi-random elements, and then kicks off an autonomous process to create the artwork. The system can't be entirely under the control of the artist, or the only generative element is the artist herself. The second hard-and-fast rule therefore is there must be a degree of unpredictability. It must be possible for the artist to be as surprised by the outcome as anyone else.

The real tools of GenArt are the algorithms.

If you work with pixels, there is already a fragility to the work you do: your art disappears the second the monitor is turned off.

The purpose of a tool is not only to extend our capabilities; it should also enhance the flow of our creativity.

Processing: A Programming Language for Artists


The Wrong Way to Draw a Line

Precision is of only limited interest to us in the context of generative art. There is a certain joylessness in perfect accuracy; the natural world isn't like that. If our art were to achieve such perfection, it might be dismissed as overly mechanical.

From an artistic standpoint, it's the "wrong" way that is often the most interesting.

Perlin noise is a pseudo-random function specifically attuned to natural-looking visuals.

The Wrong Way to Draw a Circle

The complexity of the math doesn't necessarily correspond to the interestingness of the visual.

A simple technique to make just about anything more interesting: deconstruct a machine-drawn shape and reconstruct it with some form of unpredictability.

Adding Dimensions

The computer monitor, printed page, or gallery wall has only two dimensions. Anything you create for these media will always be flattened for presentation. But that doesn't mean your work is limited to those dimensions.

When an experiment feels like it has no further to go, you can always try adding an extra dimension. Be it a dimension in space or time.


The phenomenon, whereby a simple rule set at a low level creates organized complexity on a higher level, is called emergence.

Emergence is the observation of how complex and coherent patterns can arise from a large number of small, very simple interactions.

To produce a realistic flocking simulation in code, you need only three rules:

  • Separation – Steer to avoid your immediate neighbors
  • Alignment – Steer to align with the average heading of your immediate neighbors
  • Cohesion – Steer toward the average position of your immediate neighbors


Autonomy: the capability for something, whether human, software construct, or robot, to make its own decisions.

A 2D cellular automaton (CA) is a grid of cells, each of which has only two states: on and off, black or white, alive or dead. Each cell has limited local knowledge, only able to see its eight immediate neighbors. In a series of cycles, each cell decides its next state based on the current states of its surrounding cells.

The rules for a Game of Life CA are as follows:

  • Rule 1: If a live cell has two or three neighbors, it continues to live. Otherwise it dies, of either loneliness or overcrowding
  • Rule 2: If a dead cell has exactly three neighbors, a miracle occurs: it comes back to life

The pattern Vichniac Vote is a lesson in conformity. Each cell is particularly susceptible to peer-group pressure and looks to its neighbors to observe the current trend. If the cell's color is in the majority, it remains unchanged. If it's in the minority, it changes.

Brian's Brain is a three-state cellular automaton, meaning a cell can be in one more condition, apart from on or off. The states of a Brians's Brain CA are firing, resting, and off. It's designed to mimic the behavior of neurons in the brain, which fire and then rest before they can fire again. The rules are as follows:

  • If the state is firing, the next state is resting
  • If the state is resting, the next state is off
  • If the state is off, and exactly two neighbors are firing, the state becomes firing

When you involve human beings with a generative system, their natural instinct is to attempt to influence it, which would remove the autonomy – but only if the human's involvement in the system is conscious. If the human agent is acting unaware, or uninterested, of the effect their actions are having on the system, they become as valid a data source as any other autonomous object.


Fractals are shapes or patterns that repeat at many levels. The patterns don't necessarily need to be identical at the different scales; they just share certain types of self-similar structures.