DNA

Dynamic Neural Art - Design Document
Version 1.0


Spring Quarter 1997 Project Team:
Project Sponsor: Alp Sendil (Manager)
Gregory Abowd Enda Sullivan (Architect) & (QA)
Bob Sumner (Programmer)
Lynn Bacher (Technical Writer)


Table of Contents
  1. High-level Architecture
  2. Architecture Rationale
  3. Design Specification
  4. User Interface
  5. Revision History


High-level Architecture

Figure 1.

The DNA project is divided into five major components:

  1. The User Interface
  2. Permanent Storage
  3. Vote Processing
  4. The Learning Algorithm
  5. The Fractal Generation

The requirements for these modules have been outlined in the Requirements Document. A graphical overview is show above in Figure 1.

The main access to our project is via a web page, the "voting" page, which is an HTML form (see User Interface below). This page resides on a web server along with the following:

The user selects their three favorite images, ranked first, second, and third, and clicks the "submit" button. When this button is activated, a CGI script takes these votes and updates the corresponding data file for the image. It then increments the vote count file. When the vote count reaches the maximum (currently at 5 votes), the "voting page" is shut down while the "learning process" takes place. The files are locked until the new generation of images is finished.

A start command is then sent to the "learning process". This program reads the nine (9) data files and the nine (9) color map files. The data files contain formulas for fractal images. The formulas are brought together to form new combinations. These new formulas are used to generate nine new images with a "fractal generator".

After the new formulas are generated, they are stored in nine (9) new .frm files. Ten processes are forked using the fractal generation program, xFractInt. The first nine are using the formula files to make the next generation of images for the voting page. The tenth run is to generate a larger image of the "winning" image. The "winner" is the image that had the highest number of votes in the previous voting session.

When then images have been created, they are saved back to the original location on the web server. The files are then unlocked, the "voting page" is refreshed, and new votes can be cast.


Architecture Rationale

Listed below are the requirements we expect our project to meet. We briefly describe how the architecture meets these requirements. For a more detailed explanation of the requirements, see the Requirements Document .

  1. FUNCTIONAL REQUIREMENTS

    1. Image Selection by the User
      1. A web page that allows a user to select, deselect, and reset their choices
      2. The user's choices are saved in a way that can be used by the learning algorithm

      The user is provided with a web page to make selections. A CGI script gathers the information a user inputs. The choices are saved in files on the web server where they can be retrieved by the learning algorithm.

    2. The Learning Algorithm
      1. Code that can take a multitude of selections from users and generate a new set of parameters for the next generation of images

      The CGI script sets up the data files so that the learning algorithm can develop the next generation of formulas. A more detailed view of the layout of these data files can be seen below. The learning process combines the data from the files and produces parameters that the fractal generator can use.

    3. Generating the Fractals
      1. Code that generates images based on explicit parameters
      2. Incorporating color into the images

      The xFractInt program was able to meet our requirements for both color and fractal generation. The color maps will be now be incorporated into the learning algorithm.

  2. NON-FUNCTIONAL REQUIREMENTS

    1. Reasonable Turnaround Time

      Our learning algorithm and fractal generation had to be placed on a separate, more powerful computer. The web server that we can access would not be able to generate ten fractal images in the time frame required.

    2. Limited Choices

      We used an HTML form to gather information from the user. The layout of the form allows the user to make only three selections.

    3. Clear and Concise Instructions

      By using a web page we are able to have simple instructions available to the user. With HTML we are also able to provide additional links to more in depth explanations.


Design Specification


User Interface

The user accesses the DNA project via a web page. The initial web page is the voting page. On the voting page, the user sees nine fractal images. From these images they are able to choose their top three favorites. They are restricted to making only three selections. They do have they ability to cast all of their votes toward one image. In Figure 1, a prototype of the voting page is shown.

Figure 1.

The user then selects their favorites by selecting the image they like under the "First Choice", "Second Choice", and "Third Choice" list boxes. When finished, the user clicks on the "submit" button. The votes are stored in files for each image. The vote count is incremented in its file. The user sees a new screen pop up. This screen tells them how many more votes are needed until a new generation of images is created.

Figure 2.

After five sets of votes have been received, the image generation process starts. A screen appears preventing the user from submitting votes. In the future, we may have a graphical version showing the generation progress.

Figure 3.

While you are waiting for the new images to generate, you can also view the history page. This page shows previous generations and the winning images from each.

Figure 4.

Once the generation is complete, the main voting page returns with new selections available to be judged. The user can now cast votes again. At the same time, the "winning" image (the one with the most votes) is sent to a separate webpage where it can be displayed for viewing.

Figure 5.

We envision a framed screen that hangs on the wall. Every hour (or sooner) a new image will be displayed.

Figure 6.


Revision History


DNA Home Page
Last Modified 5/15/97 -- C. Lynn Bacher (lynn@cc.gatech.edu)