PDA

View Full Version : Program Concept Idea



linuxguymarshall
November 29th, 2008, 11:32 AM
I read this on the Ubuntu forums awhile back now its gone but this is what is said :

What is we could make every image possible? Think about it we start out with an entire black screen. 1.png. Change the top left pixel to white. 2.png. change the colour just a bit. 3.png.



If we did this on a 800x600 then we could, theoretically, create every image possible. You when you were born, inside the world trade centers on 9/11, a photo of caesar. Everything.


What do you think?

kernelhaxor
November 29th, 2008, 11:45 AM
That would be theoretically possible, but it would be practically impossible to look at all the images ..

If we assume 24-bit colors, then the number of generated images would be:

2^24 * 800 * 600 = 8.05E12 approx ..

hessiess
November 29th, 2008, 01:32 PM
Even though it would take a long time to complete, theres nothing to stop sutch a program generating visually interesting images whithin a reasnoble time-span.

hessiess
November 29th, 2008, 02:06 PM
No longer relevent.

geo909
November 29th, 2008, 03:44 PM
If you are refering to me, no, I am not 13.

Ignore the guy, ran on him lately, he's probably a troll (check his other posts).


Even though it would take a long time to complete, theres nothing to stop sutch a program generating visually interesting images whithin a reasnoble time-span.

That is an interesting idea, though kernelhaxor gave the answer: the amount of possible combinations is vast thus the possibility to see a 'real picture' is negligible.. This reminds me the infinite monkey theorem (http://en.wikipedia.org/wiki/Infinite_monkey_theorem). Get yourself some undead monkeys, lock them in a room with a bunch of typewriters forever... Eventually they will give you a nice play (and you won't have any real copyright problems if you steal it).

The possibilities behind those two questions are equally negligible, I guess.

hessiess
November 29th, 2008, 04:35 PM
Ignore the guy, ran on him lately, he's probably a troll (check his other posts).



That is an interesting idea, though kernelhaxor gave the answer: the amount of possible combinations is vast thus the possibility to see a 'real picture' is negligible.. This reminds me the infinite monkey theorem (http://en.wikipedia.org/wiki/Infinite_monkey_theorem). Get yourself some undead monkeys, lock them in a room with a bunch of typewriters forever... Eventually they will give you a nice play (and you won't have any real copyright problems if you steal it).

The possibilities behind those two questions are equally negligible, I guess.

Looking into this further, There appears to be a whole art genera based around what can be generated with just computer algorithms, known as generative art (http://www.nationmaster.com/encyclopedia/Generative-art), which brings up the whole 'what is art' debate again. Personally I wouldn't say that an image generated by a computer program, without human input, can be art, because it was generated mathematically. Instead its the algorithm and mathematics which created the image that I would conceder as art.

Thanks for pointing out the the infinite monkey theorem, interesting reed :).

Mr. Picklesworth
November 29th, 2008, 04:59 PM
One thing that could be a cool experiment, on a similar note as this, would be anonymous collaborative drawing. A web site where every unique visitor can contribute two pixels to an image. It would be interesting to see how / if people cooperate to create things and how quickly it takes the griefers to adapt.

...and if you want pretty pictures, download wmhdplop :P

night_fox
November 29th, 2008, 05:12 PM
That would be theoretically possible, but it would be practically impossible to look at all the images ..

If we assume 24-bit colors, then the number of generated images would be:

2^24 * 800 * 600 = 8.05E12 approx ..

Well actually it would be much much bigger than that.

It would be 2^(24*688*600) which is 2^11520000

which is about 3.55*10^3467865 images
The filename in ascii would be 3 or 4 times bigger than the actual image!

oedipuss
November 29th, 2008, 05:12 PM
Your program exists already, along with all the images that will ever be generated from it, all other programs currently in existence, all pictures, music, literature, etc, all inside π (pi) :P (or any other irrational number)
You just have to know where to start, where to stop, and how to translate the digits.

Infinites are funny things =D

jomiolto
November 29th, 2008, 05:15 PM
If we assume 24-bit colors, then the number of generated images would be:

2^24 * 800 * 600 = 8.05E12 approx ..

Nitpick: that's actually 2^(24*800*600), which is quite a huge number -- something in the order of 10^3467865...

Assuming that it was possible to generate all those images (it is not, because storing those images would require a computer larger than the whole universe), I wonder if you could be accused of copyright infringement, since that set of images would also contain every copyrighted image -- and all the frames of all the movies ever made :p

hessiess
November 29th, 2008, 05:23 PM
Nitpick: that's actually 2^(24*800*600), which is quite a huge number -- something in the order of 10^3467865...

Assuming that it was possible to generate all those images (it is not, because storing those images would require a computer larger than the whole universe)
So don't store all the images, have a huge teem of people looking for the interesting ones. the problem is how exactly to classify ``interesting ones'' :)


I wonder if you could be accused of copyright infringement, since that set of images would also contain every copyrighted image -- and all the frames of all the moves ever made :p

But couldn't this also invalidate copyright, as you could say that the images already existed within the medium, but had not been discovered yet:popcorn:

night_fox
November 29th, 2008, 05:44 PM
It would be very cool if you did that with some kind of refinement and selection. How about limiting it to something like 8 bit colour and 40*30, and using decreasingly fast but increasingly good methods to reject images. You could train a series of neural network to recognise all sorts of arty shapes, from geometric shapes to animals plants and faces. You would end up running this program for absolute ages and you could then look at the results and take them through a refinement stage where you make it bigger with more bits per pixel. Maybe blobs in the background would start to resolve themselves into vases or something.

It would be wicked, but the neural networks bit is very hard! A good starting point would be to think of some simple ways to filter out the rubbish images from the better ones. I would suggest making some 4*4 images and stretching the best ones into 8*8, refining each block of pixel rather then generating every possible image, after all most of them will be random noise like the attached:

pp.
November 29th, 2008, 05:50 PM
A few random thoughts on the matter:

Generating the pictures starting with one corner and proceeding line by line or column by column is a bit slow and will spend very much time with lookalikes.

Back when the AT was hot stuff I did an implementation of Mandelbrots in Basic. In order to see within reasonable time whether the program was about to come up with something interesting, I filled the entire screen with one color, then cut the screen into four smaller tiles, colored the three new ones, then cut each of the tiles into subtiles and so on. That yielded a very coarse image within a reasonable time.

Which brings me to the next point I want to elaborate on:

Since the images proposed by the OP all are not only computer generated but found by an exhaustive search, the images by themselves would have no intrinsic artistic value. An exhibition of a selected subset, however, might be said to be of artistic value because the selection itself can be seen as a 'creative' act.

There are artists who exhibit pebbles and twigs. Obviously, they didn't make the pebbles and twigs by themselves. There also are some photographers who take pictures of things which they did not make or even alter or arrange by themselves.

The third comment:

There's a case of synchronicity involved, in my case. I am just re-reading The Müller-Fokker Effect by John Sladek. In a very minor scene a would-be painter got hold of "perfect" random number generator and attached that to what today would be called an ink jet printer.

Disappointingly, the device produces only works of arts already known, with some twists. In one painting, the face of the central figure has the wrong color, in the other one (if I remember corectly) the saint is engaged in some unsaintly activities.

jomiolto
November 29th, 2008, 05:54 PM
So don't store all the images, have a huge teem of people looking for the interesting ones. the problem is how exactly to classify ``interesting ones'' :)

That's fine, just don't expect me to sign as a volunteer for that project -- even with a team of billion people, it would still leave 10^3467856 images for each people to check ;)

linuxguymarshall
November 29th, 2008, 05:57 PM
That's fine, just don't expect me to sign as a volunteer for that project -- even with a team of billion people, it would still leave 10^3467856 images for each people to check ;)

Yes. The only way for this to work (without enslaving China and India) would be to save each and every image which would require an insane amout of hard drive space. Buy hey, Google and MIT have that space.

M_the_C
November 29th, 2008, 06:00 PM
What about face recognition technology?

It would cut out lots of interesting images where there are no people, but would narrow the search a lot. Or it could be integrated with other recognition systems.

Just a thought.

Nice idea.

linuxguymarshall
November 29th, 2008, 06:07 PM
Are we looking just to get faces out of this? What about other pictures without humans or even things with faces.

pp.
November 29th, 2008, 06:10 PM
Part of the problem would be pruning the generated pix. Just compressing those with jpeg would get rid of quite a number of uninteresting variants of the same images.

linuxguymarshall
November 29th, 2008, 06:14 PM
True. But it's like scientific data, if your experiment goes wrong you don't just throw out the data, you record what happened what went wrong and how to prevent it. Same principle here, you don't delete data.

aboud
November 29th, 2008, 06:16 PM
if we take 256 color system ..

(256^3)(800x600) that will be something like 8x10^12, and you can save china and India for other things :KS

if we supose 2 Ghz cpu can build 100 image ps, that is 8x10^10 s = 22*10^6 h aprox 10^6 d 2000 y.
well grid over lhc can do it in a hour.

pp.
November 29th, 2008, 06:18 PM
True. But it's like scientific data, if your experiment goes wrong you don't just throw out the data, you record what happened what went wrong and how to prevent it. Same principle here, you don't delete data.

The aims are not the same. What's the use of storing something like 200 pictures which only differ by the absolute brightness if all you want to do is pick the interesting looking ones. How is - say - a screendump of my browser as it is shown right now more or less interesting as the one by one unit of brightness brighter or darker?

linuxguymarshall
November 29th, 2008, 06:21 PM
Double post. Forums are acting up. Read the one below

linuxguymarshall
November 29th, 2008, 06:23 PM
if we take 256 color system ..

(256^3)(800x600) that will be something like 8x10^12, and you can save china and India for other things :KS

if we supose 2 Ghz cpu can build 100 image ps, that is 8x10^10 s = 22*10^6 h aprox 10^6 d 2000 y.
well grid over lhc can do it in a hour.

As much as I would love to have a photograph of your mother I really don't think a computer could run 100 images per second. But say a computer could run 100 images per second. That is (800x600)256=122880000 images; 1228800 seconds to make those images

linuxguymarshall
November 29th, 2008, 06:26 PM
The aims are not the same. What's the use of storing something like 200 pictures which only differ by the absolute brightness if all you want to do is pick the interesting looking ones. How is - say - a screendump of my browser as it is shown right now more or less interesting as the one by one unit of brightness brighter or darker?

I'm not saying it's interesting at all. It's actually quite boring. But its part of the process. We could just tell it to throw out things that are not shaped a certain way or such but then imagine the things we could not see coming that get thrown out because its shape was wierd. To insure quality we need all the photos. Even the pure color ones. Seems lame but we need to do it.

aboud
November 29th, 2008, 06:27 PM
As much as I would love to have a photograph of your mother I really don't think a computer could run 100 images per second. But say a computer could run 100 images per second. That is (800x600)256=122880000 images; 1228800 seconds to make those images

looks like your mother didn't have the time to tell about the power in mathematics, (256^3) means 256*256*256

pp.
November 29th, 2008, 06:29 PM
To insure quality we need all the photos. Even the pure color ones. Seems lame but we need to do it.

The uniformly colored ones might or might not be "interesting" or "useful". I don't see how trivial variants which are not even discernible on my laptop or by naked eye need to be kept.

linuxguymarshall
November 29th, 2008, 06:29 PM
looks like your mother didn't have the time to tell about the power in mathematics, (256^3) means 256*256*256
I'm failing algebra I, give me a break. But I was not aware that 256 colours ment that. But that makes it take up much more time.

aboud
November 29th, 2008, 06:31 PM
I'm failing algebra I, give me a break. But I was not aware that 256 colours ment that. But that makes it take up much more time.

you better keep the mothers of people you don't know alone.

klange
November 29th, 2008, 06:32 PM
Just as a proof of concept, I would start at 16x16, 4-bit color (16 colors)
16^(16*16)

Also, 256-color means only 256 colors, not 256 per color unit. These are the 256 colors available in that mode (http://en.wikipedia.org/wiki/Image:256colour.png).

linuxguymarshall
November 29th, 2008, 06:33 PM
you better keep the mothers of people you don't know alone.

Ill keep that in mind. But anyways it would require multiple computers. One would work on a certain range of colours and another computer work on another set. Long process.

red_Marvin
November 29th, 2008, 07:13 PM
The formula is (number of colours)^(width*height) or since we're talking computers 2^(bits per pixel * width * height)
(where ^ denotes "to the power of")
so the combination 4bpp 16x16 would give 2^(4*16*16) > 1E308 images.

The data size would be 4/8*16*16*2^(4*16*16) > 1E310 bytes.
(divide by eight since 4bpp = 4/8Bpp)

For comparision, if we had a factory that created a million 10PB disks every microsecond for a million years the amount of storage finally created would be
10E15*1000000*1000000*60*60*24*365*1000000 < 1E42 bytes, which is ...less.
The notation xEy means the number x multiplied by the number constructed from a one and y following zeroes, so 2000000000 would be 2E9.

linuxguymarshall
November 29th, 2008, 08:17 PM
That cleared things up. thank you

geo909
November 29th, 2008, 11:35 PM
The formula is (number of colours)^(width*height) or since we're talking computers 2^(bits per pixel * width * height)
(where ^ denotes "to the power of")
so the combination 4bpp 16x16 would give 2^(4*16*16) > 1E308 images.

The data size would be 4/8*16*16*2^(4*16*16) > 1E310 bytes.
(divide by eight since 4bpp = 4/8Bpp)

For comparision, if we had a factory that created a million 10PB disks every microsecond for a million years the amount of storage finally created would be
10E15*1000000*1000000*60*60*24*365*1000000 < 1E42 bytes, which is ...less.
The notation xEy means the number x multiplied by the number constructed from a one and y following zeroes, so 2000000000 would be 2E9.

Finally! It's funny how people can be fooled when it comes to power of numbers..

There is a Legend about the guy who invented chess. He went to an Arab king
and showed him his invention. The king was so amazed with this game, that told
the guy he could ask whatever he wanted and he would give it to him.
So he told the king that he would like some wheat (no, not that, the real one).
He asked the king to take the chessboard and put 2 seeds of wheat in the
first box, then 4 seeds in the second, 8 in the third, 16 in the fourth..
"That's all?!" the surprised king replied "Don't you want something more,
I have gold, diamonds, women...".

But the modest chess-guy was pretty fine with his 2+4+8+16+...+2^64
seeds of wheat.
So the king signed a contract and sent two of his slaves with bags to the storehouse.

In the meanwhile, after some brief calculations, the advisors of the king who were
good at algebra (they probably invented it anyway) came and whispered something in
his ear.

There are two different endings for that story, pick up yours.

(a)The king was so thrilled with the brilliant mind of the chess-guy,
that he offered him his beautiful daughter's hand (but he didn't give him no wheat).

(b)The king cut the guy's head off (and took his chessboard).

EDIT: See the estimations in post #36 below.

night_fox
November 30th, 2008, 01:48 AM
It would be 2^65 - 1 grains of wheat! which is 3.69*10^19

Is anyone going to have a go at coding something like this? I'd love to see the results!

Wolki
November 30th, 2008, 02:09 AM
Reminds me of this classic piece of literature: http://www.acsu.buffalo.edu/~jatill/175/libraryf.htm

geo909
November 30th, 2008, 03:49 AM
It would be 2^65 - 1 grains of wheat! which is 3.69*10^19

Is anyone going to have a go at coding something like this? I'd love to see the results!

Ok, so I have an estimation here.
In every conversion I am very 'generous' so that the final result, even though unthinkable,
is far smaller than the reality, just see how much we 'lose' in the way (just to make the
computations faster).

So.

We have 3,69*10^19 grains.
Every grain is more than 0,06 grams (searched for that!),
so we have more than a total of 369*(10^19)*(6*10^-2)=
2214*10^17 grams of wheat.

Ok, we can say for sure that we will need a big bag.

For the easiness of computations, we will see how much is half
this quantity. Less than a half, actually. That is, let's say we have
1000*10^17=10^20 grams of wheat.

That is 10^14 tones of wheat...

Let's say we have some trucks so huge that they can carry 1000 tones each!
I doubt such trucks exist but let's say they do!

We will need 10^11 of those trucks.

Now, say there exist some freighter ships so vast, that they can carry 1000
of those trucks!! You understand that such a ship wouldn't fit in any port,
but try to imagine it.

We would need 10^8 of those ships.

There are 195 countries in the world. Let's say every country has 1000 ports!
That's very generous especially if you think that maybe most of them don't have
sea.

We would have more than 50,000 of those ships in each port of the world!

And if you look again at the beginning, this is less than half of the amount of
the wheat we got in the beginning!

So we will actually have way more than 100,000 of these enormous nonexisting ships,
full of wheat, in each and every port of this world!! Remember that such a ship
couldn't normally enter in the biggest port!

You understand that if we had been talking about regular trucks and regular
freighter ships, then literally there would be the most terrible traffic jam
inside the ocean. Again, all this was an extremely modest estimation!

Tell me if you find any mistake above.

...

Giving the guy his daughter, that was the ultimate stealing!
Sure, money can't buy anything, but probably that's the case for all that grain..
He could buy all the daughters of the world, empty a bunch of the super-ships and
built a harem for them inside. And make some billions of chessboards to keep them busy.

geo909
November 30th, 2008, 04:27 AM
I guess that would be clearer if someone could estimate how many years the whole world would need to produce all this wheat. I don't have the slightest idea about production rates and stuff but I'm pretty positive that we would compare this with the age of the universe...

linuxguymarshall
November 30th, 2008, 04:30 AM
Why exactly are we talking about wheat?

pp.
November 30th, 2008, 08:33 AM
Corn circles, perhaps?

jacksaff
November 30th, 2008, 09:44 AM
From calculations earlier in the thread, there are
3.55*10^3467865 possible images that your program will generate, and yes, they will include all possible images (at that resolution).

Your problem is that you have no comprehension of just how big a number this is.
The number of protons in the universe is (probably) around 10^80.
Your number is in the order of 10^3467785 TIMES BIGGER than this. This is 1 with 3467785 zeros after it.

An average book has (a lot) less than a million characters in it. So you will need around 4 decent sized books just to write this number. They will not be a good read.

Once you have used your four volumes just to write this number, remember that it is the number which needs to be multiplied by the number of protons in the universe before you arrive at the number of possible pictures at 600*800.

hessiess
November 30th, 2008, 11:12 AM
What about 1 bpp at 200*200

(200 * 200) * 2 = 80,000, Or did I do that wrong?

night_fox
November 30th, 2008, 12:22 PM
We would need 10^8 of those ships.

assuming each grain is square and takes up 4 square millimetres,You would also need a 68,700,000 metre by 68,700,000 metre chessboard!

pp.
November 30th, 2008, 12:24 PM
That will give 2^(200*200) possible monochrome 'pictures'

geo909
November 30th, 2008, 03:09 PM
assuming each grain is square and takes up 4 square millimetres,You would also need a 68,700,000 metre by 68,700,000 metre chessboard!

Maybe if we moved some ships we could make some space in the ocean for some platform...

Daveski
November 30th, 2008, 04:06 PM
Your program exists already, along with all the images that will ever be generated from it, all other programs currently in existence, all pictures, music, literature, etc, all inside π (pi) :P (or any other irrational number)
You just have to know where to start, where to stop, and how to translate the digits.

Infinites are funny things =D

I like this. Rather than argue how to implement a system to generate and filter out interesting pictures, why not just start with a blank CD iso and generate all the possible states that a CD can be in. In addition to the obvious 'all music ever created' (or will be created) we will also get data CD's and some will include a great program to generate and filter images. Indeed many CD's will be created that already contain these images. CD's with documents and blueprints of how to build a time machine (assuming that a time machine is possible) etc. etc.

This is not infinite, there is a finite number of states a CD can be in, it is just a very large finite number.

Bring on quantum computing...

Daveski
November 30th, 2008, 04:10 PM
I wonder if you could be accused of copyright infringement, since that set of images would also contain every copyrighted image -- and all the frames of all the movies ever made :p

Ah yes, but you can copyright all the frames of all the movies that have yet to be made. The money you get from suing future film makers should pay for the money you have to pay out on films that have already been made.

EdThaSlayer
November 30th, 2008, 05:01 PM
It looks like you need one of those Star Trek computers that can compute faster than the speed of light(ofcourse, you will need a stable subspace warp field around the computer and tons of isolinear chips). :lolflag:

mechengineer
January 6th, 2009, 12:57 AM
What is we could make every image possible? Think about it we start out with an entire black screen. 1.png. Change the top left pixel to white. 2.png. change the colour just a bit. 3.png.

If we did this on a 800x600 then we could, theoretically, create every image possible. You when you were born, inside the world trade centers on 9/11, a photo of caesar. Everything.

You may be interested in reading chapter 14 of Kevin Kelly's book "Out of Control". In fact, you may enjoy the entire thing! It's available for free online, though it's much nicer to read a hard copy.

http://www.kk.org/outofcontrol/ch14-a.html

Chapter 14 is called "In the Library of Form", in which Kevin develops a metaphor to show just how big infinity really is and how boundlessly creative it can appear to be (basically, a gigantic library containing every text that could ever possibly be written). He then describes a simple algorithm that one can use to search such a space and arrive at useful or beautiful 'books'.

Though the possibilities of an 800x600 image aren't infinite, thinking about it really makes the concept of infinity hit home.