In the Garden of Babel, all plants are grown to exacting specifications, a "genome" consisting of the hexadecimal characters 0-1 and A-F. Each genome is composed of several genes with instructions that tell a plant's cells what size, shape, and color to take on. Explore the depths of the Garden by designing your own plants, generating offspring, and mutating their genomes.
Click here to load three example flowers.
Every plant begins with cell 0 and gene 0. The cell reads and executes the instructions in gene 0 in order, potentially spawning zero or more children on cell 0. After cell 0 finishes growing, its children cells get the chance to grow, and so on. In the example genomes, each gene is labeled with its function and the type of cell it pertains to: root, stem, leaf, flower, or petal.
Render displays the output of the currently selected genome.
Mutate randomly changes the characters of the currently selected genome at a probablity of 0.1%.
Cross creates a child genome from the two unselected genomes and saves the result to the currently selected genome.
Gene instructions are single hex characters that take between zero to three arguments. Genome strings are case-insensitive, but non-hex characters are considered invalid. Comments are contained within parentheses "()" and are stripped out before a genome is parsed. Similarly, whitespace has no effect on any output. Hex characters outside of gene delimiters are valid, but have no effect, essentially representing junk DNA.
Arguments can be passed in three ways: as the value of one of the accumulators, as a direct value, or as the value of one the cell's properties.
0:Every cell has two accumulators 0 and 1 that help facillitate more complex behavior. Numerical values can be saved to an accumulator and simple arithmetic operations can be performed on these values. Calculations are performed by instruction B when passed the following values for [arg2].
0000: