Generating Artworks Using Previous Created Image as Coloring Palette
B. Soban, BSc
Freelance Generative Artist.
e-mail: firstname.lastname@example.org, www.soban-art.com
The image is one of the most frequent results of any computer method dealing with artificial creativity. The result of the generative art approach used in architecture, industrial design or art is an image on the screen with its form and color properties. The role of the color is important especially in the area of visual art. The artist influence on computer generated artwork could be within the range of values from zero to one. Low influence level requires the use of computational methods to define basic elements of an artwork. To define the colors of a picture, a large number of coloring methods are used and one of the most frequent is to apply a color map or color palette. To use a previous generated image as a coloring palette could be one of non-usual approaches in the field of art.
In the beginning of the paper some basic information about color systems and coloring algorithms are presented. Then it follows a short description of the program, which was developed with the intention to realize the basic idea of the paper with the accents to its main properties. The experiment results are described in five cases with image-palette used and selected examples of generated images. In the end there are gathered some statement concerning the relationship between the calculating algorithm and outside coloring palette and their influence over the generated artwork.
Generative art as the creative method offers different approaches how to realize the basic mission of the idea of artificial creativity. The program code as the human creation, which causes the process resulting in a machine creation is the most important element of the generative method. Different coding types enable different processes and different results. One point of view could be the range of human intervention from outside during the process, which defines the interactivity level of the program. In this case the user of the program could have high influence to the final result. The next point of view is predetermination of generated results and in this case the pragmatic or algorithmic programming approach is discussed. The pragmatic concept is much more useful in the area of industrial design or architecture where the author of the program has very precise idea of the artificial object which could be produced. In this case the process has the task to find the best variation of the previous ideated result. The algorithmic concept leaves much more freedom to the machine and is usually time depending. Absolutely unpredictable results could be use only as artwork applying serious selection. In the case of artwork production the very important part of the program code is coloring algorithm. Very often authors use their own algorithms to define the color of the pixel as the final result of the basic program cycle. The purpose of this paper is to analyze all coloring possibilities and to make the comparison between them and the idea of using an image as the coloring palette.
Since computers were able to produce color output the graphic software development has increased extremely. Nowadays the SW market offers a huge of graphic programs for design and artwork production. To use all these wonderful tools or even to develop ones own programs it is necessary to know and to understand color as natural phenomena and color as coding systems, which could be used to create graphic outputs.
Color is all around us, and the world without color would be a much less beautiful. Visible light spectrum is only a small portion of the electromagnetic energy spectrum. At one end of the visible spectrum there is red and at the other there is blue color. All the other are somewhere along the spectrum between blue and red . In the middle of the spectrum there is green color. Those three colors (red, green, blue or RGB) are the predominant colors called primary colors. By mixing pairs of primary colors we get cyan, magenta and yellow (CMYK) as secondary colors. The last “K” means black as the mixture of cyan, magenta and yellow.
RGB is additive color system that means producing color by mixing light (screen case). CMYK is subtractive color system that means to produce color by mixing paint (printer case). To use colors inside programs is absolutely necessary to know colors code system. RGB code has three component values from 0 to 255. The next is hexadecimal color code system which is derived from RGB system and is used in HTML programming. Both systems, RGB and hexadecimal, can display 16.7 million different colors depending of the capability of used computer HW and SW platform. One of the possibility to see the comparison between mentioned code system, is to visit Visibone web page where are beside the color name, listed values for RGB, CMYK and hexadecimal systems for selected color .
Some color codes overview for programming use:
- QBCOLOR: one-argument VB function which displays 15 different colors (values from 0 to 15)
- RGB color code: three-argument VB function for red, green and blue (values from 0 to 255)
- VB color code: one-argument function (values from 0 to 16.777.215)
- HEX color code (HTML code): RGB components expressed by hexadecimal numbers (values form 000000 to FFFFFF)
The conversion from one color code to another is often used programming routine.
The mode how to define the color of the pixel is the most important phase inside the process of image generating. Within the algorithmic approach usually the image form is not defined inside the program code but it is consequence of the pixel color combination. This is the reason that is nearly impossible to predict the image type before the first successful run of the algorithm. The pixel color is the result of less or more complex mathematical calculus called coloring algorithm or coloring formulas. By the time some typical methods has been discovered such as iteration systems, strange attractors concept, recursion mode and iteration of complex polynomials . The iteration of complex polynomials has been widely experimented by the fractal art community. Any author can experiment with his own mathematical formulas and procedures to obtain his personal art style.
Technically there are two different types of coloring formulas: index based and direct coloring formulas. Index based coloring formulas return a floating-point number, which acts as an index into the color map or color palette and the color is not specified directly. The color map could be created inside the program or could be imported from outside. Direct coloring formulas calculate the color for each pixel directly . In this case the coloring algorithm produces a single value for each pixel. Since color is a three-component item, this one-dimensional value must be expanded into three values using additional mathematical calculus.
As mentioned before the great part of researches and experiments of coloring algorithms use, has been done by authors of fractal programs. The most known and used is the escape-time algorithm, which is often the only option available in some fractal generators . Its simplicity makes it a favorite for those who learn to develop fractal software. The algorithm itself is based on the number of iterations necessary to determine whether the orbit sequence tends to infinity or not. When the orbit of any value of complex number set exceeds a defined border region, it always diverged towards infinity. If the orbit sequence is stopped as soon as iterated number is outside the border region, then the coloring value for the escape-time algorithm is simply the number of iterations. In the case when iterated number converges the coloring value for the escape-time algorithm is the maximum of iterations defined in the program loop. Integer value as the number of iterations produces a banding effect similar to contour lines of topographic survey maps. So the artists have explored algorithms to hide this effect by using continuous coloring algorithms. To get more complex results is possible to use different region shapes, so called orbit traps. Many authors have created their own collections of coloring algorithms using traps as circles, ellipses, triangles, stars, squares and other geometrical shapes .
To present and realize the idea of using previous generated image as coloring palette I have developed an experimental program. It is about 70 KB, object oriented Visual Basic exe including presentation and demonstration part. The presentation part uses slide concept with some examples of created images attached. The demonstration part makes possible a real-time image generation using the basic idea of the present paper with short explanation of the procedure. The main concept of the program is to apply multilevel deformation of basic Mandelbrot fractal calculus using outside coloring palette.
The first level of fractal calculus deformation could be expressed with equation:
z(n) = z(n+1)˛ + c * def1
def1 = F(zi,zr,ci,cr,r1,r2,r3,n1)
zi, zr, ci, cr are current values of real and imaginary components
r1, r2, r3 are current distances between actual pixel and previous defined points
n1 is actual iteration value
The second deformation level is applied after getting the escape value of current pixel:
n = n * def2
def2 = F(n,r1,r2,r3,rmax)
n is final iteration value for current pixel
r1, r2, r3 are current distances between actual pixel and previous defined points
rmax is the distance between actual pixel and the most distant point
In the both cases for the function F, different mathematical expressions and trigonometric functions are used besides some random factors defined for the actual program cycle. Value n defines the position on the outside palette - previous generated image - from where the color of actual pixel is picked up. To get more complex results the value n could define the point on the line, sine curve, circle, spiral, or other curve. For this experiment I chose the sine curve with vertical-horizontal option as the color pick-up region.
Program window is designed for the resolution 1024 x 768. The upper left corner is designed for the new image in two dimensions. The purpose of the lowest one is to select a good example, the highest one is an extend version of chosen image. Lower part of the screen is designed for image-palette and different command buttons (new image, image-palette selection, change magnification, etc). For the presentation version of the program, the right side of the screen is designed for short explanation of the approach. On the figure 01 there is screenshot of the program window.
Here are listed the main possibilities of the demonstration part of the program:
- Selection of image-palette
- Selection of the magnification factor
- Selection of horizontal/vertical palette elaboration
- Selection of fractal calculus type
- Start of new creative cycle and repeat the action until good example
- Open selected example in large window
- Discover actual image changing position and magnification
- Repeat the whole cycle using the same image (the same calculation)
- Zoom-in and zoom-out in the image central position
- Change the position of palette elaboration
- Change image-palette within the same cycle
- Recreate actual image using an other palette
- Cut a part of actual image and past it into palette
- Generate new palette in real time
For the experiment I chose five palette groups:
- Standard coloring palette (two images with different gradients type)
- Computer generated image – old: (four examples created some years ago)
- Computer generated image – new: (three examples from recent time)
- World known artwork: (Jackson Pollock – name, year)
- Photography: (nature and interior hotel room design)
The use of the program is simple on account of the friendly command interface (buttons with described actions) and of the short procedure explanation on the right side of the screen. After palette selection the program starts clicking on “new” button and in a small image appears on the upper left corner of the screen. The action has to be repeated until the image seems enough good to continue the experiment. Click on “600 x 480” button opens the same image in larger window. Now is the moment to select an interesting region on the image and click on it. This is the only interactive action, which has significant influence to the upcoming image. Depending on selected palette and magnification a new image appears, which is not at all similar to the previous one. The fractal self-similarity is reduced to minimum because of the use of deformation factors as mentioned above. Discovering action could be repeated until the result gives certain satisfaction in the sense of beauty and aesthetic. Additional possibility is to redesign the existing image using another palette. The results not differ only in colors but in the sense of forms too. To keep the identity of actual image, a part of it could be used as a palette for the next one. In this case the self-similarity is absolutely canceled, the form of the new image differs completely and colors remains the only connection with previous generated image. The whole process could be done with the same combination of mathematical calculus. The results observations confirm the role of coloring palette and its importance in the image creation process. New parameters for the calculation are generated only when the action “new” is applied. At any moment the program makes possible the restart from the beginning applying the same parameters including random generator seed.
During the development phase of the program and afterwards I have create a great number of examples experimenting with all possible combinations. In this way I have collected a certain number of images based on each image-palette. Treating generated image as a free computer interpretation of image-palette the results based on each palette were most of all very different and far from similarity. The main criteria to make selection for this presentation, was the complexity of forms and colors in one side and aesthetic impression of the image on the other side. In other words, dealing with abstract artworks, the personal feeling could be the unique selection criteria.
Case 1: Standard coloring palette (figure 02) composed of small colored squares generated using simple program developed on purpose. There are different color gradient applied in each row with random colors in columns. Expected result could be mainly non-harmonized colorful image (figure 03).
figure 02 figure 03
Case 2: The palette is a computer generated image using program called “Creator”, a summary of algorithms developed in last five years after transition from pragmatic to algorithmic approach (figure 04). The program is based on multilevel coloring routines composed of mathematical equations with no fractal concept use. The resulted image is color harmonized and composition equilibrated (figure 05).
figure 04 figure 05
Case 3: The palette is a computer generated image using recent program based on combination between fractal calculus and previous developed algorithms used as deformation factors (figure 06). Regarding colorful and dynamic palette form, the expected result has to be variegated, but going deeply into image, very harmonized and beautiful areas are found (figure 07).
figure 06 figure 07
Case 4: There was a strong temptation to use one world famous artwork as a coloring palette. It was not easy to decide and finally I chose Jackson Pollock and his “The Key” from 1946 (figure 08). In this case I noticed unusual similarity and connection between the palette and the generated image (figure 09). The phenomena could be explained with Pollock art style.
figure 08 figure 09
Case 5: The idea to use an image as coloring palette could work good, when generating pictures for interior decoration use. The architect design of a hotel room or the photography of existing ambient could be enough good to produce abstract ambient-harmonized images which could create a suitable decorative style. The figure 10 represents a hotel room design and figure 11 a generated image which cold be used as a decorative framework.
figure 10 figure 11
The concept to use a previous generated image as coloring palette confirms some basic facts often discussed in connection with coloring approaches but in the same time it opens some questions about the role of algorithms and color maps or palettes. The experiment described above doesn’t reduce the importance of inside or outside coloring palette choice, but gives much more credits to the calculating algorithms. Redrawing an image changing coloring palette shows to the higher level of form-similarity than changing mathematical calculus and using the same palette. An open question is the role of the user of the program having in mention the interactivity of the program indicated by the choice of point of interest. Multilevel deformation of Mandelbrot basic formula causes a law step of self-similarity of the basic image so there are different areas with different form and shape types. To select one type or another (one location or another) could result in and absolutely deferent next-generation image (more orthogonal or more roundly shape elements). Described property makes possible to generated and endless number of very different images “child” out of one “image mother” if it is permitted to use this comparison. Being not absolutely autonomous, the method allows to the user to interact with the process and controlling some significant parameters (research region, palette, magnification) the average number of good results is higher. Discovering to be in a wrong way the user can repeat the process from the beginning using the same parameters. Having in consideration all these possibilities, presented program could become a very powerful tool to produce – generate pictures according to request characteristics. And here is the most important and significant question: “How much the generative process could be controlled to produce optimal results and remains enough generative?”
The research of the concept is still in the beginning but the results analysis has pointed at interesting creative niche inside generative method, which could influence the artificial artwork production in the future. Developing the method until the capability of real image decomposition to create a new one, using complex integration algorithms, cold open a new art paradigm, a free computer interpretation of the real world.
 RGB World – Understanding Color, http://www.rgbworld.com/color.html
 Webmaster’s Color Laboratory, http://www.visibone.com/colorlab/
 Javier Barrallo, Santiago Sanchez Fractals and Multi Layer Coloring Algorithms, http://www.mi.sanu.ac.yu/vismath/javier1
 Chaospro documentation, Coloring Formulas, http://www.chaospro.de
 Francisco Garcia, Angel Fernandez, Javier Barrallo, Luis Martin, Coloring Dynamical Systems in the Complex Plane, http://math.unipa.it/~grim/Jbarrallo.PDF
 Collection of Coloring Algorithms, http://www.fractalus.com/fractint/dmj-pub.htm