In order to search the universe of feasible grammars, GENR8 features an evolutionary algorithm (EA). Traditionally, EAs are used for optimization. However, optimizing designs is a hard task, and ultimately, the designer must decide whether a surface is good or bad. Thus, the EA is used in an explorative fashion. The main purpose of the EA is to create grammars, guided by the user. The EA automatically creates valid grammars that are interpreted by the system and displayed. Initially, the grammars (and thus the surfaces) are random. As the algorithm makes progress, it will hopefully produce surfaces that are more to the liking of the designer. This will allow the designer to search the universe of possible surfaces without detailed knowledge of the grammars.
The specific EA used by GENR8 is called grammatical evolution (GE). GE requires that the grammars are on a Backus-Naur Form (Please note that GENR8's terminology diverges from the one used in the GE papers. Since GENR8 also uses a vocabulary from the L-systems literature, there are some collisions in the terminology that had to be resolved.). With the aid of GE, it is possible to interpret an array of integers as a L-system grammar.
When using GENR8's EA, it is possible to save the genome and/or the grammar to a file. These can later be inspected and edited. As long as the changes are valid, it is possible to use GENR8 to interpret the surface. Thus, the designer can tweak a surface produced by the EA by hand.Back