Finite Image Generator

Your browser does not support the canvas tag.

Step size

X size

.

Y size

Color depth

Combinations

Running since

Running until

About

...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. 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 just 4x4 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.

combinations = colorDepth ^ pixels

The mathematical equation to find the amount of all possible color combinations is exponential to the image's quality. A digital canvas with enough resolution, may have an astronomical number of possible 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 that can be seen in a given canvas. No artistic skill is required what so ever, just enough time. 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.

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.

Running the tool in 'explore' mode allows the user to take a look into this vast universe of possible combinations. In the 'explore' mode every iteration is indexed, so the user can save, retrieve and share the artifact. The resolution and the color depth of the canvas can be changed and any given iteration will take a different appearance as the data are redistributed among the pixels in a different manner. The step size of each iteration can be increased to accelerate the process and in conjunction with an interactive slider the user can slide through all the possibilities. In auto mode the software iterates the canvas at 60 images per second and based on that speed it it calculates how long it would take in real time to get to that iteration and how much longer until it reaches the end. A few sample images have been provided to prove the point that an image can be represented by just a singular number in a given canvas. It also gives a sense of how long it will take to iterate to that specific representation in relation to the image quality.

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?

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. The logic can easily be transferred into color images, or even moving images.

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.

About

...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 combinations of color values 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.

The number of possible combinations are increasing in an exponential rate in relation to the amount of pixels. This means that the possible combinations of a digital canvas of a substantial resolution, may be an astronomical number, but never the less a finite number.

This simple one button software, gives the ability to the user to iterate through all the color combinations and effectively generate every possible image within a given canvas. No artistic skill is required what so ever, just enough time to go through all these combinations. The grand majority of the results will be nondescript, but the user will eventually come to see meaningful images.

Of course this software and experiment only works in a theoretical level, as in practise the age of the known universe (14 billion years) is just about enough time to iterate through a 8x8 pixels image with only 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.

This experimental software, explores the vast amount of possibilities within a digital canvas.

Since we've proved that one of the sample images can be seen as an iteration index, theoretically every possible image of the universe can be found in there. It may be a photo of you, your parents, or even your kid that hasn't been born yet.

In a potential version 2 of this program, the output images can be fed into an image recognition algorithm, which will be responsible for identifying meaningful results. The process can run in parallel with a farm of computers and allow us to explore this vast amount of images faster. As the time passes, we will be able to retrieve sets of images that resemble known objects. And as the processing power of the computers gets faster and faster, such a brute force solution may become more and more feasible.

ImgGen also questions the intellectual property of digital content. Who would own the rights of the images generated with this program?

It also questions the...

...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