GA2: a Programming Environment for Abstract Generative Fine Art
Fine artists looking to use computers to create generative works, especially those artists inclined towards abstraction, often face an uncomfortable choice in the selection of software tools. On the one hand there are a number of commercial and shareware programs available which implement a few techniques in an easy to use GUI environment. Unfortunately such programs often impose a certain look or style and are not terribly versatile or expressive. The other choice seems to be writing code from scratch, in a language such as c or Java. This can be very time consuming as every new work seems to demand a new program, and the artist's ability to write code can seldom keep pace with his ability to imagine new visual ideas.
This paper describes a software system created by the author called GA2 that has been implemented in the Matlab software environment. By layering GA2 over Matlab the artist can take advantage of a very mature programming environment which includes extensive mathematical libraries, simple graphics routines, GUI construction tools, built-in help facilities, and command line, batch mode, and GUI modes of interaction. In addition, GA2 is very portable and can run on Macintosh, Windows, and Unix systems with almost no incremental effort for multi-platform support.
GA2 is a work in progress and an extension of the completed GA1 environment. It is medium independent, and can be used for all manner of image, animation, and sound production. GA1 includes a complete set of genetic algorithm operations for breeding families of graphical marks, a database function for managing and recalling various genes, a set of statistical operations for creating various distributions of marks on a canvas or animation frame, a unique Markov-chain-like operator for generating families of visually similar lines or paths, and a complete L-System implementation. GA2 extends GA1 by adding more generative techniques such as tiling and symmetry operations, Thom's cusp catastrophe, and mechanisms inspired by complexity science notions such as cellular automata, fractals, artificial life, and chaos. All of these techniques are encapsulated in genetic representations.