The book Aaron's Code: Meta-Art, Artificial Intelligence, and the
Work of Harold Cohen is about an artist and his computer program. The
artist who wrote the program is Harold Cohen; the program, which creates
art, is named Aaron. The cover is lavishly decorated with a many-colored
picture that suggests two human figures in a lush field of vegetation. You
learn from the inside cover that the picture is "Meeting on Gauguin's
Beach," and that it was drawn by Aaron, the program and hand-colored
by Cohen, the human. That description would compel any computer programmer
to start reading. Once you start, you will not want to stop. Besides reading
about the wonder that is Aaron and the remarkable man who created it, you'll
find you self engrossed in a finely crafted work, thoughtful and thought-provoking,
beautifully written, and going straight to the heart of its reader as well
as its subject.
Subthemes run throughout the book: art itself; its social significance;
philosophy; artificial intelligence. But to me the book is mostly about
Cohen, a programmer; Aaron, a computer program that creates drawings; and
the consequence of Aaron's existence. I say, "to me" because Aaron's
Code exhibits the characteristics of the art that it discusses. The reader
finds--discovers, actually--its meaning, which may not coincide with what
the author means to convey. Cohen holds that art is a meaning generator
rather than a meaning communicator, and this book stands as testimony to
that idea. Given that readers are interested in the notion that a computer
can produce an original work of art, each reader will find in Aaron's Code
what he or she is inclined to find, and not everyone will draw the same
conclusions. I'm interested in computer programs and programming; this book
is, therefore, about them. I'm interested in programmers, and the book is
about one. I'm interested in the social consequences of technology; the
book is about that, too.
It is important to identify right away what Aaron is not. Aaron is not a
typical image generator of what has come to be known as "computer art."
Aaron does not generate geometric forms, certainly interesting, but infinitely
repeatable. Aaron does not produce fractals, beautiful and random, but not
representative of the items that comprise the world. Aaron is not a tool
for painters, designers, draftsmen, or animators to be used as a medium
to express the creative ideas of the human user. Instead, Aaron is a computer
program with a software interface to a hardware drawing device that creates
original pictures, each picture different from the others and each one indistinguishable
by the uninformed observer from the work of a human artist. As such, Aaron
is significant to the computer scientist as well as to the artist, because
it uses artificial intelligence to encapsulate and replicate much of the
behavior that the artist unconsciously employs to create art, an understanding
of which has eluded people ever since they first tried to understand themselves.
The programmer Howard Cohen was a successful artist, first in his native
England and then in the United States. At age 39, unsatisfied or unfulfilled
by his work, he took a one-year leave from the art world of London, a sabbatical
that he extended until it became permanent. Cohen relocated to California.
In 1968 he met Jef Raskin, a computer programmer and former Dr. Dobb's editor.
Raskin is known now for his later role in the development of the Macintosh.
Then a programmer associated with a university computer center, Raskin exposed
Cohen to a CDC computer and to Fortran and taught him the fundamentals of
programming. As happens with so many, Cohen was taken with the power and
potential of programming, and he pursued it, apparently as a hobby, although
he started several years before computer hobbyists were commonplace. There
were no personal computers then, and computer time on mainframe and minicomputers
was generally inaccessible.
Cohen's interest in computer programming complemented his quest to understand
the process by which the artist uses what he knows in order to paint. He
assumed that if he could use a computer to model that behavior, he could
then come to understand it. The first version of Aaron was the result, and
it simulated the artist's creative behavior by storing and applying certain
rules of construction and representation as specified by Cohen. Aaron was
the artist and Cohen the meta-artist, and Aaron's development progressed
from the first stage, which could draw simple shapes without apparent meaning,
perspective, or spatial relationships, to the current version, which creates
figurative, three-dimensional drawings of things that the observer recognizes,
such as people, rocks, and plants. The book traces this progression and
intersperses many relevant discussions of the underlying philosophies and
consequences of such a project.
The programming reader will find much with which to relate in Aaron's
Code. We will ask questions, too, about issues that McCorduck does not
address--or, at least, not adequately for us. Cohen wrote the first version
of Aaron in Fortran on the CDC 3200. It is amusing to read of his discovery
that batch debugging by passing card decks through the window to an unseen
computer was less than productive. He solved the problem by getting hands-on
access to a Data General Nova. Subsequent machines included the PDP-11 and
VAX, with the current implementation a Micro-VAX. Sometime during those
ports he switched from Fortran to the C language, which McCorduck calls
a "trifle obsolescent." Today, all new development is proceeding
in LISP on a donated LISP machine, reflecting the program's roots in artificial
intelligence. All these ports suggest a revealing but unrevealed study in
portability. We can assume that Cohen ran into obstacles moving the program
among languages and computers. We would like to hear about some of them,
but this book does not go in that direction, being more concerned about
Aaron the result than the problems of its creation.
It is not clear how extensively Cohen studied programming as a discipline
beyond what he needed to learn to develop Aaron. He seems to have independently
discovered certain established tenets of artificial intelligence, learning
later that disciplines already exist that have covered those bases comprehensively.
Nonetheless, a passage in the chapter titled, "Art and Science"
implies that someone, either McCorduck or Cohen, understands the basis of
object-oriented technology at a conceptual level at least. Here is what
McCorduck says about the search in artificial intelligence for the principles
of behavior:
Among the first such principles proposed is that intelligence lies in the ability to process symbols. For science, definitions must be precise; a symbol is an entity capable of carrying denotation and connotation; a symbol system is a collection of patterns and processes, the processes capable of producing, destroying, and modifying the symbols. The most important property of patterns is that they are able to designate objects, processes, or other patterns. When patterns designate processes, they can be interpreted. Interpretation implies carrying out the designated processes--in short, action. All this is made manifest in programming a computer.Subsequent discussions on the hierarchical nature of Aaron's code reveal a programming model that resembles structured code. It might not really be structured--we don't get to see any of the code to verify it--but the hierarchy that Cohen describes suggests structure, whether he knew about and conscientiously applied the discipline, or simply "discovered" again the programming model that best fit his requirements.