Emergent Phenotypes

During the past month I have been extremely busy finishing the code to assemble body parts. It is now (mostly) complete and working very well. I should be able to begin the addition of many new genes and creature parts.

Setting this up resulted in the addition of two new features to the genetics simulation that had not previously considered. The first being the multi-pass phenotype generation described in the previous dev post. The second while closely related to the first is far more significant. The simulation may now determine multiple phenotype from a collection of genes. For instance we have a gene for a flagella. By it’s self this genes does nothing only describing what a flagella is. Placement of the flagella is dependent on the existence of other genes. One signifies where it will be placed and the other creates the structure that it is placed on. This can result in the placement of multiple flagella in various locations. The behavior of these is determined by the flagella gene, the gene placing it, and it’s ultimate location and orientation. Currently if your have two flagella they activate simultaneously and the result in movement of the organism in a combined direction, however we are planning to expand the simulation to allow for separate activation of multiple phenotypes. So for instance with a single flagella gene but other genes specifying how a body part is assembled and behavior of parts you could for instance have a organisms that has flagella specialized for different tasks. Some could function for forward movement others for lateral and others yet for rotation.

Multi-pass Phenotype developement

I’ve been working today on adding a final pass to phenotype development for structural genes. Before I go any further I’ll provide an analogy to explain my motivation.

Okay lets say you have a gene for a nose. Where are you going to place that nose? Is there a gene for a head that it will be placed on? Or can it be placed directly on a body and does a gene need to exist to specify the placement. Well if this is the case obviously you wouldn’t want to generate a phenotype for that nose if it’s gene can not function without the presence of other genes. So before you can fully generate the nose phenotype you need to generate the dependent genes.

That gives you two passes to phenotype generation. The generation of the nose and then inclusion dependent on the existence of other prototypes. However that is not really enough. Would a nose be expected to function different if placed on a foot vs a head? What about the angle of placement? What if the organism has 3 fold symmetry and 3 noses are placed? So obviously further refinement is necessary.

That leaves us currently with three passes for structural gene phenotype generation. Identification of the base phenotype, inclusion or exclusion based on the existence of other phenotype, and finally refinement based on the included phenotype base set. One could argue for an iterative refinement. However, in the hopes of restraining complexity and processor requirements we hopefully will not have to go there.

Gene Hierarchy Tree Update

Image will open in new window.

I have been busy tonight implementing more genes. Many of the primordial genes are setup and linked so that they may evolve. Additionally many of the early life genes are complete as well from when we had evolving plants early in the simulation. These genes are however no yet link up in the gene hierarchy, and can’t evolve in game.

I have attached a schematic of the gene hierarchy showing most genes and many of the links. Not all links are currently represented as they would clutter the tree. Currently implemented genes have black boarders while ones in progress have green.

The current goals with the tree are to implement genes that allow for aggressive behavior as well as those that allow for photosynthesis. After that we will focus on genes necessary for survival on land and more advanced body parts and behaviorsgenetrees1