...O fill me
With strength against those who would freeze my
humanity, would dragoon me into a lethal automaton,
would make me a cog in a machine...

-- Louis MacNeice, 1944

In the early 1950's, the well-known mathematician John Von Neumann was trying to develop what he
termed a self-replicating automaton; that is, a machine whose computer brain was capable of devising
instructions to effect the construction of itself. Von Neumann never actually intended for the machine to be
built. Rather, he was interested in arriving at rules by which a computer could be programmed such that it
could fashion an exact replica of itself. He envisioned initially a robot wandering around a warehouse
littered with spare parts, identifying the relevant pieces, and fashioning an exact replica of itself.
[1]

As the legend goes, Von Neumann fooled around with various approaches for a while but was not satisfied
with the results. The physical movement of pieces by the robot did not seem to fit the mathematical theory
he desired, nor did the complexity of various attempts at solution suit
his liking. Von Neumann sought a solution that was simple, elegant, and general.
[2]

Stanislaw Ulam, a fellow mathematician, suggested to Von Neumann a different approach.
Consider a rectangular array of cells, much like a chessboard, in which each cell
can exist in one of a finite number of states: 0, 1, 2, ... Time would progress
discretely (i.e. in jumps, rather than continuously. Each increment of time would be
a chance for cells to change their state. The rule governing the change of state
for each cell would depend only upon the states of the cell's immediate neighbors
and possibly upon the state of the cell itself. The rule would be the same for each cell and
all cells would change (or not change) according to the rule with each time step.
All cells would initially be in the 0, or quiescent, state; to start the automaton,
place some cells in nonzero states and start the clock. Watch the cells and see how
they changed according to their local--but common--rule. Ulam's grid was an example
of a cellular automaton.

Von Neumann quickly saw that this system could fulfill his purpose in solving the self-replication problem.
The grid of cells would be a computer; what is a computer, after all, if not a series of circuits coupled
together such that the passage of current through them results in meaningful output? It is common
knowledge that the fundamental language of a computer is just 1's and 0's. Interpreting these 1's and 0's
allows people to interact with the computer. The cellular automaton computer would be programmed by
placing some cells in nonzero states. The combination of initial condition--the states of the cells at time
zero--and the rule for how each cell updates would be the means by which the computer operated. The
resulting states of the cells at a later time would be interpreted as output.

This output could be used to instruct the movements of a mechanical arm. The mechanical arm could change
a nearby grid of cells, all initially in the zero state and adjacent to the cells constituting the computer, so
that this new grid would have the same initial conditions as the original grid. The computer would thus have
replicated itself, and Von Neumann would have solved his problem. Von Neumann's solution required
hundreds of thousands of cells, each of which could exist in one of 29 different states;
[3] nevertheless, the fundamental design of the system was inherently simple
and solved the replication problem elegantly. His result was published posthumously in 1966 as the
Theory of Self-Reproducing Automata.

Cellular automata (CA) manifest one of the most intriguing ideas in mathematics:
from simple rules and algorithms, complex patterns and behavior can result. Underlying
this is the notion of scale. The rule for state-change of cells in Von Neumann's
computer is local; each cell 'sees' only its immediate neighbors. Yet the combination
of the right initial conditions and the right local rule produces a global pattern
which, when interpreted correctly, can instruct the arm to construct a replica of
the computer. Cellular automata, of which Von Neumann's self-replicating automaton is just
one example, also transmit information in an interesting manner. There is no moving
piece that carries data from one portion of the automaton to another. Cells convey
information by referencing their neighbors; without movement, data is transmitted across
the automaton.

This concept of transmitting information via only localized interaction and the remarkable
complexity arising from simple, local rules are what I find most significant about
cellular automata. This paper attempts to explain these concepts and to display
some of the interesting results possible from cellular automata systems.

II. Sequences: Recursive and Explicit Definitions

For the rest of it, the last and greatest art is to limit and isolate oneself.

-- Johann Wolfgang von Goethe, 1825

The simplest mathematical example of the information-transmission property of cellular
automata is a recursively defined sequence. In general sequences are written as
strings of numbers (termed elements) with commas between each number. The sequences
discussed here will be infinite in length and will be generated by some specific rule;
that is, there exists an algorithm for generating each number in the sequence.
The rule might be "double the last number and add three" to get the next number.
A different sequence-generating algorithm might be "write down all the numbers that are one
greater than the powers of two."

If a sequence is defined recursively then each successive element is defined as a
function of an element (or several elements) preceding it. This manner of defining sequences is akin to
setting up a row of dominoes; each falling domino knocks over the domino behind it. As with dominoes, one
must have a place to start--there must be a domino to start the chain. With sequences this amounts to
naming the first or first several element(s). This number is called (unsurprisingly) the initial or first
element.

The rule is interpreted to mean: "Start with the number 1 as the first element.
The next element is generated by multiplying the current element by 2." Thus, starting
with 1 as the first element, one would produce the second element by multiplying
1 by 2 to get 2. The third element would be found by taking the second element (2) and
multiplying it by 2 to get 4. The first few elements of the sequence defined by
the above rule look as follows:

S: 1, 2, 4, 8, 16, 32, ....

Note the similarity between generating a sequence in this manner and the dominoes
discussed above: the value of each successive element is found by looking only at
the value of the element preceding it; no other elements are considered. (Obviously,
though, each element depends indirectly upon all of its predecessors.) The rule here
is local.

An alternative means of defining a sequence is an explicit
rule. In this rule, each element is defined in terms of its place in line, usually
denoted n. The rule allows one to construct a sequence by specifying the value
of the nth element as a function of n. An example might be

Sn = (2)n-1.

This rule can be interpreted to mean: "To generate the nth term, raise 2 to the power
n-1." To find the first term, one would substitute 1 for n, raise 2 to the power
0, and get 1 as a result. To find the third term, substitute 3 for n, raise 2 to
the power 2, and arrive at 4. The beginning of the sequence defined by this rule would
look as follows:

S: 1, 2, 4, 8, 16, 32, ....

Note that the two sequences are the same. This exhibits an important point: starting
with very different conceptual ideas of how to generate a sequence, one can produce
exactly the same sequence. The recursive formula specified a starting number and
then gave a rule for how to arrive at the next element, given the value of the first
element. The explicit formula gave a means by which any element could be found,
without looking at the value of any other elements around it. The two formulas represent
very different ways of thinking about producing or transmitting information, the former
in a local manner, the latter in a global manner.

The key point of the above discussion is that complex behavior (i.e. a sequence of
numbers related to each other through some complicated pattern) can be generated
via a simple rule that involves only localized pieces of the system. None of the
numbers in a recursively-defined sequence 'know' what the overall rule is for the sequence.
Each number knows only its relationship to one other number--the elements are in
a sense isolated from all elements other than their immediate predecessor. Yet the
pattern is coherent from an overall viewpoint. At the same time, the pattern could have been
generated by an explicit rule, in which the guiding principle, in effect, resides
in the overall system--not in each element therein. This distinction between local
and global viewpoints is central to the thesis of this paper, and will be discussed further below.

The simplest type of cellular automata (CA) is the one-dimensional, two-state CA.
It consists of two parts: a group of cells, all in either the 0-state or 1-state,
and a rule specifying how each cell's state changes with time. The group of cells
can be thought of a long row of boxes, each containing the number 0 or 1 (hence the name
two-state.) The rule for how a cell changes (or does not change) is based entirely
upon the state of the immediate neighbors of that cell.

Whereas each sequence element was a single number, for 1-D CA each element is a row
of cells. One-dimensional CA elements are typically displayed as horizontal rows,
with the first element at the top of the page or computer screen and subsequent elements
stacked below it. The stacking allows the viewer to see the evolution of elements
over time, since lower elements are later elements--elements resulting from applying
the update rule to the cells of the row above. Cells are often displayed on a computer
screen as pixels, with the 0 state shown as white and the 1 state shown as black.

Figure 1 shows an example of a typical one-dimensional, two-state CA. (The
pattern formed by this rule/initial condition will be discussed below.) The initial condition is the first row.
Each of the cells in the first row is placed in the 0- or 1-state--in this example there exists one cell in the
1-state and all other cells are in the 0-state. The states of the cells in the second element, after the
application of the rule to the cells of the initial element, is shown in row two. The result of the application
of the rule to the second row is shown in row three, and so on. The rule for how any given cell changes in
each time step in this example is "If the cell's neighbor to the left is the same as the cell, and the cell's
neighbor to the right is the same as the cell, the cell's state becomes 0; otherwise, the cell becomes a 1."

Mathematically, one can describe this rule in terms of the sum of a cell's state and
the states of its left and right neighbors. [6] Given the sum for any given cell (which means adding the value of the cell and
its two neighbors), one can write a rule describing the state of the cell after the
next time step. For the CA pictured in Figure 1, the rule would be described in
terms of sums as

if the sum is... 0 1 2 3

...then the state of the cell becomes 0 1 1 0

The above rule, along with the state of the cells in the first row, is all one would need to know
to generate an exact copy of this picture.

Interestingly, Figure 1 is an example of a geometric shape known as a Sierpinski triangle.
A Sierpinski triangle is a triangle with the middle triangle, formed by connecting
the midpoints of the three sides removed. Repeat this process (i.e. removing the middle triangle)
on the three triangles remaining. Continue this indefinitely on
the smaller and smaller triangles remaining after each removal. The result is, after
infinite iterations, a figure in which any black point is a branching fork. Figure
1, while limited in resolution because of the large size of each cell, depicts this shape
with 1's as black and 0's as white.

The top picture in Figure 2 is an example of a Sierpinski triangle created
in the same manner, but using software [8] for which each cell is a pixel, rather than a box containing 0 or 1. The picture
is much clearer since the size of each cell (a pixel in Figure 2, rather than a box
in Figure 1) is smaller, hence the resolution is greater. As in Figure 1, the first
row in the top picture in Figure 2 was 'seeded' with one black pixel. Subsequent rows
were generated with the same rule used in Figure 1.

The bottom picture in Figure 2 was constructed using the same rule and initial conditions
as those of the top, but the process was allowed to run for a greater length of time.
After colliding into each other, the Sierpinski triangles eventually form the netted, less ordered pattern shown. The bottom picture is an image from a later time in the life of the CA shown in the
top picture; the result of applying the rule repeatedly--of numerous iterations--is
the netting pattern you see. This pattern results because of the way the cells on
the borders of the CA are defined, which is explained as follows.

Since each successive state of a cell is defined for this example in terms of its
left and right neighbors, special rules must apply at the left and right borders
of each row. This implies a choice between two alternatives. First, one could modify
the rule so that the cells on the edge refer only to their one neighbor's state in deciding
on how/if to change states; cells on the left border (row A in Figure 1)
would change states by a rule depending only upon their right neighbors (row B),
while the rule for these cells would not refer to any other cell. This presents
a problem: the rows can no longer be thought as infinite and cells no longer all
have the same rule. Edge effects due to these midified rules may interfere with the continuity
of the pattern one would see in the absence of borders.

To solve these problems, there exists a second alternative. The rule for edge cells can refer to the
opposite border cells--this is usually termed 'wraparound'. In Figure 1, cells in column A would see cells in
row AN (the rightmost column ) as their left neighbors and vice versa. Since the finite nature of any
machine or method of displaying cellular automata precludes the possibility of portraying an infinite-length
row, wraparound is in some ways a good substitute, since all cells have a right and left neighbor. As shown
in the bottom picture of Figure 2, however, the left and right borders of the image tend to collide after
many iterations and the figure will lose the true pattern it would have had if a computer were truly able to
handle an infinitely-wide CA region. For many CA rules, though, wraparound does not interfere with the
pattern formed by the cells.

An interesting question: how do the cells, each with its individual rules and each
blind to the states of cells outside of its neighborhood, 'know' enough to cut out
the middle one-fourth of every triangle, know enough to generate a Sierpinski triangle?
First we will consider the pattern along the vertical axis of symmetry, running through
the top vertex of the triangle. Note that there are horizontal rows of 1's running
the width of the Sierpinski triangle at some rows. (This stops being true because
of the wraparound effect mentioned above--the triangles wrap around, collide with each
other, and break the pattern.) Immediately below these rows of 1's there are rows
of 0's: since the sum for cells (except those near the edge of the triangle) in
the long row of 1's is 3, the rule states that cells below should be in the 0 state.

Since these rows of 1's and 0's form part of the pattern we define as a Sierpinski
triangle, the question of 'How do the cells know to form this pattern?' becomes 'When
(i.e. at which rows) do these long rows occur?' Consider a row of all 1's running
the width of the triangle and occurring at row n. This row will have 2n-1 ones, and the
row below it (row n+1) will contain 2(n+1)-5 zeroes (since long rows of 0's contain
4 fewer 0's than the width of the row), or 2n-3 zeroes. Any long row of 0's bounded
by 1's at right and left 'contracts' in width downward at a rate of 2 zeroes per row,
since the two cells immediately below the rightmost and leftmost zeroes must become
a 1 in the next generation. [10] A row of w zeroes will thus take (w+1)/2 rows
to dissipate, or contract completely.[11]

Combining the formulae in the above paragraph, one gets the following result: after
row n of all 1's, a long row of zeroes will take ((2n-3)+1)/2 rows to dissipate.
Simplifying gives n-1 rows for the 0's to dissipate. The triangle formed from 0's
just below the long row of 1's at row n will be gone by row n + (n-1). The next row of
all 1's will thus be at n+n, or 2n. This result shows that long rows of 1's form
at rows 1, 2, 4, 8, 16, ... Looked at another way, this means that triangles of
smaller and smaller height, each one-half the height of its predecessor, will be removed (i.e.
constructed out of 0's) as one nears the top vertex. It is through this process
that the cells know to remove the middle one-fourth of any triangle--since removing
the middle one-fourth involves joining the midpoints of the triangle.

A similar process occurs off the vertical axis through the top vertex, with smaller
triangles of 0's forming and dissipating as above. In a 'real' Sierpinski triangle,
the sequence ..., 8, 4, 2, 1 would be repeated into the fractions between 1 and 0:
..., 8, 4, 2, 1, 1/2, 1/4, 1/8, ... Since the cells forming the Sierpinski triangle
in Figure 1 have a finite height and width, though, the process stops at 1. Furthermore,
the wraparound effect ruins the pattern after row 19, since the left edge of the
triangle wraps around, collides with the right side, and destroys the pattern. One
does not see, for example, all 1's in row 32, as would be the case in a CA of infinite
width.

Drawing a Sierpinski triangle using CA has important resonances in information theory.
Consider the difference between describing the CA rule used to generate the triangle
in Figure 1 or 2 and describing the picture itself. The former would be much more
economical than specifying (as a computer must) the state of every pixel in a graphics
image. When I made an informal test of the memory savings on my computer, I found
that the text file containing the instruction required 26K, while the graphics file
containing the Sierpinski triangle picture took up 39K worth of memory, a savings of
13K. The graphics image is much larger, yet the instructions in the text comprise
all that one need know to exactly reproduce the image.

IV. Two-Dimensional Cellular Automata.

The chessboard is the world; the pieces are the phenomena of the universe; the rules
of the games are what we call the laws of Nature.

-- T. H. Huxley, 1870.

Where the elements of sequences were numbers and those of one-dimensional CA were
rows of cells, the elements of 2-D CA are planes of cells. Each cell can, as in
the 1-D case, exist in a finite number of states. Rules for how a cell changes in
2-D CA typically reference the north, east, south, and west neighbors of the cell, reference
the eight cells in a box around the cell, or reference nearby cells in some other
similar pattern.

Since the time evolution of 2-D CA would have to be displayed as stacks of planes
(each plane of which is an element of the automata), this type of cellular automata
is typically shown in an animated fashion; each successive element occupies the screen
as it is generated, giving the impression of animation as cells change color. A grid
of cells represents the initial states of cells (usually by assigning each state
a color) and subsequent elements are written over the original, showing how the cells
change with each time step and giving the impression of movement. Figures 3 and 4 shows
two snapshots [12] of a 2-D CA. [13]

Figures 3 and 4

Figures 3 and 4 show examples of a 2-D CA rule named 'stepping stone.' Figure 3,
showing the initial condition at time=0 (i.e. the first element), contains 256 colors
distributed randomly across the rectangle. Figure 4 is the result of applying the
rule repeatedly. The rule for each cell is as follows:

Choose a number between 0 and 1; this will be the update probability for all cells.
For each cell in the array, generate a random number between 0 and 1 at every time
step. If the random number generated for the given cell is higher than the update
probability, the color of the cell changes to that of one of its neighbors selected uniformly
at random. (Neighbor is defined as the four orthogonally adjacent cells: north,
east, south, west.) [14]

Informally, this rule dictates that cells randomly 'eat' one of their neighbors.
The image in Figure 4 has less than 256 colors, since some have been eliminated through
iteration. As with the 1-D examples above, wraparound is again used so that the
top border cells see bottom border cells as neighbors, left border cells see right border
cells as neighbors, etc.

The result of this rule is the formation of planes of single color of larger and larger
size. The interior of any region containing pixels of uniform color is stable under
this rule, since cells that eat their neighbors won't change color.
Random fluctuations, however, will enable some colors to win out over other colors. Colors will
compete in the random, initial state for regions and then, when regions have been
formed (as in Figure 3), they will compete at the edges of their regions. Interestingly,
one color will always win in the end, taking over the entire rectangle.
[15]
Since the rule involves random numbers two different colors may emerge as the eventual
winner in 2 trials, even starting with exactly the same initial condition.

One can think of the stepping stone rule as a model for competition between selectively
neutral genetic types. In fact, the stepping stone model for population ecology
goes back to the population geneticist Sewall Wright who used it for exactly this
purpose in the 1940's. [16]
A similar use of cellular automata is that of John Conway, who developed the 'Game
of Life'. Conway used 2-D cellular automata to model microorganism life. His 2-D,
2-state CA ran with rules such as "if a cell has 0 or 1 neighbors in the eight cells
bordering it, then it dies of loneliness" and "a cell surrounded by 4 or more neighbors
dies of overcrowding." [17]
Guessing which initial conditions lead to stable, periodic, or vanishing future
behavior in the Game of Life is a fascinating exercise. [18]

We now have three examples of cellular automata, with sequences included as the first.
There is a very beautiful symmetry inherent in the transition from sequences to
one-dimensional automata to two-dimensional automata. Sequences, which one could
make a strong case for labeling 'zero-dimensional cellular automata', have single numbers,
which can be thought of as points, as their constituent elements, and propagate to
form strings of numbers--lines. In the typical representation of 1-D CA, each element
is a horizontal line, and each successive iteration is another line: lines join to
form planes. Similarly, each element in the two-dimensional automata is a plane;
showing the time evolution of 2-D CA could involve stacked planes--a solid.
The various-dimension automata involve transition to increasingly higher Euclidian
dimensions, from points to lines to planes to solids. Obviously, the process could
be extrapolated infinitely, with the next case being solid (3-D) automata; each
element would be a solid, comprising a set of cubical cells, and the changes over time would
be presented as a hypersolid. This raises conceptual problems much greater than
those of the examples above. (I, quite frankly, am up past my bedtime on this.)
Luckily, there exists such a wealth of elegant and complex mathematics and behavior in the
lower-dimensional cases that restricting the scope of this paper to the these cases
leaves a large body of material from which to draw.

V. Aspects of Cellular Automata in Art

My vegetable love should grow
Vaster than empires, and more slow....
But at my back I always hear
Time's wingèd chariot hurrying near.

-- Andrew Marvell, 1681.

At one point in his book Painting Techniques of the Impressionists
, Bernard Dunston relates Camille Pissarro's advice to a young painter; Dunston calls
this "[p]robably the purest exposition of what Impressionism is all about." Since
the themes addressed in this paper above appear so prominently in this passage, it
is worth quoting at length.

Do not define too closely the outlines; it is the brushstroke of the right value
and color which should produce the drawing ... Paint the essential character of
things; try to convey it by any means whatever, without bothering about technique.
When painting, make a choice of subject, see what is lying at right and left, then work
on everything simultaneously ... [P]lace tones everywhere, with brushstrokes
of the right color and value, while noticing what is alongside ... One must always
have only one master--nature; she is the one always to be consulted.
[19]

Pissarro maintains that it is the brushstroke--the detail--out of which the painting
grows. The artist must work on all parts of the canvas at once, but concentrate
on making the individual details true to the scene before him or her. The result
will 'convey the essential character of things'. This idea is strikingly similar to the concepts
underlying cellular automata: attention to individual details (the 'rules' established
in the scene itself by nature) will bring about global results. Claude Monet expressed
this idea even more explicitly: "... Merely think, here is a little square
of blue, here is an oblong of pink, here is a streak of yellow, and paint it, just
as it looks to you, the exact color and shape, until it gives your own naive impression
of the scene." [20]

It is noteworthy that some of Pissarro's work is done in the Pointillist style. Dunston
writes of a Pissarro painting from his Pointillist period that "broad color shapes
are made up of separate, repetitious strokes, setting up a rhythm or a sense of cont
ained movement throughout the painting." [21]
Pointillist works such as those by Pissarro or Georges Seurat seem to express a
cellular automata style of thinking about art, breaking a subject down into constituent
blobs of color to render a scene or portrait. While Seurat and other Pointillists
were intent upon creating subtle color gradations and shimmering color effect in their
works, I cannot help but think that painted from a sensibility related to cellular
automata.

Figures 5 and 6 show two pictures of the actress Sharon Stone. The first is a scanned image, the second
the result of applying repeatedly the stepping stone rule to the scanned image. (David Griffeath, who wrote
the software I used here, included Sharon Stone's picture as a play on the words 'stepping stone.') As in
Figures 3 and 4, iterating the stepping stone rule has the effect of fostering competition between colors,
with larger and larger planes of color formed. Note the similarity between the latter image and an
impressionist painting. (Despite the similarity, I suspect that Renoir would have been against at the colors
in the left side of the face. [22]) In Figure 6 I especially like the way in which the light coming from the
right side of the picture is expressed through the planes of high light in the hair and background. Drawing
too much of a conclusion from these two images is, I believe, stretching an analogy too far, but the reader
will no doubt recognize some similarities between art of the late nineteenth century and the image
presented.

Figures 5 and 6

The desire of Friedensreich Hundertwasser, the Austrian-born painter and graphic artist, to find a happy
medium between rigidity and freedom in art also reflects similarities with concepts inherent in cellular
automata. Dismayed by, as Pierre Restany writes in his book Hundertwasser,
both "the rational conventionalism of the apparent geometric rigor" and "the
uncontrolled license of Tachist automatism," Hunderwasser sought a middle ground.
[23]
For him, both extremes were artistic dead ends. A such, Hundertwasser founded
the school of Transautomatism (with himself as lone member.)

Transautomatism stressed the "evolutionary slowness of vegetal-vegetative order."
[24] Hundertwasser endeavored to
think like a plant in producing his work; that is, to follow the biological
rules (as he saw them) inherent in plant growth and life. [25] "I paint flat horizontally, without
an easel," wrote Hundertwasser, "this is a vegetal, earthbound discipline. My
colored lines are like the sap rings on trees, like sediments of nature, like
organic growth." [26] Restany
describes Transautomatism as "controlled automatism compatible with biological ...
determinism." [27] Spirals play an
important role in Hundertwasser's art; he saw them as "organic, biological, and
vegetative" [28] and the antithesis
of the straight line, the ultimate symbol of all he hated about geometric rigor
in art and architecture. Interestingly, spirals are often found in 2-D cellular
automata; it is a stable pattern under many 2-D rules.

VI. Creating Cellular Automata Art

Rules and models destroy genius and art.

-- William Hazlitt, 1839.

As part of this project, I wanted to create a work developed through a CA outlook,
using some of the techniques and media from earlier class assignments. My goal was
to establish the rules and initial conditions, bury myself in the interrelationships
between 'cells' and in the details of the work, and emerge at the completion to discover
how the piece as a whole turned out. There would be no thought of any overall considerations
during the creation--I would not let my desire for balance or coherence override the local rules.
It would be as if I set up an experiment in a lab, left for the
night, and returned the next day to examine the results.

I chose printing as the medium, since the blocks I would use fit nicely into the CA
notion of cells. The inspiration for the work was a mental picture of the Big Bang,
the creation of the universe; postulating a limited number of particles and a rule
for how those particles would propagate, I would start with a small square of four blocks
in the middle of the paper and see how the surrounding blocks formed. This would
be a 1-D CA with the initial row bent around into a square. Successive rows would
be rings or 'concentric squares' around the first. I would represent time by changing
the value of one color. The darkest value of blue in the center would denote the
earliest particles, while increasingly lighter values would express the passage of
time, later and later.

I chose three different square block designs, one for each of the three states in
this 1-D CA. Each design contained arcs of some sort and touched the middle of three
or four sides of its block, thus ensuring that lines would meet up between most adjacent
blocks regardless of the arrangement of the blocks on the paper; thus large patterns
would form from the small designs. I then constructed several different rules and
proceeded, on a computer, to test the results of each one.
The three blocks shown below correspond to states 0,
1, and 2.

0 1 2

I started arbitrarily with four blocks formed in a square in the middle of the page;
this would be the big bang itself. (Figure 7 shows the development of one sketch.)
The rule for generating new blocks was as follows: add the states of a block on
an edge and its interior neighbor; the block outside it will possess state according
to the following rule:

if the sum is... 0 1 2 3 4...then the state of the block becomes 0 1 2 0 1

The drawing below illustrates the use of this rule. In addition to using the rule
to determine the state of each cell, I randomly rotated each block before placing
it on the paper. I assigned each block an arbitrary 'up' direction and rotated it
by 0, 90, 180, or 270 degrees according to a list of random numbers.

For example, to find the state of cell A, add 1+2 to get 3, and look up 3 on the table
above to get 0. Randomly pick a rotation for the cell and the result is as shown
in the picture above. Cell B's state is determined by the 0- and 1-state cells to
B's left; add to get 1 and the table gives 1 as cell B's state. Cell B's orientation
(how many times it is rotated by a quarter circle) is again determined randomly.
Each ring, starting with the one surrounding the initial four blocks, was formed
in this manner. Figure 8 shows the sketch I used to construct the actual print.

After drawing the sketches on the computer and selecting one I liked, I cut the three
blocks and printed according to the sketch. One thing I especially liked about the
print was the way large patterns and structures formed from the white lines of the
block designs, almost as if particles were combining to form different types of matter.
I was also pleased with how the designs on the block seemed to float in front of
the blocks themselves, so that the viewer could disassociate the overall pattern
of thin white lines from the 'digitalness' of the blocks. Seemingly random, there was a determinism
to the way in which the patterns were formed.

VII. Conclusion

Everything's got a moral, if only you can find it.
-- Lewis Carroll, 1865.

CA systems can generate output of amazing complexity from the repeated iteration of
simple rules. The Sierpinski triangle alone would, for me, be proof of this. 2-D
CA exhibit this property even more strikingly. [29] The variety of applications for which cellular automata are used is great, from
neural networks to modeling life to counting coal dust particles.
[30] And the manner in which information is propagated through space without physical
movement is intellectually (at least for me) intriguing.

The aspect of CA which I find most interesting though, and an idea I had not considered
before writing this paper, is the manner in which deterministic and stochastic processes
are, in a sense, reconciled. Consider the stepping stone rule. The rule for each cell is well-defined, regions of color of greater and greater area will always
form, and one color will always win out in the end. However, the random choice of
which color a cell takes on means that the end result--which color will win out--may
be different for every trial. Even in the automata with rules that are completely deterministic,
different initial conditions and the length of time for which one iterated the rule
of the automaton allow for great variety of output; witness the two images
(Figure 3) from the Sierpinski rule.

One could perhaps even extrapolate that here is a case where mathematics suggests
a reconciliation between moral absolutism and moral relativism: strict, independent
rules governing phenomena, yet allowing leeway for considerable diversity. Deriving
this from the mathematics discussed above may be a reach. Friendensreich Hundertwasser,
however, certainly saw this in art. Walking the middle ground between rigidity and
lack of any constraint did not have implications for art alone, but for how we lived
out lives:

So I venture to say that the line described be my feet as I go walking to the museum
is more important that the lines one finds hanging on the walls inside. And, I get
enormous pleasure in seeing that the line is never straight, never confused, but
has its reasons for being the way it is in every smallest part. Beware of the straight
line and the drunken line, but especially of the straight one! The straight line
leads to the loss of humanity.[31]

NOTE

[1] Perry, p. 182[2] Preston and Duff, p. 3[3] Perry, p. 182.[4] n is a variable representing an ordinal number, thus starting at 1.
The 'nth term' denotes the term occupying the nth spot in the sequence.
The n=2 term would be the second term, for example.[5] Insert the disk "B Hoke Final Project" and double click on the
"Begin Slideshow" icon to display Figure 1.
Figure 1 is an image captured from an entire screen--you'll see mac desktop items
(arrow cursor, icons).[6] A good treatment of writing rules in terms of sums can be found in Perry, pp. 181-182.[7] Click once on the play button (the right-pointing arrow) to view Figure 2.[8] "Macintosh Cellular Automata".[9] Click on the back button (left-facing arrow) to display Figure 1.[10] If this is confusing, look at Figure 1 and note that triangles formed
of 1's get bigger as one moves down the rows, while triangles composed
of 0's get smaller. 0-triangles 'lose' two 0's after each row.[11] Strictly speaking, a row of zeroes of width w will take x rows to dissipate,
where x is the least integer greater than or equal to w/2. Since the rows
in discussion here all contain odd numbers of 0's and 1's, I simplified the
formula to avoid confusion. [12] Remember that each picture is one moment in time for the CA--thus
the pictures are snapshots of the state of the CA at a given time.[13] These pictures can be generated using sstone.xpt in "WinCA".[14] "WinCA" sstone.xpt notes[15] "WinCA" sstone.xpt notes[16] www.math.wisc.edu/~griffeat/logos.html. The palette I used for
Figures 3 and 4 contained mostly biodiverse shades;
Figure 4 looks to me like competition in a deciduous forest in autumn.[17] www.research.digital.com/nsl/projects/life/rules.html[18] The World Wide Web offers many interactive pages by which the user can try
out the Game of Life. One I found particularly good was at
www.research.com/nsl/projects/life/cgi-bin/life[19] pp. 12-13.[20] Dunston, p. 46.[21] p. 75.[22] The poor color is partly due to the fact that I had to translate the
images several times between two different platforms, four different
applications, and three different file types. The original was a bit better.[23] Restany, p. 14.[24] Restany, p. 13.[25] Dorothy Wallace, lecture.[26] Restany, p. 17.[27] p. 13-14.[28] Restany, p. 25.[29] The reader wishing to browse some of the more interesting 2-D CA should
delve into David Griffeath's WWW page, found at www.math.wisc.edu/~griffeat.[30] Preston and Duff, pp. 3-4.[31] Restany, p. 14.