Fork me on GitHub
Watchmaker Framework for Evolutionary Computation (logo by Charles Burdett)

Watchmaker Framework

for Evolutionary Computation

Current Stable Version: 0.7.1 Download API Docs User Manual Wiki Support Bugs Source Code Changelog / Roadmap

Evolving The Mona Lisa

This program is inspired by Roger Alsing's evolution of the Mona Lisa. It attempts to find the combination of 50 translucent polygons that most closely resembles Leonardo da Vinci's Mona Lisa. This implementation is not identical to Roger's - it uses a population of candidate solutions and applies cross-over as well as the various types of mutation.

This program also demonstrates the Watchmaker Swing library. This library provides GUI components for manipulating evolution parameters (even while the evolution is running). It also provides the re-usable Evolution Monitor component that graphs the state of the evolving population over time.

This program is CPU-intensive. The faster the machine you have, the quicker it will approach a recognisable image. The evolution will stop if there is no improvement observed for 1000 generations (an example of the Stagnation termination condition in action). It could run for hours.

Other Examples