Possible Futures in Computer Art Generation
Ing. Owen F. Ransen.
Computer Graphics
and CAD consultant, San Giorgio su Legnano, Italy.
e-mail: owen@ransen.com
Abstract
Years of trying
to create an "Image Idea Generator" program have convinced me that
the perfect solution would be to have an artificial artistic person, a design
slave. This paper describes how I came to that conclusion, realistic
alternatives, and briefly, how it could possibly happen.
1.1 Repligator
In 1996 I had the idea of creating an “image
idea generator”. I wanted something which would create images out of nothing,
but guided by the user. The biggest conceptual problem I had was “out of nothing”.
What does that mean? So I put aside that problem and forced the user to give
the program a starting image. This program eventually turned into Repligator,
commercially described as an “easy to use graphical effects program”, but
actually, to my mind, an Image Idea Generator.
The first release came out in October 1997. In
December 1998 I described Repligator V4 [1] and how I thought it could be
developed away from simply being an effects program.
In July 1999 Repligator V4 won the Shareware
Industry Awards Foundation prize for "Best Graphics Program of 1999".
Prize winners are never told why they won, but I am sure that it was because of
two things:
1) Easy of use
2) Ease of experimentation
"Ease of experimentation" means that
Repligator does in fact come up with new graphics ideas. Once you have input
your original image you can generate new versions of that image simply by
pushing a single key.
Repligator is currently at version 6, but,
apart from adding many new effects and a few new features, is basically the
same program as version 4.
Following on from the ideas in [1] I started to
develop Gliftic, which is closer to my original thoughts of an image idea
generator which "starts from nothing". The Gliftic model of images
was that they are composed of three components:
1.
Layout
or form, for
example the outline of a mandala is a form.
2.
Color
scheme, for example
colors selected from autumn leaves from an oak tree.
3.
Interpretation, for example Van Gogh would paint a
mandala with oak tree colors in a different way to Andy Warhol. There is a Van
Gogh interpretation and an Andy Warhol interpretation.
Further I wanted to be able to genetically
breed images, for example crossing two layouts to produce a child layout. And the
same with interpretations and color schemes. If I could achieve this then the
program would be very powerful.
1.2 Getting to Gliftic
Programming has an amazing way of crystalising
ideas. If you want to put an idea into practice via a computer program you
really have to understand the idea not only globally, but just as importantly,
in detail. You have to make hard design decisions, there can be no vagueness,
and so implementing what I had decribed above turned out to be a considerable
challenge.
I soon found out that the hardest thing to do
would be the breeding of forms. What are the "genes" of a form? What
are the genes of a circle, say, and how do they compare to the genes of the
outline of the UK? I wanted the genotype representation (inside the computer
program's data) to be directly linked to the phenotype representation (on the computer screen). This seemed to be
the best way of making sure that bred-forms would bare some visual relationship
to their parents. I also wanted symmetry to be preserved. For example if two
symmetrical objects were bred then their children should be symmetrical.
I decided to represent shapes as simply closed
polygonal shapes, and the "genes" of these shapes were simply the
list of points defining the polygon. Thus a circle would have to be represented
by a regular polygon of, say, 100 sides. The outline of the UK could easily be
represented as a list of points every 10 Kilometers along the coast line.
Now for the important question: what do you get
when you cross a circle with the outline of the UK? I tried various ways of
combining the "genes" (i.e. coordinates) of the shapes, but none of
them really ended up producing interesting shapes. And of the methods I used,
many of them, applied over several "generations" simply resulted in
amorphous blobs, with no distinct family characteristics. Or rather maybe I
should say that no single method of breeding shapes gave decent results
for all types of images.
Figure 1 shows an example of breeding a mandala
with 6 regular polygons:
Figure 1
Mandala bred with array of regular polygons
I did not try out all my ideas, and maybe in
the future I will return to the problem, but it was clear to me that it is a
non-trivial problem. And if the breeding of shapes is a non-trivial problem,
then what about the breeding of interpretations?
I abandoned the genetic (breeding) model of
generating designs but retained the idea of the three components (form, color
scheme, interpretation).
1.3 Gliftic today
Gliftic Version 1.0 was released in May 2000.
It allows the user to change a form, a color scheme and an interpretation.
The user can experiment with combining
different components together and can thus home in on an personally pleasing
image. Just as in Repligator, pushing the F7 key make the program choose all
the options. Unlike Repligator however the user can also easily experiment with
the form (only) by pushing F4, the color scheme (only) by pushing F5 and the
interpretation (only) by pushing F6. Figures 2, 3 and 4 show some example images
created by Gliftic.
Figure 2
Mandala interpreted with arabesques
Figure 3
Trellis interpreted with "graphic ivy"
Figure 4
Regular dots interpreted as "sparks"
1.4 Forms in Gliftic V1
Forms are simply collections of graphics primitives
(points, lines, ellipses and polygons). The program generates these collections
according to the user's instructions. Currently the forms are: Mandala, Regular
Polygon, Random Dots, Random Sticks, Random Shapes, Grid Of Polygons, Trellis,
Flying Leap, Sticks And Waves, Spoked Wheel, Biological Growth, Chequer
Squares, Regular Dots, Single Line, Paisley, Random Circles, Chevrons.
1.5 Color Schemes in Gliftic V1
When combining a form with an interpretation
(described later) the program needs to know what colors it can use. The range
of colors is called a color scheme. Gliftic has three color scheme types:
1.
Random
colors: Colors for the various parts of the image are chosen purely at random.
2.
Hue
Saturation Value (HSV) colors: The user can choose the main hue (e.g.
red or yellow), the saturation (purity) of the color scheme and the value
(brightness/darkness) . The user also has to choose how much variation is
allowed in the color scheme. A wide variation allows the various colors of the
final image to depart a long way from the HSV settings. A smaller variation
results in the final image using almost a single color.
3.
Colors
chosen from an image: The user can choose an image (for example a JPG file of a
famous painting, or a digital photograph he took while on holiday in Greece)
and Gliftic will select colors from that image. Only colors from the selected
image will appear in the output image.
1.6 Interpretations in Gliftic V1
Interpretation in Gliftic is best decribed with
a few examples.
A pure geometric line could be interpreted as:
1) the branch of a tree
2) a long thin arabesque
3) a sequence of disks
4) a chain,
5) a row of diamonds.
An pure geometric ellipse could be interpreted
as
1) a lake,
2) a planet,
3) an eye.
Gliftic V1 has the following interpretations:
Standard, Circles, Flying Leap, Graphic Ivy, Diamond Bar, Sparkz, Ess Disk,
Ribbons, George Haite, Arabesque, ZigZag.
1.7 Applications of Gliftic
Currently Gliftic is mostly used for creating
WEB graphics, often backgrounds as it has an option to enable
"tiling" of the generated images. There is also a possibility that it
will be used in the custom textile business sometime within the next year or
two.
The real application of Gliftic is that of
generating new graphics ideas, and I suspect that, like Repligator, many users
will only understand this later.
Completing Gliftic V1 gave me the experience to
understand what problems and opportunities there will be in future development of
the program. Here I divide my many ideas into three oversimplified
possibilities, and the real result may be a mix of two or all three of them.
2.1 Continue the current development
"linearly"
Gliftic could grow simply by the addition of
more forms and interpretations. In fact I am sure that initially it will grow
like this. However this limits the possibilities to what is inside the program
itself. These limits can be mitigated by allowing the user to add forms (as
vector files). The user can already add color schemes (as images).
The biggest
problem with leaving the program in its current state is that there is no easy
way to add interpretations.
2.2 Allow the artist to program Gliftic
It would be interesting to add a language to
Gliftic which allows the user to program his own form generators and
interpreters. In this way Gliftic becomes a "platform" for the
development of dynamic graphics styles by the artist. The advantage of not
having to deal with the complexities of Windows programming could attract the
more adventurous artists and designers. The choice of programming language of
course needs to take into account the fact that the "programmer" is
probably not be an expert computer scientist.
I have seen how LISP (an not exactly easy
artificial intelligence language) has become very popular among non programming
users of AutoCAD. If, to complete a job which you do manually and repeatedly,
you can write a LISP macro of only 5 lines, then you may be tempted to learn
enough LISP to write those 5 lines.
Imagine also the
ability to publish (and/or sell) "style generators". An artist could
develop a particular interpretation function, it creates images of a given
character which others find appealing. The interpretation (which runs inside
Gliftic as a routine) could be offered to interior designers (for example) to
unify carpets, wallpaper, furniture coverings for single projects. As Adrian
Ward [3] says on his WEB site: "Programming is no less an artform than
painting is a technical process."
Learning a computer language to create a single
image is overkill and impractical. Learning a computer language to create your
own artistic style which generates an infinite series of images in that style
may well be attractive.
2.3 Add an artificial conciousness to Gliftic
This is a wild science fiction idea which comes
into my head regularly. Gliftic manages to surprise the users with the images
it makes, but, currently, is limited by what gets programmed into it or by pure
chance. How about adding a real artifical conciousness to the program? Creating
an intelligent artificial designer? According to Igor Aleksander [1]
conciousness is required for programs (computers) to really become usefully
intelligent. Aleksander thinks that "the line has been drawn under the
philosophical discussion of conciousness, and the way is open to sound
scientific investigation".
Without going into the details, and with great
over-simplification, there are roughly two sorts of artificial intelligence:
1) Programmed intelligence, where, to all intents
and purposes, the programmer is the "intelligence". The program may
perform well (but often, in practice, doesn't) and any learning which is done
is simply statistical and pre-programmed. There is no way that this type of
program could become concious.
2) Neural network intelligence, where the programs
are based roughly on a simple model of the brain, and the network learns how to
do specific tasks. It is this sort of program which, according to Aleksander,
could, in the future, become concious, and thus usefully intelligent.
What could the advantages of an artificial
artist be?
1) There would be no need for programming.
Presumbably the human artist would dialog with the artificial artist, directing
its development.
2) The artificial artist could be used as an
apprentice, doing the "drudge" work of art, which needs intelligence,
but is, anyway, monotonous for the human artist.
3) The human artist imagines "concepts",
the artificial artist makes them concrete.
4) An concious artificial artist may come up with
ideas of its own.
Is this science fiction?
Arthur C. Clarke's 1st Law: "If
a famous scientist says that something can be done, then he is in all
probability correct. If a famous scientist says that something cannot be done, then he is in all
probability wrong".
Arthur C Clarke's 2nd Law:
"Only by trying to go beyond the current limits can you find out what the real limits are."
One of Bertrand Russell's 10 commandments:
"Do not fear to be eccentric in opinion, for every opinion now accepted
was once eccentric"
1.
"From
Ramon Llull to Image Idea Generation".
Ransen, Owen. Proceedings of the 1998 Milan First International
Conference on Generative Art.
2.
"How
To Build A Mind" Aleksander, Igor. Wiedenfeld and Nicolson, 1999
3.
"How
I Drew One of My Pictures: or, The Authorship of Generative Art" by Adrian
Ward and Geof Cox. Proceedings of the 1999 Milan 2nd International Conference
on Generative Art.