(Disney Meets Darwin)

6 Muscles

Motion in these figures is the result of multiple simultaneous sine functions in each joint. Similar to a method developed by McKenna [90] for a virtual roach, this system utilizes a rhythmic motor control program which consists of a combination of sinusoidal angular motions in multiple joints. The differences from one figure's motor program to another's can vary greatly according to genetic variation. A figure's motor program is continually active at all times and cannot change during its lifetime. Since sine waves are used, motion is periodic - every action is cyclical.

In the first species, consisting of five limbs in two dimensions, joint angle changes are determined by collections of sine functions (one sine function for each of four joints), as illustrated in figure 3.



Figure 3. Four joints with changing angles


Each joint's periodic motion is characterized by four genes: one for amplitude of bend, one for phase offset, and one which serves as an on/off switch to enable or disable the joint's motion. Additionally the figure has one global rate gene which controls the overall frequency of motion in all the joints.

Motion is specified essentially the same in all species-with sine functions in each joint whose amplitudes, phases, and frequencies can vary. In the other species, which have variable topologies, I have devised a different scheme, due to the fact that the number of limbs (and therefore joints) can vary. This scheme collapses the number of genes necessary to specify the joint motion, such that the species' genomes can be specified by a fixed number of genes.

Attributes of motions within the whole collection of joints are created by one number-series generating function, as a way to coordinate them. This function takes six control parameters (determined by six genes) as input, and generates a periodic series as output. Each number of the series corresponds to one joint angle in the figure. The purpose of this scheme is to allow a small number of genes to determine an indefinitely long series of values to control motions in multiple limbs, where the number of limbs can vary. The following pseudo code example demonstrates this function.

INPUT: size, start, step, low, high, number_of_joints;
_____________________________________________________

integers: size, start, step, number_of_joints;
real numbers:   low, high;

 BEGIN
  number = start;

  LOOP from (index=1) to (index=number_of_joints)
   (
    number = number + step;
    output_parameter[index] = low + (number MOD size)/size * (high - low);
   )

 END.

_________________________________________________________
OUTPUT:	a periodic series of real-number parameter values

The series is periodic to encourage regularity, yet with a large number of possible polyrhythms in the total figure's motions. Thus, a figure can move all its limbs either in total synchrony, with various wave motions, in alternating fashions, or "chaotically".

In phenotypic expression from genes to motion, the above periodic series generator is used to determine six motion attributes (with six associated sets of six genes determining the inputs to the function). The six motion attributes, for the whole series of joints, are:

amplitude of sine wave motion in the pitch angle of the joint
amplitude of sine wave motion in the yaw angle of the joint
phase offset of the pitch angle sine wave
phase offset of the yaw angle sine wave
on-off switch to enable or disable the joint's pitch angle motion
on-off switch to enable or disable the joint's yaw angle motion

In addition to the genes controlling these motions, there is one global rate gene which controls the overall frequency of sine motions in all the joints.


7 Genotype/Phenotype

(go to beginning of document)