A fundamental artifact of any digital imaging device is that it samples an infinite reality and encodes it within a finite data-set. A digital image is stored as a series of color values, one value per pixel for monochromatic images and three for colored ones. Inevitably, the clarity of the image is limited by the size of its data. The experimental software FIG exploits the finite nature of such data-set and attempts to iterate through all the possible color combinations a digital canvas can hold. Since any image can be digitized, we can also assume that any and every representation can be found in one of these possible color combinations. FIG guarantees that with enough time, it will eventually generate every possible image.
Disclaimer - At the present time this only works in a theoretical level, due to the vast amount of possible color combinations a typical digital image can hold. As the image gets bigger, the possibilities increase at an exponential rate (Color combinations = colorDepth ^ pixels). For reference, even when iterating 60 times per second, it would require a little less than 10 billion years (or almost the age of the known universe) to go through all the posible images of an 8x8 pixels image with just 2 colors. For example this smiley icon is iteration 18429783006733130751 and it would take ~9.74 billion years to be seen.
In a hypothetical future and as the processing power of computers keeps increasing, we may eventually be able to brute force the generation of all images and filter the meaningful ones out of the chaos.
Could this ever challenge human creativity?
Who would own the intellectual property of all the pictures?
Q. I've set FIG to auto iterate for several days. How come I haven't seen anything meaningful yet.
A. The vast majority of the results will be nondescript, but given enough time recognizable images will eventually emerge. Patience is a virtue
Q. Why don't I see any of them even when I move the slider through the entire range?
A. The slider's accuracy is limited by the screen resolution. Moving the slider just by one pixel, may translate to a jump of many trillion iterations, which means it's easy to miss some.
Q. Why are there only grey colors?
A. Colors require 3 values per pixel, so for the purpose of keeping this experiment simple, only tones of grey are used. The logic can easily be transferred into color images, or even moving images.
Q. Is this similar to the infinite monkey theorem?
A. In the infinite monkey theorem, a monkey pressing random keystrokes on a typewriter for infinite amount of time will almost surely compose one of Shakespeare's plays. In contrary FIG will surely generate all possible images in a finite time. It is the same when rather than iterating in a sequential order the random button is used.
Q. How is the total number of possible color combinations calculated?
A. We can find this number by raising the number of available colors to the power of total pixels.
combinations = colorDepth pixels
For example a tiny canvas with a resolution of 4x4 pixels and only 2 colors can hold 2(4x4) = 65536 possible images.
Q. What about the sample images?
A. The purpose of the sample images is to prove that any image can also be represented by a unique iteration index in the given digital canvas. By changing the image resolution and color depth, one can observe how the size of the possible combinations changes and how that translates to time.
Q. How can I see the smiley face?
A. Just copy & paste it's id 18429783006733130751 into the field and set the canvas to 8x8 pixels and 2 colors.
Q. Can I take a look to the source code?
A. This is an open source project and it's available in GitHub.