R
Roger Alsing
rogeralsing.com · Personal blog · on HN since 2008
Roger Alsing is a .NET developer who writes about genetic programming, including his Mona Lisa polygon experiment, and fast .NET serializers.
What HN saysHN links it as the origin of the Mona Lisa evolution experiment. Commenters point to its FAQ on whether it counts as genetic programming, and its gallery.
28HN people shared it
22linked it in comments
6stories submitted
331story points
10 months agolast shared
2008people per year2026
Most-shared posts
- 1Mona Lisa in 50 polygons, using a genetic algorithm (2008)20 people · 325 points · first shared 2008 · 53 comments on HN
- 2Wire – Writing one of the fastest .NET serializers2 people · 5 points · first shared 2016 · discussion on HN
- 3Genetic Programming: Mona Lisa Source Code and Binaries2 people · 1 points · first shared 2008 · discussion on HN
- 4Genetic programming mona lisa faq2 people · first shared 2012
- 5Genetic gallery1 people · first shared 2012
- 6Scaling clustere evolution 1 1 41 people · first shared 2009
- 7Genetic programming code smarter than you1 people · first shared 2012
What HN people wrote when they linked it
babak_ap · 2016-09-21
Worth pointing out:
https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo…
And also a JavaScript version:
http://alteredqualia.com/visualization/evolve/
web007 · 2016-09-20
Looks like an implementation of http://alteredqualia.com/visualization/evolve/ - one of my favorite web-things ever made.
Edit: the "inspiration" for this is the same thing as Altered Qualia, Roger Johansson's post about genetic image evolution https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo…
michaels0620 · 2012-12-13
He answers this in his faq (http://rogeralsing.com/2008/12/09/genetic-programming-mona-lisa-faq/):
Q) Is this Genetic Programming?, I think it is a GA or even a hill climbing algorithm.
A) I will claim that this is a GP due to the fact that the application clones and mutates an executable Abstract Syntax Tree (AST).
Even if the population is small, there is still competition between the parent and the child, the best fit of the two will survive.
gregschlom · 2012-12-12
Only 50 semi transparent polygons? I would have thought a lot more would have been needed.
Also worth checking out, the gallery with more paintings: http://rogeralsing.com/2008/12/11/genetic-gallery/
seg_lol · 2026-01-19
For historic reference, back in 2008, Roger https://www.rogeralsing.com/2008/12/07/genetic-programming-evolution-o… kicked this off by attempting to reproduce the Mona Lisa using evolved polygons.
https://news.ycombinator.com/item?id=389727
joquarky · 2025-12-09
I got crazy obsessed with EvoLisa¹ back in the day and although there is nothing in common between that algorithm and those that make up training an LLM, I can't help but feel like they are similar.
¹ https://www.rogeralsing.com/2008/12/07/genetic-programming-evolution-o…
fufjfkrmew22 · 2016-11-15
Cool project. But please some attribution!
Here is the original concept, source included (2008): https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo…
dalke · 2016-11-08
Some variation of https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo… ?
https://github.com/kiirala/approximate_image and http://kennycason.com/posts/2016-06-01-genetic-algorithm-draw-images.h… are similar implementations.
boyter · 2016-09-20
Reminds me a lot of this https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo…
kaffeinecoma · 2016-04-30
A "kind of" compression using polygons: https://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mo…
I believe it was discussed here a few years back.
avmich · 2015-01-29
Is it similar to this approach - http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon… - ?
fogleman · 2014-12-06
This guy did the same thing in 2008:
http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon…
jparishy · 2014-11-05
Not strictly related, but reminded me of the exercise in genetic programming by Roger Alsing: http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon…
It's a rather cool attempt to draw the Mona Lisa using random, semi-transparent polygons
sounds · 2014-05-22
While this is not exactly a game engine, check this out: http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon…
niggler · 2013-05-05
shmageggy · 2012-12-13
He answers this on the FAQ linked at the top. http://rogeralsing.com/2008/12/09/genetic-programming-mona-lisa-faq/
He just loops over the whole image and does a pixel-by-pixel comparison, taking the difference between each of the R, G, and B channels and summing them all.
RogerAlsing · 2012-12-13
And for those interested real GP, see http://rogeralsing.com/2010/02/14/genetic-programming-code-smarter-tha…
That code uses real crossover and a large population in order to crack black boxed formulas.
jws · 2012-12-12
Summary: Video Codec based on vectorization of images rather than pixel encoding. Slow, but highly parallel. Not much info. Developers hope to have a codec for commercial use in some number of years.
PDF of authors' previous work on still images: http://eprints.gla.ac.uk/47879/1/ID47879.pdf
Still too long?: "Mona Lisa in 50 Polygons[1]" Grows Up.
␄
[1] http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon…
HardyLeung · 2011-05-24
I studied these issues a lot (copyright, right of publicity, etc), and I think this particular use is fine. You are right that sometimes it is easy to figure out the text from the cloud, just like you can make out a famous photo from a very small 10x10 thumbnail, or draw Mona Lisa in 50 polygons http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon… or as a single tweet http://www.flickr.com/photos/quasimondo/3518306770/
bd · 2009-03-05
It's actually not so bad. It's just JavaScript and maybe my code (I wrote JS version).
Roger Alsing (who was the original author and inspiration) did later an optimized compiled parallel version that was able to get Mona Lisa in 1 minute 34 seconds (on a 64 bit 4 core machine).
http://rogeralsing.com/2009/01/04/scaling-clustere-evolution-1-1-4/
Also there are supposed to be some efforts to run it on GPU, which should be even faster.
toodlestech · 2009-01-26
This has already been done and much better at that. Don't give props to someone copying anothers work a half year after the fact.
Credit and originality goes to : http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon…
antirez · 2014-12-06
It looks like it no longer does much progresses after some time. Many years ago I wrote one of those stuff, just a few days after the famous 2008 blog post doing the same (http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mon… However after some time I switched the code to use simulated annealing, and it performed better. I'm running it for a few minutes against the Monalisa image to see what happens. Btw I had a plan to release the code after some cleanup, maybe tonight is the right moment after 6 years of this code hanging on my HD.
EDIT: after 6 minutes (64 shapes) -> http://imgur.com/gyZCjBD
EDIT2: after ~15 minutes -> http://imgur.com/5XMU8vH
Now trying using just triangles, again with 64 shapes, I remember it was much better than when using circles for most images.
EDIT3: Oh, much better now, after 6 minutes (64 triangles) -> http://imgur.com/x9E9TmK
EDIT4: 10 minutes more and she got a nose: http://imgur.com/bX8UTIQ
EDIT5: Code released! https://news.ycombinator.com/item?id=8710418