Running GENR8

When the environment has been set up, it is time to start growing surfaces. There are many parameters that can be set before the run and before you start adjusting them, you must make a few decisions regarding what kind of run you want to start. The first thing to decide is whether to evolve a grammar or to use one of the predefined grammars.

There are no good rules for choosing the parameter values in GENR8. However, some pieces of advice will follow, but the reader should keep in mind that the most important piece of advice is to experiment on your own in order to find settings that you are comfortable with. The default values are the ones choosen more or less arbitrarily during the development of the tool. Thus they have not been scrutinized, and chances are that much more interesting combinations can be found.

GENR8 is seamlessly integrated with Maya, so (except when during calculations) you can use any feature in Maya. If a run is taking to long time, it can be interrupted by pressing the ESC-key. Unfortunately, this only works for the evolutionary runs. If you have started a run with the predefined grammars with 15 steps, your computer will probably run out of memory and you must force Maya to quit with the Task Manager.


To date, there are only two predefined grammars that generate surfaces. One of the grammars starts out with a square, that is repeatedly subdivided into more and more squares (this grammar is called 4-sided tiles). This grammar is particularly useful, since it will be represented in Maya as a NURBS-surface (all other surfaces are polygon surfaces).


The evolutionary component of GENR8 automatically creates grammars that are interpreted as surfaces. This will result in novel and possibly unpredicted designs. The shape of the surfaces is determined by the same parameters that were used for the predefined surfaces. These parameters control how the surface is grown. Additionally, there are the fitness criteria that are used to determine what kind of surfaces are desirable. The fitness criteria do not put constraints on what kind of surfaces that can be grown. They simply determine what surfaces and features that should be conserved for future use. The criteria are discussed below.

Each criterion has target value which is compared to the value that the surface has for criteria. If the surface has the same value as the target value, the fitness is zero, otherwise, it will be proportional to the deviation. Also, weights can be used to increase the importance of a fitness criteria. The fitness from the different criterion is summed for each surface and the surface with the lowest sum is deemed the best. It is very hard to say what a suitable target value is, but some very tentative suggestions are given below. Similar to most parameters in GENR8, there is no optimal value.


This criterion is a target value for the size of the surface in the x- and y-directions. The size of the surface is to a great extent determined by the starting length and the scale factor. This criterion is mostly useful if you want a surface that has different sizes in the x- and the y-direction. In order to achieve this, separate target values should be chosen.


The number of subdivisions is equal to the number of cells that constitute a surface. A seed always consists of a single cell. In most cases, many subdivisions are desired, since it makes it easier to visualize the surface and gives it a more complex structure.


The smoothness criterion is a measure of the local differences in z-value. Thus, a surface with many peaks and throughs will have a high smoothness value. A flat surface will have a value of zero. If you want to have a rugged surface, try setting the target value for this criterion to 5 and increase the weight to 4.


This criterion is similar to the smoothness criterion. However, it measures the difference between the point with the highest z-value and the point with the lowest z-value. Thus, a flat surface will have a value of zero for this criterion. Adjusting this value upwards will result in a surface with a single slope.

Soft boundaries

This criterion is used in an environment where walls are present. More details can be found in the environment section.


This criterion will punish surfaces that are not symmetrical with respect to the y-axis and the z-axis. A value of 0.5 indicates that the surface is symmetrical and any deviations from symmetry will result in another value. Please note that the algorithm for analyzing symmetry is very crude and some assymetric surfaces may pass as symmetric.


The GUI provides more user-friendly access to GENR8 for those who do not fancy the command-line alternative. When using the evolutionary part of GENR8, it is strongly advised to use the GUI since it facilitates the inspection of the population. Also, in the GUI relevant data about the evolutionary run are presented. For instance, the grammar that was used to grow the surface is presented as well as the score for each fitness criterion. By inspecting the fitness criterion, it is possible to conclude why a surface scored a high or low fitness score.

When using the GUI, it is important to use the Cancel-button to close the windows. Otherwise, variable values may linger in the environment, resulting in unexpected behavior. If you think that GENR8 behaves oddly, start the GUI and check that all variables have proper values, correct them and close with the Cancel-button.

A snapshot of the GUI

For a description of the parameters, read the help-file for the MEL-command. If you change a parameter value, it is important to hit the Tab-key, or click in another field with the mouse afterwards, for the change to take effect.

The output window pops up if you choose to "GENR8 and Show Stats". Each individual is drawn in a separate layer, and the visibility of that layer is toggled when the details of the individual are viewed. If you choose to "Continue GENR8", the evolution will be continued with the same parameters as before. If you choose to "GENR8 and Change Parameters", you will be able to change the parameters for the run. If you wish to continue with the same population as before, do not forget to check "Continue" under "Genetic Engine". The "Grow Individual" option can be used to study a surface in more detail. You will be able to see all the growth steps of that particular surface.

A snapshot of the output GUI

Choosing parameters