Skip to content

Creating new biomorph species

Alan Canon edited this page Feb 11, 2017 · 2 revisions

WatchmakerSuite's design goal of Flexibility aims to ease the creation of new species of biomorph, by providing an infrastructure for basic biomorphs which may be easily extended. There are three necessary elements, and one optional element which must be provided by the developer to produce a new biomorph species.

  • Genome: a data structure to represent the genome of the new biomorph, together with an embryology, to produce a phenotype data structure representing the body of an organism. Since the WatchmakerSuite implementation of the original biomorph species is designed to be extensible, developers may choose to adapt an existing species of biomorph.

  • Embryology: a process to produce a data structure representing a biomorph's body, based on the biomorph's genome. An embryology may operate under parameters which the user can change: the developer may optionally provide such parameters to a particular embryology. A standard mechanism for handling such parameters is provided by the WatchmakerSuite API.

  • Phenotype a data structure representing the body of a biomorph, developed via embryology from its genome. Phenotypes are typically independent of any particular device used to render the biomorph's phenotype for presentation to the outside world. A phenotype may consist of a collection of line segments, for example, or other drawing primitives, defined in a platform-independent way.

  • Mutagen: a process which, given a genome, applies a change to the genome in a pseudorandom fashion. Mutagens may operate under the control of AllowedMutations objects, which regulate which types of mutation may or may not occur..

  • Drawer (optional) a process which transforms the abstract representation of the body of a biomorph (suc as a collection of line segments) into a form which can be presented to the real world, such as the image on a screen. Drawers may operate under the control of a DrawingPreferences object.