There is more than one way to organize an open genome. In 1990,
Karl Sims took advantage of the supercomputing power of the CM2 to
devise a new type of artificial world formed by genes of unfixed length,
a world much improved over his botanical-picture world. Sims
accomplished this trick by creating a genome composed of small equations
rather than of long strings of digits. His original library of fixed
genes each controlled one visual parameter of a plant; his second
library held equations of variable and open-ended length which drew
curves, colors, forms and shapes.
Sims's equation -- genes were small self-contained logical units of a
computer language (LISP). Each module was an arithmetical command such
as add, subtract, multiply, cosine, sine. Sims called these units
"primitives" -- a logical alphabet. If you have a suitable primitive
alphabet you can build all possible equations, just as with the
appropriately diverse alphabet of sounds you could build all spoken
sentences. Add, multiply, cosine, etc., can be combined to generate any
mathematical equation we can think of. Since any shape can be described
by an equation, this primitive alphabet can make any picture. Adding to
the complexity of the equation will subtly enlarge the complexity of the
resulting image.
There was a serendipitous second advantage to working with a library of
equations. In Sims's original world (and in Tom Ray's Tierra and Danny
Hillis's coevolutionary parasites), organisms were strings of digits
that randomly flipped a digit, just as books in the Borgian Library
altered by one letter at a time. In Sims's improved universe, organisms
were strings of logical units that randomly flipped a unit. This would
be like a Borgian Library where words, not letters, were flipped. Every
word in every book was correctly spelled, so every page in every book
had a more sensible pattern. But whereas the soup for a Borgian Library
based on words would necessitate tens of thousands of words in the pot
to begin with, Sims could make all possible equations starting with a
soup of only a dozen or so mathematical primitives.
Yet, the most revolutionary advantage to evolving logic units rather
than digital bits was that it immediately moved the system onto the road
toward an opened-ended universe. Logic units are functions themselves
and not mere values for functions, as digital bits are. By adding or
swapping a logical primitive here or there, the entire functionality of
the program shifts or enlarges. New kinds of functions and new kinds of
things will emerge in such a system.
That's what Sims found. Entirely new kinds of pictures evolved by his
equations and painted themselves onto the computer monitor. The first
thing that struck him was how rich the space was. By restricting the
primitives to logical parts, Sims's LISP alphabet ensured that most
equations drew some pattern. Instead of being full of muddy gray
patterns, there were astounding sights almost wherever he went. Just
dipping in at random landed him in the middle of "art." The first
screen was full of wild red and blue zigzags. The next screen pulsated
with yellow hovering orbs. The next generation yielded yellow orbs with
a misty horizon, the next, sharpened waves with a horizon of blue. And
the next, circular smudges of pastel yellow color reminiscent of
buttercups. Almost every turn reeled in a marvelously inventive scene.
In an hour, thousands of stunning pictures were roused out of their
hiding places and displayed to the living for the first and last time.
It was like watching over the shoulder of the world's greatest painter
as he sketched without ever repeating a theme or pattern.
While Sims selected one picture, bred variations of it, and then
selected another, he was not only evolving pictures. Underneath it all,
Sims was evolving logic. A relatively small logic equation drew an
eye-boggling complex picture. At one point Sims's system evolved the
following eight lines of logic code:
(cos (round (atan (log (invert y) (+ (bump (+ (round x y) y) #(0.46 0.82
0.65) 0.02 #(0.1 0.06 0.1) #(0.99 0.06 0.41) 1.47 8.7 3.7) (color-grad
(round (+ y y) (log (invert x) (+ (invert y) (round (+ y x) (bump
(warped-ifs (round y y) y 0.08 0.06 7.4 1.65 6.1 0.54 3.1 0.26 0.73 15.8
5.7 8.9 0.49 7.2 15.6 0.98) #(0.46 0.82 0.65) 0.02 #(0.1 0.06 0.1)
#(0.99 0.06 0.41) 0.83 8.7 2.6))))) 3.1 6.8 #(0.95 0.7 0.59) 0.57)))
#(0.17 0.08 0.75) 0.37) (vector y 0.09 (cos (round y y)))))
When fleshed out on Sims's color monitor, the equation painted what
seems to be two sheets of icicles backlit by an arctic sunset. It's an
arresting image. The ice is molded in great detail and translucent, the
horizon in the background abstract and serene. It could have been
painted by a weekend artist. As Sims points out, "This equation was
evolved from scratch in only a few minutes -- probably much faster than it
could be designed."
But Sims is at a total loss to explain the logic of the equation and why
it produces a picture of ice. It looks as cryptic and muddled to him as
to you. The equation's convoluted reason is beyond quick mathematical
understanding.
continue...
|