With computer power steadily rising with time, and coding becoming a widespread skill, a peculiar hobby has spawned communities around the internet. Generative design, or creative coding, or how to make a computer create, is a subfield of procedural generation, which also includes works with less artistic aspirations. Using the full arsenal of mathematics, programmers-artists create works by only tangentially leading their computer towards the kind of work they want it to make; yet, the coveted goal of these endeavours is usually to have an artwork which looks human, natural.

THE TOOLS

One has many choices when it comes to generative design. For example, Github’s community has assembled a curated list of many tools one might use1, which, one might note, contains quite a large selection. Let us put aside the software, however, since, while many specific programmation languages have been developed for this specific purpose, the essence of the field is only dependent on basic ideas.

Let us demonstrate this on the simplest generative algorithm: a text generator. Here, we simply have a list of words, and combine them to form a new expression: “The X of Y”, for example, where X and Y are picked randomly inside the text file. We might get ridiculous expressions, certainly. Nonetheless, here stands an algorithm that allows a computer to create new ideas, expressions. The algorithm contains the essence of creative coding: we have designed part of the expression (“The” and “of” are hand-placed), and we let the computer complete the work. This is generative design: randomness where told to. If we had told the computer to generate each letter of a word randomly, it would have been a good password, and an uninteresting creation, which is why there is a need for the human to lead the process.

 

FURTHER DEVELOPEMENTS

We now may go further, and look at 2D and 3D works. The principle is the same: we decide where randomness takes effect. For example, the patterns in the image have been created using the programming language python, as a plug-in for the image manipulation software GIMP. The process is as follows: we draw random lines whose colors are taken from a predetermined set, then we symmetrize the drawing, and tile it. While some of the results may seem unimpressive, the speed at which they are produced allow us to generate as much as we want, so that we can always find decent artwork.

This process may easily be complexified, in order to produce much more intricate designs. One may peek at reddit’s generative community, and see the numerous approaches and methods which the artists use.

CRAFTMANSHIP’S END

The age-old question of “will Z be replaced by computers?” may be, again, answered by a resounding no. Artists produce a kind of art that computers are not capable of making: while an artist, in some way, allows each part of their artwork to be decided by their imagination — human randomness — a computer does not understand the meaning of their creative process. Generative design is not about begetting robot artists, it simply is about exploring a new tool, as Prussian Blue came to painters in the 18th century

1. https://github.com/terkelg/awesome-creative-coding