For Virus Project 2.0 Nechvatal (with the help of his programmer/collaborator Stéphane Sikora) took Nechvatal’s 1992-3 virus project 1.0 into the realm of artificial life (i.e. into a synthetic system that exhibits behaviors characteristic of natural living systems – in his case viruses). For virus project 2.0, an A-life virus program is unleashed on image-files from Mr. Nechvatal’s recent body of work; "ec-satyricOn 2000 (enhanced)+ bodies in the bit-stream(compliant)". Also on view was a Director animation documenting Nechvatal’s Computer Virus Project 1.0 and recent digital prints by Nechvatal.

Joseph Nechvatal’s 2001 Computer Virus Project 2.0 follows along the same lines as previous viral works by Nechvatal in 1992 - works where an unpredictable progressive virus operates on a degradation/transformation of an image. Now, using a C++ framework, elements of artificial life have been introduced in that viruses are modeled to be autonomous agents living in/off the image. The project simulates a population of active viruses functioning as an analogy of a viral biological system. Here viral algorithms - based on a viral biological model - are used to define evolutionary processes which are then applied to image-files from Nechvatal’s "ec-satyricOn 2000 (enhanced)+ bodies in the bit-stream (compliant)" series. Among the different techniques used here are models that result from embodied artificial intelligence and the paradigm of genetic programming.


The Model : Notes by Stéphane Sikora / Joseph Nechvatal
The world is modeled as an image via a set of pixels. Every pixel's color is defined by R,G,B real number vectors which represent the red, green and blue components of every pixel's color.
The image world has no edges. Every square on the edge of the image is adjacent to another on the opposite edge. A virus can move around the image and impact the image world as different colors actually correspond to resources used for survival by the viruses.

The Virus’s Behavior

The behavior of a virus is modeled as a generated looping activity that is typical of situated artificial intelligence work. A virus will pick up information from its environment, decide on a course of action, and carry it out. The loop is simplified here because of the abstract character of the simulacrum. Viral instructions provide different possibilities for executing instructions according to the environmental conditions in which the virus is living.
A virus will perceive the pixel it is on and the eight adjacent ones. It can get information on its color and on the possible presence of other viruses. In order to decide on a course of action, each virus is programmed with a set of randomized instructions of different kinds; some relate to direction, others to a change in the color of the current pixel (the one the virus is in). Others control the implementation of the program and carry out tests.
Once the program has been executed, following actions to be carried out randomly arise. As the virus executes them, it moves to one of the adjacent squares and changes the current pixel. It can even reproduce itself (reproduction here results from the instruction 'divide'. A virus that carries out that instruction will produce a replica of itself - although slightly altered. Its genome-program changes with the mutation operator).
In addition to these changes, every cycle produces a change in the energy level of the virus. The virus will lose a set amount of energy with every run, and when it runs out of energy, it dies (i.e. it disappears). In order to survive, a virus needs to pick up energy, which it can only do by degrading the image. The more it changes the color of a pixel, the more energy it acquires. The difference between the color before and after is calculated.
We can see from a virus’s behavior and direction whether it will be more or less adaptable - more or less able to survive.
There is a maximum number of viruses that can be present simultaneously (usually 1000). When that number is reached, the 'divide' instruction is ignored. If the virus has enough energy it will move around randomly, otherwise it will follow its favorite color and absorb part of the red component of the pixel it is on.

The Dynamics of the System

A viral attack will generally develop as follows:
a) A world is created from an image.
b) A population of viruses is generated randomly and introduced into the image. Every virus takes on its very own behavior, as the program defines them fortuitously.
c) Once the viruses have been placed in an image, the attack can start. It will consist of a series of action cycles that will only come to an end when there is no virus left alive (or after a given time limit).
Many different dynamics can be seen that depend on the parameterization of the experiment. For example:
a) Filtering : The viruses act as local filters on the image. The modification of a pixel's color will influence the subsequent dynamics, and it can influence the virus’s demeanor and its trajectory. For example, a virus attracted by the intensity of the red component in pixels reduces the intensity of the color if it executes 'eat red' - and will tend to avoid the areas it has already visited. In order to have some control over the global effect, Joseph Nechvatal can define a set of active instructions; those which will be part of the genome program for the virus.
b) Reproduction, Evolution, and Adaptation : The instruction 'divide' will reproduce replicas of a virus (slightly different through mutation). The creation of these replicas will immediately trigger a considerable loss of energy in the virus. This means that a virus that is not capable of drawing energy from its environment will not survive much longer after it has carried out the 'divide' mandate. And so will its replicas.
On the other hand, the fact that these replicas are not identical to the original offers the possibility of examining new types of behavior.
When an adapted individual appears, it can remain in the image for quite some while. If it executes the 'divide' instruction, its descendants will most probably be equally adapted. The number of these agents will generally increase exponentially, and thereby create a large population of very active viruses.

For more information on Computer Virus Project 1.0, see: http://www2.dom.de/groebel/jnech/virusfor.html