(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.
(go to beginning of document)