A digital image is a two dimensional array of colored dots, called pixels. These pixels are lined up in rows and columns but since there are so many of them, you can't see them individually. Typically there are several megapixels in an image. The color of each pixel is set by the device that is creating the image. For example, when you snap a picture with a digital camera, the color of the pixel that is in the middle of the array of pixels is determined by the color of the light that goes through the center of the lens. With PhotoShop, or similar software, you can manipulate the color of the pixels directly. Each digital image that you see on this website was created by a mathematical algorithm developed by the artist for the express purpose of making that picture. Here is an example, suppose that we have a 256×256 array of pixels that range in color from red, at the bottom left to blue at the top right - as shown below. In mathematical terms, the color of the pixel in row i and column j, is defined by the intensities: Red = i, Green = 0 and Blue = j. The resulting image would be:
A fractal is an image created by using a mathematical algorithm (recipe). Fractals have 3 critical properties. The algorithm is simple (like long division), the image is sharp (not blurry or pixelated) at any magnification, and many parts of the image are similar - but not exactly the same as other parts of the image. The color of a pixel in a fractal image is determined by the behavior of a sequence of numbers that is based on the location of that pixel. Consider the pixel in row r and column c of a 256×256 array of pixels. Let x = (c - 128)/64 and y = (r - 128)/64. We look at the complex number z = x+iy. Notice that the center of the array corresponds to z = 0. Now form a sequence of numbers using the square function, so that if we start the sequence with z, the sequence would be z, z2, z3, z4, etc.
For example, a pixel in row 128, column 256 (half way down on the right side) would give us z = 2 and the sequence would be 2, 4, 16, 256, 65536, etc.
The "behavior" of this sequence is described by saying that it goes to infinity, so we we will color the pixel a shade of gray. For a pixel in row 128, column 96 we get z = -.5 and the sequence is -.5, .25, .0625, .00390625, etc.
This sequence converges to 0 so we will color the pixel a shade of red. The shades depend on how fast the sequences "tend" to their final destinations. Some sequences neither go to infinity nor converge. Pixels, whose sequences have this property, or whose sequences are on the borderline between convergence and non-convergence, are colored yellow. The resulting fractal looks like this:
For a fuller account of fractals, click here.
This is another way to generate fractals by repeatedly applying a set of functions to a point. A classic book on the subject is "Fractals Everywhere" by Michael Barnsley. Another reference is Iterated Function Systems.
This is a method for converting a three dimensional scene to a digital image. We start with a set of three dimensional objects, a light source and a location and direction from which to view the scene. A mathematical simulation of a camera shooting a picture, where a "photographer" has set up a camera at a certain location, a light source and some objects that are to be photographed.
Most of us have seen images that, when viewed with 3D glasses, have the appearance of being three dimensional. The lenticular lens method also involves making multiple images of a subject, from different angles. These images are then "interlaced" together so that when a special plastic sheet, called a "lenticular" lens, is placed over the interlaced image, a three dimensional effect is produced. By interlacing images in a slightly different manner, this method can also be used to change the picture when viewed from different angles. Using ray tracing techniques to produce images, we have made some of our images appear three dimensional. A good, but technical reference, is stereoscopy.com.
One of the best technical references on the subject is "Computer Graphics" by Foley, van Dam, Feiner and Hughes.
Algorithm: An algorithm is a precisely defined set of rules for doing something. A cooking recipe is an algorithm. If it is carefully written, then anytime it is followed, one should always get exactly the same result. A well known mathematical algorithm is long division.
Converge: A sequence is said to converge when the entries in the sequence get closer and closer to a number. For example, the sequence 1, 1.9, 1.99, 1.999, ... converges to 2. Note that the terms in the sequence don't have to equal 2; we still say that the sequence converges to 2.
Digital Art: This is the subject of About Digital Art.
Fine Digital Imagery: This is a generic term that is discussed in FAQ.
Function: A function is a specific type of algorithm. For each number it assigns another number. Think of it as a dedicated calculator, that can only perform one specific operation: you key in one number, a calculation is performed and out pops the answer. For example, the square function is an example of a function.
Infinity: When we say that a sequence goes to infinity, we mean that the numbers in the sequence increase without bound. This means that for a sequence of positive numbers, no matter how large a number you can think of, call it n, if you go far out enough in the sequence, all of the rest of the numbers in the sequence will be larger than n.
Lenticular Lens: A specially designed piece of plastic that, when placed over an image that has been properly prepared, gives the image a three dimensional appearance. More info here.
Megapixel: A megapixel is 220 pixels. That is, 1,048,576 pixels.
Pixel: This "word" is short for "picture element". The image on your computer monitor is made up of colored dots called pixels. If the resolution of your system is set for 1024x768 then there are 786,432 of these dots. Each pixel in your monitor can be thought of as a cluster of three small holes, through which red, green and blue phosphors are lighted. Each of the three colors can have 256 levels of intensity. This gives us the possibility of over 16 million colors per pixel. The pixel's colors can be saved as data in a computer file and then utilized by a printer to reproduce the image. To print a large picture at, say, 300 dots per inch would require 43,220,000 pixels (43 megabytes).
Plane: This term refers to the plane that you studied in high school geometry. A fractal image is a visualization of a mathematical algorithm, applied to the points on a portion of the plane.
Ray Tracing: A description of this technique for rendering three dimensional scenes is covered in About Digital Art, with links to a detailed explanation.
Render: The actual process whereby the computer calculates the colors of each pixel in the image. The colored pixels are saved as data in a file. A rendered image suitable for printing will contain millions of pixels and the rendering process can take from a few seconds to several hours.
Square Function: The square function simply takes a number and multiplies it by itself. So, the square of 3 is 9, the square of -2 is 4. The square of a complex number x+iy is ( x + iy)·( x + iy) which is equal to x2 - y2+ 2ixy.
Sequence: In this context, a sequence is simply a list of infinitely many numbers, separated by commas. For example: 2, 4, 6, 8, 10, 12, ... is a sequence. The "..." means that the pattern established by the first few entries in the list is continued forever.
By using the phrase Fine digital imagery, I mean to convey the idea that my work is a synthesis of artistic and mathematical ideas and techniques. It is a refinement of the traditional “computer generated art”. At one extreme of computer generated art is “photo realism”. A prime example of this is the movie “Apollo 13” where the astronaut-consultant for the movie couldn't tell the difference between the original video of the take-off and the animation created to enhance the movie. At the other extreme is fractal imagery that is beautiful but requires minimal input (and hence lack of control) on the part of the artist. The software that I have developed includes the techniques of fractals, ray tracing, iterated function system and some of my own proprietary algorithms to render images that (as an artist) I can completely control. I begin with an idea of what the image should be. Then I modify my software or write new software to create the image that I have in mind. This software development phase goes along with the development of the picture itself. I often find that some aspect of the image just doesn't look right and I may even have to go back and develop a new mathematical technique and implement it in software before I can continue to develop the image. Using archival material, I print the image at a very high resolution on museum grade material.
Yes, there are several software packages on the market for creating fractals, for creating ray traced images and of course there is always Photoshop and its competitors. Using a software package limits you to the capabilities built into those packages. Since I have written my own software, I can continually enhance it to create new tools and techniques. This enables me to combine my algorithms with traditional graphics algorithms to produce truly unique images.
The first requirement for creating digital images is to have the necessary software. Developing the software has taken me years and is an ongoing process. Some of the most original images evolve in a series of steps. The first is an idea for creating a new effect or a new mathematical technique. I will then do the theoretical work, implement it into the software and then try it out. This may take weeks of writing and testing before I find an image that has potential for further development. Here is a quick summary of how Floral came about.
I began by creating some simple fractals that were in the shape of flat propellers with about 5 or 6 blades. Next I used my ray tracing program to wrap the propellers around several transparent spheres. The bowl is just a curve revolved around a central axis with some colors blended together. The shading is caused by the ray tracing algorithm, which uses the fact that I put the light source above and in front of the bowl so that the light hits the upper parts of the transparent spheres and the top half of the bowl. After rendering the scene quickly at a low resolution, I could see that propeller blades did not look right. I then went back and rewrote the algorithms to make the blades have some character (note the half dead petals hanging down). Next, I wrote some formulas which my fractal program would interpret as stems. After adding a background and deciding on the colors for the flowers, I once again rendered the image. After innumerable renderings, major changes and tweaking, I was finally satisfied and proceeded to render the image at a resolution suitable for printing. Since rendering at a higher resolution brings out more detail, it also shows more defects. So another round of fixes and renderings takes place. Finally, I have an image which has enough resolution (about 6000 by 4000 pixels) to print an image up to about 24"x20". It is important to note that one could simply use a program like Photoshop to stretch an image to a larger size, but his would cause blurring or pixelization. In fact, if I need a larger image, I re-render the image at the higher resolution - which actually creates more detail.
The creative process - which includes theoretical work and implementation of algorithms as well as artistry - may take two to four weeks, sometimes much longer. The actual process of rendering an 8 million pixel image can take up to an hour, so to save time, during the artistic phase of development, the test images are rendered at low resolution. Printing can take from about 5 minutes to 45 minutes depending on the size of the image.
Technically, the answer is yes, but the tone of the question sometimes suggests that the computer plays a greater role than it actually does. Since I wrote the software, I completely control what the computer is doing and how it is doing it. Moreover, there is little or no randomness built into the program. In other words, I completely control the color of every pixel in the picture. To say that my images are computer generated is like saying that the work of a water color artist is “brush generated"!
A lot of people are familiar with fractals. Here are some typical questions on that subject.
Many of the images begin with an idea for a new mathematical or computing technique or for a new function (even the square function can produce interesting images if the algorithms and other parameters are chosen with care). On the other hand, even closely related functions, say for example 5.2sin(x) and 5.3sin(x), can look very different from one another - even with the same algorithms and other parameters. So, creating a function, devising algorithms and setting various parameters, to get an acceptable image, can take days or weeks. More time is spent determining the appropriate part of the plane to render. After all, the plane is infinite up, down, left and right. Related to this is the "zoom" factor. Fractals are infinitely detailed no matter how much you zoom in on them. Just as a microscope brings us into an whole new world, so does zooming in on fractals. More info can be found here.
Not Exactly. I experiment with various functions, algorithms and parameters, and when I find one that has interesting properties I then manipulate it to enhance the effect that I am trying to achieve. Since I have complete control of the algorithms and parameters, I consider "fractals" as just one tool in my repertoire. However, with fractal imagery, there are always surprises; discovering the promising ones and enhancing them is part of the fun.