Jeff Zia and Sam Mateosian
Genetic programming is frequently used to ``evolve'' formulas which are too complex to design by any one human mind. Several individuals applied these same methods to the problem of creating visual images. The application of the process of evolution to the creation of art has generated incredible results. We hope to build upon the work of these individuals to extend the field of evolutionary art.
We will develop a system by which images based on a genetic code will mutate and mate and by the force of human selection, evolve. Though this is not a new idea, it will serve as the foundation for our work.
The second portion of our work will be to create a networked environment in which many human participants provide the force of selection by which a community of individual images evolves. It is this cooperative aspect which we hope will provide new results and consequently room for further inquiry into the field of evolutionary art.
By simulating natural selection based on aesthetics, it is possible to reach a level of sophistication that seems to imply conscious design- this has been done before. However, in past experiments a single artist played the role of an animal breeder, or a God of sorts in that he has had the sole active guiding hand in the process. The artist has preconceived ideas of what he intends to create and consequently guides the images in that direction. What would happen, then, if we remove this guiding force? We plan to find out if it is still possible to generate art of a comparable level of sophistication.
We intend to use the input of many human commentators to determine the aesthetic fitness of individuals who belong to a community common to all participants. In doing so, no one individual participant can control the evolutionary direction of the community of images as a whole.
Because individual images now need to stand up to multiple factors of selection we expect that the resulting community of images will be more universally pleasing than the results of our predecessors.
One of the primary decisions we had to make was how we were going to represent genetic code which could describe a visual image. Essentially there are two basic approaches to the problem. One involves describing a parameter set in which each parameter controls some aspect of the image being described. In this case the genetic code is simply the list of parameter values. To "grow" an image we simply take those values and plug them into a predetermined function.
The alternate approach involves genetic code which describes an image by including the function as well as the parameters. In this case we have a library of available operations which can be combined in any sequence. Each operation takes one or more variables, and in some cases other operations, as parameters. Once we have a symbolic expression of this sort it is given to an interpreter which then generates the resulting image. We chose to implement the second approach simply because it allows for an infinite number of possible combinations. There are only a finite number of combinations for any parameter set of static length. This, we felt, was too limiting. With symbolic expressions the possibilities are endless. To aid the evolution of this genetic material we will implement a number of methods by which these symbolic expressions can mutate and even mate. The exact details are too lengthy to go into at this point. For those interested in more specifics, we are essentially implementing the technique Karl Sims describes in his 1991 SIGGRAPH paper, "Artificial Evolution for Computer Graphics" (Computer Graphics, Volume 25, Number 4)
We have chosen (with some amount of certainty) to use Java as the development platform for this project. The main drawback to this choice is the lack of built in imaging capabilities a more sophisticated language may have. That is not to say that it is not possible as we have seen some stunning examples of complex graphic effects implemented in Java. The advantages gained in distributability and platform independence outweigh the negative aspects.
One of the first problems we must solve is that of writing the actual code which does the work of all the various operations involved in the genetic code. If one operation is, for example, blur(Image img, int blurAmount), we must write the equivalent Java code which performs that operation on a given bitmap. Much of this work already exists in some form or another, hopefully this step will mostly entail commandeering preexisting code.
Additionally we intend to implement Sims' mechanisms for the generation, mutation of mating of symbolic expressions ourselves. Though, as new-comers to genetic programming, it will most likely prove highly challenging and time consuming, the learning experience will be a lucrative one.
The other major technical challenge lies in the creation of the networked environment in which we take the input of multiple users and apply it to a single common community of images.
The solution we have decided upon is based on the standard client/server model. On the server machine, we maintain a database of all individuals currently alive. When a user connects using our distributed client applet, the applet accesses the database and selects several individuals at random. The selected individuals are displayed by the client on the users screen at which time the user makes decisions as to the aesthetic fitness of the given images. The results of those decisions are then relayed back to the server, those images who receive enough votes against them die, thus the power of selection is exerted.
All mating and genetic mutations occur on the server. Mating preference is given to those individuals deemed more fit, a property which is determined again through user input. Additionally the server keeps track of the age of all individuals. Individuals of a certain age are destroyed in order to create the effect of natural death and maintain a stable population size.
The client/server solution is particularly well suited to this problem. It require few resources as the server need only maintain the genetic code for each individual while all image processing is done by the client applet. It will be fast as all interactions require only a very small bandwidth. The server is only sending a small text string to transfer the genetic code and is only receiving a minimal amount of input from any given client. Furthermore it is efficient in that it shares processing with the client. The client applet doesn't have to waste time generating the complex symbolic expressions, the server doesn't have to worry about generating, displaying or saving actual image files. All in all, a seemingly elegant solution.
In general the technical requirements of this project are great. One of the most interesting characteristics of this project is in the fact that it requires learning skills in so many different technical areas, from genetic programming, to mathematical image manipulation, to networking, to user interface design.
Once the program is in place, we will set up at least 3 testing environments for comparison.
One such environment will be contained, timed and observed. We will make use of at least one "control group", which will be hand picked based on some common feature (ex. Major, interest...etc.) and will participate in the process of evolving art for a set amount of time. The results of this trial will be compared with the results of other trials (again involving participants chosen by hand or at random) and with the results of trials performed in different environments. A second environment will be one void of any human participant. Because mating and mutating occur independent of user input (though it then lacks the discretion provided by selection, i.e. all individuals are equally likely to mate) we can simply allow the program to run for a given amount of time and then display the resulting community of images. A third environment is one which the client applet will be set up on several computers across campus, and any one at any given time could sit down and interact with the community of images.
We speculate that in grouping by common interests a pattern emerges from the final collection of images produced by that interest group. By running more trials using more hand-picked groups we hope to see separate and distinct patterns emerging from each group. At the same time we speculate that there will be visual elements common to all groups, representing what Steven Rooke refers to as an "archetype camera."
The unassisted run should get fairly random results, producing images which lack any properties of conscious design. Also, without a user to prune the path of growth, this process might be too slow to bring about change. That which we suspect will produce the most sophisticated images of all is the open-ended case, which allowed anyone to sit and participate. Since each image will have to survive through changing demands as many different users try the program. We will look for continuity among the end results of all trials. This way we would be able to determine if the elements of visual image which people find aesthetically pleasing do have a converging point.
Visual sophistication is a very difficult concept to define. As something could be very complex, but not very sophisticated (as a grid of squares on graphing paper). At the same time, an image could be a very simple form, but be composed in sophisticated manner (juxtaposition for example). How can we possible measure a "level of sophistication"?
Furthermore it is not simply the great hand-eye coordination of an artist which allows him or her to create art. We presuppose an intelligent designer when viewing a work of art, we try to decipher his or her "meaning" or "intent." Is it possible for art to exist for which there is no such designer?
These questions and many more will challenge our ability to draw conclusive results from such an experiment. This is not at all to say such an inquiry would be futile, it should provide numerous insights into human conceptions of art and what is visually pleasing. What will likely arise is a fertile ground for further inquiry.
It is our hope that through the creation of the system we have described we will open up pathways for further exploration of evolutionary art. We see the possibility for a great deal to be learned about the nature of those forms to which all of mankind seem drawn. There is also a good deal to be learned about the nature of evolutionary processes to take on the appearance of consciousness ones. Which gets us to the real point of this conclusion. From all of this, from the aspects of programming to the process of scientific inquiry, we hope simply to learn... something. We exist in a world which is constantly evolving, in order to survive we must be able to change ourselves, we must move and adapt... we must learn.