This tutorial covers the implementation and application of a Genetic Algorithm on a generative design process. The goal is to evolve computer-generated drawings. In particular, we will be evolving harmonographs. To be precise, we will evolve a set of parameters that control the algorithmic drawing of harmonographs.
Population of harmonographs evolved to resemble the letter A
The tutorial is structured as a series of modules:
- Hello harmonograph
- Random harmonographs
- Individual harmonograph
- Population of harmonographs
- Recombination of harmonographs
- Mutation of harmonographs
- Evaluation of harmonographs
- Tournament of harmonographs
- Elite harmonographs
- Automatic evolution of harmonographs
- Interactive evolution of harmonographs
- External evaluation
Each module consists of a Processing sketch that implements and demonstrates a particular evolutionary concept or mechanism. The modules are linked and sequenced to pave the way for the development of an evolutionary design system at the end.
- Intermediate knowledge of Processing (including the ability to work with arrays and classes)
- Lewis, M. (2008). Evolutionary Visual Art and Design. In J. Romero & P. Machado (Eds.), The Art of Artificial Evolution: A Handbook on Evolutionary Art and Music (pp. 3–37). Springer Berlin Heidelberg. [link]
- Machado, P., Romero, J., & Manaris, B. (2008). Experiments in Computational Aesthetics. In J. Romero & P. Machado (Eds.), The Art of Artificial Evolution: A Handbook on Evolutionary Art and Music (pp. 381–415). Springer Berlin Heidelberg. [link]
- Martins, T. (2021). Automated Evolution for Design. University of Coimbra, Portugal. [link]
- Shiffman, D. (2012). The Evolution of Code. In The Nature of Code (pp. 390–443). [link]