Follow Slashdot stories on Twitter


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×
The Internet

Randomly Generated Art 42

d writes "The Gallery of Random Art displays 10 peices of random art along with voting, a la everything. The worst ones are trashed and replaced by a new drawing; The best ones are put in the all of fame, complete with formula. I found this over at memepool. " This is sweet. What would be cooler is if the highly ranked art could be used to seed more images. It would also be cool if the images were super high res so they would meet my sacred axiom of art ("art is better if it can be my desktop image")
This discussion has been archived. No new comments can be posted.

Randomly Generated Art

Comments Filter:
  • I made this random art in 1989, so it's nearly ten
    years old :-) It uses PostScript.
    The texts are intended as a spoof on pretentious art criticism. []
  • A really good way to get better art might be to have (many) people critique these randomly generated art works and train the critique engine (a neural net?) to simulate centroid human tastes. Then the thing can crank out bazillions of test cases and SELF critique using the trained net. Eventually you might be able to teach the "random" drawing engine to draw things with inherent beauty in the first place.
  • This is a really interesting idea. Some of the hall of fame entries are really nice. (I especally like the first one.) I wonder what other sorts of areas would yield interesting results when mixed with evolution.

    --Phil (I recall reading about someone working on randomly evolving redcode warriors--that was interesting.)
  • We had a slightly different type of computer art gallery when I was in grad school. It consisted of various mistakes that were made when we generated plots and images. You know the type: the computer did what I told it to do, not what I wanted it to do. Some of the screwed up plots turned out to fairly artistic, so we started putting them up on a bulletin board. Our two main profs also put up artistic plots that they generated by mistake.
  • This is a very unique /. effect. You can load the page, but you'll never see the picutures, because when someone does see the picture, they won't like it (we have such taste!), so it has to generate a new picutre, which you can't see for a while. Odd.
  • Unless I read something wrong, if those equations are correct, it is possible for a painting to be both popular and unpopular at the same time. It looks like it wasn't designed for a lot of people to hit it at once (as with /.), because as soon as 5 people mark a picture bad, it is unpopular, regardless of how many people have marked it good.
  • Genetic art webpages have been around for ages, there is even a webpage where you can help to evolve entire maths-based movies. Results of these systems are rarely that impressive (although it is a really nice idea). I think Karl Sims started it.


  • The one I recall used an HTML form to collect the results over a 24 hour period. I assume that the file of votes would then be read and used as a fitness function against the artwork on display. Then, the top couple of pieces would form the seed of the next population.

    In essence, I think they discarded the bottom half of entrants. Then, they used the top half (combining genetic instructions) to generate more, with a chance of mutation.

    It wasn't real time, and certainly predated Java.

    - Porter
  • Anyone have sample source code for the algorithm? Sure, I could figure it out on my own, or I could just ask the guy, but I bet he's been inundated with requests already.

    Timur "too sexy for my code" Tabi,,
  • One of the mags in my bathroom has an article about an artist who went about creating art based on public opinion surveys that he commissioned. People in various countries would be shown several pictures and asked to pick which one they liked. The results were kind of mundane, sort of like the pictures you see in hotel rooms, but kind of funny. The most preferred image was a figure in "historic" clothing standing next to a lake, with a bluish background. The least preferred one was a more modernistic image consisting of a few vertical color bands.

    There's a URL for this project somewhere, but I'll be darned if I can remember what it is, and I'm at work so I can't get the mag.
  • This is my first /. post, so be gentle with me.. :)
    I wrote a "genetic art" program for the Mac a few years back that did some really cool stuff. (You might have seen it's output on my "gamedev" site). Now that I've seen the Linux light and thought about it some, I'm working on a second one that is going to be fantastic. Currently a GIMP plugin, possibly a screensaver (but I'm new to Linux coding), and looking for ideas and comments.

    I'll be sure to brag about it here when I get it done and up with a web site.. ;) Not too long, now!
  • Does it really take that long to compute those? :)
  • Hey -

    I recall a very similar project done at CMU via the web in which genetic programming was used to generate art. You could vote on which ones you liked best, and then the higher ranked algorithms were used as seeds for the next set of generated images.

    No idea what the URL is anymore, and even if it's still running.

    - Porter
  • NOTE: The site is currently flooded with requests because we did not anticipate such high load. Please bear with us while we fix the problems. Currently, you will not be able to
    vote. I plan to fix this by the end of the day. Thank you. (Andrej Bauer)

  • Several years ago, Wired had a spread of "sexual" art -- that is, random pictures that were combined with each other and with occasional mutations. It was cool. I wonder what happened to it.
  • . . . would be if they used the feedback to train a neural network, to teach it what looked "good" and "bad"

  • I'm just psyched to see memepool [] finally get mentioned here.
  • heh.. I can see curators having seizures with titles like this:

    if[mult[exp[div[sin[plus[sin[y[]], y[]]], mult[exp[exp[y[]]], mod[BW[0.744462], BW[-0.246829]]]]], exp[exp[mult[mult[sin[mix[mult[x[], BW[0.563257]], div[BW[-0.703968], y[]], plus[BW[-0.762336], y[]], div[x[], BW[0.376424]]]], mod[BW[-0.367003], plus[y[], x[]]]], exp[plus[x[], mod[div[x[], x[]], div[BW[0.0816604], mult[BW[0.997682], y[]]]]]]]]]], plus[sin[rgb[exp[sin[BW[-0.134705]]], y[], div[sin[y[]], y[]]]], mix[mult[mult[exp[exp[x[]]], mix[exp[mult[exp[plus[y[], y[]]], mix[x[], BW[-0.588491], BW[-0.462407], y[]]]], sin[BW[0.739005]], mult[x[], mod[mult[x[], y[]], BW[0.640864]]], exp[plus[mix[sin[BW[0.775293]], x[], sin[x[]], plus[y[], x[]]], div[y[], y[]]]]]], mod[plus[sin[exp[sin[y[]]]], div[exp[div[BW[0.117962], BW[-0.38489]]], exp[mix[x[], y[], x[], y[]]]]], plus[div[mod[y[], y[]], div[y[], y[]]], sin[div[BW[-0.528308], y[]]]]]], sin[mult[mult[div[sin[plus[x[], y[]]], plus[x[], x[]]], sin[mix[BW[-0.0141159], y[], y[], y[]]]], mod[exp[exp[x[]]], mod[x[], x[]]]]], mod[mod[plus[sin[RGB[0.287492, -0.916215, 0.184998]], rgb[x[], y[], BW[0.268534]]], plus[sin[y[]], plus[div[x[], BW[-0.956589]], mod[mix[x[], x[], x[], x[]], mult[y[], x[]]]]]], mod[sin[sin[plus[BW[-0.555374], BW[-0.147544]]]], mult[mod[y[], y[]], sin[y[]]]]], mult[exp[mix[exp[mult[plus[y[], x[]], y[]]], mix[y[], plus[y[], y[]], mult[x[], x[]], exp[sin[BW[0.190249]]]], mix[exp[BW[-0.710606]], BW[0.95852], RGB[0.182279, -0.745795, -0.617692], RGB[-0.845082, 0.907495, 0.0722221]], y[]]], rgb[mod[plus[mult[x[], y[]], y[]], mix[y[], x[], x[], x[]]], div[div[exp[y[]], x[]], y[]], mult[mod[mod[y[], y[]], mult[x[], BW[-0.710556]]], div[plus[y[], BW[-0.582527]], x[]]]]]]], mix[mult[mix[mult[mult[x[], BW[0.840808]], sin[y[]]], exp[BW[-0.117906]], mix[sin[x[]], plus[y[], BW[-0.139147]], div[BW[0.861545], mult[x[], y[]]], plus[y[], x[]]], div[x[], exp[BW[-0.217147]]]], plus[div[mod[x[], div[mix[x[], x[], BW[-0.538139], x[]], mix[y[], plus[y[], BW[0.782455]], plus[x[], x[]], exp[y[]]]]], mult[sin[y[]], mod[mod[BW[-0.800431], y[]], sin[y[]]]]], div[mod[mult[y[], div[mix[sin[x[]], BW[0.783393], mult[y[], y[]], y[]], plus[y[], x[]]]], sin[div[mix[y[], x[], BW[-0.984569], BW[0.43804]], sin[x[]]]]], mod[mod[mod[x[], y[]], BW[-0.393411]], div[sin[y[]], mult[mult[y[], x[]], y[]]]]]]], exp[sin[sin[y[]]]], rgb[div[exp[plus[x[], mix[mult[plus[y[], BW[-0.195825]], mult[x[], x[]]], mod[mix[BW[-0.886511], BW[0.125519], y[], x[]], BW[-0.969397]], mod[exp[BW[0.589023]], mult[x[], BW[-0.652195]]], mult[x[], x[]]]]], plus[mix[x[], y[], plus[BW[-0.638178], plus[BW[-0.603652], y[]]], div[exp[BW[0.52687]], sin[x[]]]], mix[mix[BW[0.69651], mix[BW[-0.347671], y[], BW[-0.943974], x[]], mod[mix[y[], x[], y[], y[]], mod[BW[-0.25501], y[]]], plus[y[], y[]]], plus[mod[mod[BW[-0.595514], x[]], div[x[], BW[0.736923]]], exp[BW[-0.690789]]], mult[mod[BW[-0.385442], y[]], BW[0.41281]], exp[exp[x[]]]]]], exp[mult[exp[y[]], plus[mix[BW[-0.968401], y[], y[], y[]], mix[BW[0.582734], BW[-0.395017], BW[0.647448], y[]]]]], div[sin[sin[plus[y[], BW[-0.111518]]]], div[exp[mix[BW[0.206057], x[], x[], BW[0.922087]]], exp[y[]]]]], rgb[plus[plus[mult[div[sin[BW[0.642002]], mult[y[], BW[0.68477]]], sin[BW[0.587625]]], mod[mod[x[], x[]], y[]]], exp[plus[x[], x[]]]], exp[y[]], mult[div[y[], BW[-0.0481228]], mult[y[], y[]]]]]]

COMPASS [for the CDC-6000 series] is the sort of assembler one expects from a corporation whose president codes in octal. -- J.N. Gray