I'm an amateur photographer and I spend lots of time playing aroung with photo editing software. But maybe an AI could do a better job than me.

How does Monet work?

First it classifies every image according to information extracted from its histogram (dominant colors, average colors, number of colors). This is a more or less arbitrary classification. The idea is that filters are adapted to color and brightness and not to the image's "meaning". For Monet, there are exactly 76899 types of images. For every one of these images, it applies a predefined set of filters (contrast, saturation, blur, exposure etc).

At each generation, there are 21 versions of Monet being generated, each with its predefined filters. The fitness function is you, the human being, voting for the best pictures. Human beings are excellent at intuitively computing what is beautiful. Monet starts with completely random filters, but using the principles of natural selection, it should theoretically converge towards quality art.

What happens at each generation?

First, from the votes registered in the database, we select the best global adaptations We make all the genes slightly converge towards these optimal values (computing weighed averages with an element of randomness). This mimics natural selection.

Finally, we keep evolution from reaching a plateau by introducing completely random mutations uniformly within the population.

Since this application is written in JavaScript and not running on a supercomputer, generation increment takes about 30 minutes. It would ideally run as a cronjob once a day.

Share this project: