First Week
2007, Lee
Spector
audio composition, derived from a Division Blocks simulation
Download the piece as an mp3 file (1:42).
Concept
High-resolution artificial life systems can provide compelling views
into the dynamics of living systems. In the Division Blocks
system
simulated three-dimensional blocks convert sunlight into energy, grow,
divide, form jointed structures, behave, and are subject to natural
selection in an environment with realistic physics. The system, which
was designed to support experiments on the open-ended evolution of
development, form, and behavior, provides viewers with a visually rich
experience of the virtual world and its inhabitants (see Image 1).
The concept of First Week is to render a single short run of Division
Blocks -- roughly seven cycles of day and night -- as music. During the
first week of the particular run that was used the system attained
"reproductive competence" (meaning that successful strategies for
survival and reproduction had emerged) and natural selection began to
alter
the traits of the population (for example by increasing the frequency
of cooperative resource transactions). Most of the information in the
score of First Week was extracted directly from the data log produced
by the run (see Image 2), although decisions about the interpretation
of the data were made by the composer.
Images
Image 1: Two snapshots of Division Blocks in a world consisting of square islands in a square ocean. In both snapshots a portion of the world is shown in the main image and a birds-eye view of the entire world is shown in the lower left corner. The ghostly, translucent block in the center of the second snapshot is the dissipating residue of waste from a block that recently died; we can see through it, but it is opaque to the simulated light that drives photosynthesis.
Image 2: A graph of the Division Blocks data used to produce First
Week. The horizontal axis is time (in simulation time-steps);
interpretation of the vertical access differs from variable to
variable, but only the contours are significant with respect to the
musical output.
Image 3: A schematic view of two Division Blocks, illustrating some of
their features and components: variable size, joints formed during
block division, photosynthetic skin, identifying tags, repositories of
energy and waste, and recurrent neural networks that couple sensors to
effectors.
Technical Information
The primitive components of a Division Blocks simulation are
rectangular blocks that can grow and shrink, divide, exert forces on
joints resulting from division, and conduct energy and waste
transactions with other nearby blocks. They have photosynthetic skin
and they may obtain energy not only from neighbors but also directly
from the sun, which circumnavigates the world producing cycles of day
and night. Energy is consumed by block "metabolism" (a tax on the
maintenance of each cubic unit of body volume for each unit of time)
and by other actions (e.g. the application of joint forces) and events
(e.g. collisions). Energy flow within the system approximates
biological metabolic processes only very roughly, but energy is
conserved and the sun ultimately provides all of the energy on which
the virtual life forms depend. "Waste" flow is also modeled: metabolism
produces waste as a byproduct, and accumulated waste increases the
energetic cost of metabolism. Waste can be transferred among neighbors
(as can energy), and it is dissipated in block-shaped clouds when
blocks die (briefly blocking sunlight in the local area).
Image 3 shows a schematic view of two connected Division Blocks,
illustrating some of their most important functional components (which
are described more fully in the following paragraphs): variable size,
joints formed during block division, photosynthetic skin, identifying
tags, repositories of energy and waste, and evolved recurrent neural
networks that couple sensors to effectors. A short movie showing
Division Blocks in action can be found online at http://hampshire.edu/lspector/db-gecco-2007,
along with links to source code and a published conference paper that
describes the system in detail (Spector, Klein and Feinstein, 2007).
When a Division Block divides, the two blocks into which it splits
remain connected by a joint on the new faces created by the split.
Forces can be applied to the joint, moving it and potentially breaking
it, and energy and waste can be passed through the joint. Most
ecological transactions between blocks -- including energy transfers,
waste transfers, and sexual recombination -- are mediated by a
block-recognition scheme based on "tags" and tag-match tolerances
(Holland, 1995; Riolo, Cohen, and Axelrod, 2001). Each block also
contains a sine-wave "pulse" oscillator, the frequency of which is
controlled by the block, and a suite of sensors and effectors for
interacting with its local environment.
The control system of each block is a recurrent neural network with
nodes for each sensor input, each effector output, and some fixed
number of "hidden" nodes. At each time step the sensor nodes are
updated to the current state of the environment, each node produces its
next activation value, and the resulting values of the outputs are used
to change block state variables and to influence the physical
sumulation in the appropriate ways (for example by changing the size of
the block, exerting forces on joints, or dividing). The metabolic costs
of the actions are then "charged" to the block's energy supply; if this
depletes the energy supply completely then the block dies.
When a block divides, each new child receives a possibly-modified
version of the neural network from the now-divided parent. The possible
sources of modification are mutation and sexual recombination, both of
which are controlled by the parent's neural network in a way that
permits highly accurate but not perfect reproduction. In our
experiments to date we have observed the evolution of replication that
is reasonably accurate but we almost never observe the emergence of the
maximal replication accuracy permitted by our boundary conditions;
intermediate levels of replication accuracy are apparently adaptive.
At the beginning of a run we create new blocks in random locations and
with random neural networks, and the large majority of these blocks
fail to effectively manage their resources, to grow, and to divide into
child blocks that are themselves viable. We therefore continue to pump
random blocks into the world until a self-sustaining, "reproductively
competent" population is produced.
For the purpose of visualization we color the block skins with patterns
that can reveal up to seven internal state variables. We use a dotted
texture pattern and encode one variable in the density of the dots and
six variables in the red, green, and blue color channels of the dot and
of the background field.
First Week was produced from a
Division Blocks data log using custom software that was developed by
the composer in Common Lisp and in the MaxMSP audio programming system.
The specific data, which was produced by one of the runs described in
the paper presented at the 2007 Genetic and Evolutionary Computation
Conference (Spector, Klein and Feinstein, 2007), is shown in Image 2.
Some of the plotted variables provided pitch, duration, or dynamics
information directly while some were used in arithmetic combinations
with one another to influence the musical events in a variety of ways.
Aesthetic choices made by the composer included the selection of
instruments, the scaling and rounding of data values onto the sets of
permissible pitches and durations, and the specific formulae by which
data would would be translated into musical events.