troubleshooting: documentation: GENR8


TROUBLESHOOTING CONTENTS
6.0 FAQ
   6.1 How do I choose the parameter values?
   6.2 I get some crazy results as the surface comes close to an attractor!
   6.3 Some of the lines are missing?
   6.4 This computaion takes too much time, can I go for a coffe break?
   6.5 More on setting up the environment.
   6.6 How can I make it produce interesting results?
   6.7 All the surfaces look the same and nothing happens as I run more generations!
   6.8 What is a good population size?
   6.9 The surfaces produced by the symmetric BNF aren't symmetric.
   6.10 I can't shade the surface that GENR8 produced.
   6.11 The stupid plug-in does not work! Nothing happens as I type the command.
   6.12 How do I get rid of the messages?


back to Documentation Main



6.0 Frequently Asked Questions
So GENR8 does not behave the way you want? Feeling frustrated about stupid computers and software? Beginning to question the sanity of the guy who developed GENR8? Getting frustrated by all the stupid messages? What is the meaning of Life? Why am I doing this? Is he ever going to stop writing stupid things?

Well, here is a FAQ to help you run GENR8 and produce the output you desire and answer some of the above questions.

6.1 How do I choose the parameter values?
As you see, there is a huge number of parameters and unfortunately I can not give much advice on how to choose a good set of values. The default values are really quite arbitrary and you might find much more interesting behaviours using a different set of parameters. I have only tried most of the features one at a time, so combining two may give interesting and unexpected results. The best advice is to experiment, the default values give sensible results but another set of values might suit your purpose much better. Sorry, not much help on this one....
6.2 I get some crazy results as the surface comes close to an attractor!
Because of the singularity in the attractor equation, you get larger displacement as you get closer. Thus, you should not start too close to an attractor or place a boundary between the surface and the attractor. Repellors usually work better since they push the surface away, so you do not have to worry about things getting too close to the repellor.
6.3 Some of the lines are missing?
As far as I know there are two situations where GENR8 can fail to draw the lines that it is supposed to draw. One situation arises when the vertices are too close to each other, then Maya will not be able to draw the lines. However, the lines still exist in GENR8's internal model of the scaffold. This usually occurs beacause of environmental factors such as attractors and random noise. To combat this problem you should make sure that a lot of vertices do not get piled up in the same place.

The other case when lines will not be drawn as they are supposed to also occurs due to environmental factors. When two branches are to be connected across a region GENR8 makes sure that they have roughly the same direction before connecting them. If the external forces has distorted the scaffold too much, this test will fail and the region will not be subdivided (later it will be possible to adjust this tolerance).


6.4 This computation takes too much time, can I go for a coffee break?
The growth is exponential and this means that each growth step takes about twice as long time as the previous step. Thus the computation time increases VERY fast. Unless you are a trained professional and know what you are doing, you should never grow more than five steps!

If you are using the evolutionary algorithm, you can interrupt the run by hitting the Esc-key. Unfortunately, it is very hard to predict how long time the evolutionary run is going to take. In some cases you might get a surface with lots of subdivions that takes ages to compute and in the next run you might end up with simple boring loops. To some extent, this can be controlled by the fitness criterion.

GENR8 has an internal model of the environment, that speeds up computation by orders of magnitude. However, some things must be done through Maya (in particular drawing and detecting intersections) and this takes a lot of time. You can not do much about the drawing part (just watching one individual does not help) but if you use less boundaries, things might go a little faster.


6.5 More on setting up the environment.
Note that the environment can have great impact on a design and even more so on an entire run. Thus it is hard to say anything except for an empty environment. Also, the other parameters (especially the scaling) can produce a wide range of results.

If you define your own environment with boundaries and layers etc, do not give the Maya-objects names that start with "genr8", this might confuse GENR8 severely. It is a good idea to create a new layer and draw your boundary elements in that layer. In that way it is easy to toggle the visibility of the layer if you want to view the generated surface without the bounding elements obscuring the view. New layers are created with the button left of the Default layer.


6.6 Evolution is stupid. I can't believe that people think that humans were evolved from bacteria, when it is impossible to evolve a decent surface! How can I make it produce interesting results?
The evolutionary process tries to minimize the fitness of the individuals, so the fitness function is very important.

By default the subdivisions criteria has a high weight since that is usually a desired feature. Otherwise the system just creates surfaces that only consists of a perimeter. Since the size criteria depends on the start length, the scale and the number of steps, it is usually a good idea to decrease the size weight.

If you see something that looks intersesting but GENR8 is of a differing opinion (giving it a high fitness) you can coerce GENR8 into doing as you wish. You can edit the fitness value of individual designs. This will make sure that the surface is copied directly into the next generation and it's genetic material will be more prevalent in the next generation. The same effect can be achieved by copying the individual so that it occupies a larger portion of the population.


6.7 All the surfaces look the same and nothing happens as I run more generations!
The best solution is to increase the population size. The downside of this is that each generation takes longer time to evaluate. So if you are working on a slow computer, then there are a few other things to do. The easisest thing is to increase the mutation rate or the number of crossover points, creating more genetic variation. Another thing to do is to load a saved genome into the population to get some more variation.
6.8 What is a good population size?
The answer depends on what computer you are using. During development I was using a 350 MHz Pentium II with 395 MBytes of RAM. I could run a population with 50 individuals without getting bored (I usually only run 2-4 generations at a time and inspect the result in between). If the population size is less than 20, it tends to converge quite fast. As a rule of thumb it is better to have a large population and only run it for a few generations than the other way around (many generations, few individuals). This allows for greater diversity and varialtion in the population.
6.9 The surfaces produced by the symmetric BNF aren't symmetric.
The most likely culprit is the environment. You may retort "But I have an empty environment, how could that be?". The answer lies in the branchAngle parameter. If the angle is large, pairs of branches that match badly might merge and thus the symmetry is lost since the branches were supposed to merge in another way. If you ask why this can happen, the answer is that the algorithm that performs the merging does the matching in a unpredictable (albeit deterministic) order.
6.10 I can't shade the surface that GENR8 produced.
For some obscure reason, there is no shading node associated with the Mesh created by GENR8. In order to shade it, you must do the following:
  1. Open the Hypershade-window under Window->Hypershade.
  2. Select the surface.
  3. Right click on one of the shaders (eg lambert1).
  4. Choose Assign initialShadingGroup To Selection.

6.11 The stupid plug-in does not work! Nothing happens as I type the command.
Ok, here's what to do (if measure i doesn't solve the problem resort to i+1):
  1. Unload the plug-in and then reload it (using the plug-in manager).
  2. Restart Maya.
  3. Re-install GENR8.
  4. Re-start your computer.
  5. Re-install Maya.

6.12 How do I get rid of the messages?
Well there is not much to do about the stupid messages, they are part of the tool.