Your browser does not support the canvas tag.

...blah blah blah...

Two dimensional images of any kind, have long been stored and displayed digitally. To do so, the image is broken down into a set of pixels, with a pre-defined color depth. So the digital representation of an image is essentially just a series of color values. If we look at this the other way, we can say that any given digital canvas has a certain number of possible color combinations among its pixels. [ie a small image with a resolution of 4?4 pixels and 2 colors has 2^16=65536 possible color combinations.] So since any kind of image can be digitized, we could also assume that every single representation can be found in one of these possible combinations, as long as the canvas has enough resolution and color definition to make the image readable. The possible color combinations within a digital canvas is described by the mathematical formula: combinations = colorDepth ^ pixels The number of possible combinations increase at an exponential rate in relation to the number of pixels, which means a digital canvas with enough resolution, may have an astronomical number of combinations, but never the less a finite amount. This simple one button software, gives the ability to the user to iterate through all the color combinations among the pixels and effectively generate every possible image within a given canvas. No artistic skill is required what so ever, just enough time and even though the grand majority of the results will be nondescript, the user will eventually come to see meaningful images. Of course this experimental software only works in a theoretical level, as in practice, even running at 60 iterations per second, it would require a little less than the known age of the universe (14 billion years), to display all the possible color combinations of a 8?8 pixels image with just 2 colors. The tool can also run in the 'explore' mode and to allow the user to take a look into this vast universe of possible combinations. The first thing the user notices in the 'explore' mode is the index number which represents the current color combination and increases with every iteration. This number can be copied, shared and paste back to the program. The user can specify the resolution and color depth of the digital canvas and that affects the total number of possibilities. He can adjust the step size of the increment to speed up the process, or even set it to the automatic mode and let it run indefinitely. Most interestingly, there are a few sample images to prove the point that a representation is just an iteration in this program. Just to clarify these images have not been generated in this program, they are just an indication of how many times the user has to iterate in order to get there. The slider at the bottom is a faster way to go through all the possible combinations and gives an rough estimate of how long it would take to get there and how much longer there is left to reach the end, when running at 60 iterations per second. As the processing power of computers still keeps doubling every two years based on Moore's law, there may be a time in future, when we will be able to brute force and filter all the meaningful images out of the chaos. In a potential version 2 of this program, the output images can be passed into an image recognition algorithm, which will be identifying human recognizable results. The process can be parallelized in an array of computers and with upgrades over time, may allow us to explore this vast amount of images faster. As the time passes, the software will aggregate sets of images that resemble known pictorial elements. tech Each image in this software is represented by its index number, which is the number of iterations it took to get there. The association of this index and the resulting image is simple. If we convert this decimal number index into a different numeric system, where the base is the color depth, then we end up with a number where each of its digits corresponds to the color value of each pixel of the image. Questions raised Intellectual property of digital content - Who would own the rights of the images generated with this program? Will processing power get so powerful to explore the cosmos through these algorithmic means?

...blah blah blah...

Q&A:

Q. Why don't I see any meaningful images when I move the slider? A. The slider's accuracy is limited by the screen resolution. Moving the slider just by one pixel, may translate to an increment 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.

Q. Who owns the rights of my the image I just created with this tool? A. All images generated with this tool belong to the public domain. Part of the goal is to generate every possible image to fight the copyright regime. =]

# imgGen

Source code: imgGen BigInteger.js scripts.js

Built with Processing and Processing.js