What is a design gene?

A quick recap from Part 1 in the series on Design Genes.

Design genes act as instructions to allow structures to emerge during the process of design growth within a given engineering environment.

Blind Watchmaker

Consider the growth and development of a tree. A seed which contains the all genes (genome) of a tree is planted in to the ground. The genes begins to provide instructions to this tree organism based on the environment the seed has been planted in. As the organism responds it starts developing and growing, eventually emerging as a tree. This is a simple breakdown of tree growth, it is actually incredibly complex but it allows us in Biohaviour to take the same principles and apply them to design genes and the Blind Watchmaker design system.

Principles of Design Genes

    1. 1. A design gene does not know the consequences of the instructions it provides to the design growth.
    2. 2. One design gene can describe only one Biohaviour attribute.
    3. 3. A single design gene comprises of 6 elements: A Biohaviour attribute, attribute type/value, an active parameter, working conditions (on and off), and a dominance parameter.
    4. 4. No genes with the same attribute can have the same dominance.
    5. 5. A set of design genes is contained in a design seed.
    6. 6. One design seed can grow only one structure.

Design Gene

From our understanding of design genes, the team at Biohaviour have established our own unique representation of a design gene that will be contained inside a design seed. A design gene can be structured as a 1×6 array representation, string or sequence, of real values which represents the heredity of a design.

Figure 1 – Design gene representation in the Blind Watchmaker design system
  • Attribute – that describes properties of the seed, for example: Direction to determine where the seed can grow in each growth step; Cross section shape: to determine in what kind of shape type the seed can grow.
  • Value/type – expression of the attribute.
  • Active status – either 0 or 1 that represents working status of the gene: “0” means the gene is not working; while “1” means it is working.
  • Starting and stopping conditions – within which the gene remains working once its active status is set to 1. The condition can be given as a threshold value of variable(s) of interest.
  • Dominance – a real number between 0 or 1 that describes priority of the gene, with 1 indicating a dominant attribute which overrides an attribute with 0.

For example, a typical design gene could look like:

gene = [Cross section, Circle, 1, 0.0, 1.5, 1]

Design Seed

A design seed is a collection of design genes which characterize a complete design. A typical design seed can be structured as a (n x 6) multidimensional array. A seed including 6 design genes is shown as below:

    • gene1 = [DirectionX,                0,     1,     0.0,   1.5,    1]
    • gene2 = [DirectionY,                 0,     1,     0.0,   1.5,    1]
    • gene3 = [DirectionZ,                 1,     1,     0.0,   1.5,    1]
    • gene4 = [Cross section,   Circle,     1,     0.0,   1.5,    1]
    • gene5 = [Length,                     0.5,     1,     0.0,   1.5,    1]
    • gene6 = [Radius,                    0.2,     1,     0.0,   1.5,    1]

The engineering structure will emerge from the growth of the design seed, see below.

Next in Design Genes

In the next installment of Design Genes we will explore how this design gene and seed is used to grow a structure. Read Part 3 now.