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
- Class harmonograph
- Population of harmonographs
- Recombine harmonographs
- Mutate harmonographs
- Evaluate harmonographs
- Tournament of harmonographs
- Elite harmonographs
- Automatic evolution of harmonographs
- Interactive evolution of harmonographs
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]
This activity was created by Tiago Martins and Sérgio Rebelo for the Computational Creativity for Design course unit of the master's degree in Design and Multimedia (Faculty of Sciences and Technology of the University of Coimbra).