<aside> 💡 Check out the Google Colab implementation and play around with your own evolutions!
</aside>
I implemented CPPN-NEAT using python-neat. This was based on Compositional Pattern Producing Networks (CPPN) and NeuroEvolution of Augmenting Topologies (NEAT).
Ok - so this makes cool patterns. So what?
I find this incredibly interesting because of the implications it has for explaining the power of evolution. CPPN-NEAT works as follows:
What is fascinating is that through a fairly simple evolutionary process, you are able to generate remarkably interesting patterns within very few (order of 10s) of generations.
Evolutionary algorithms were one of the earliest rabbit-holes I went down in my artificial intelligence journey because they show the power of evolution — often proving to be much more effective than initially thought.
Grid of possible genomes at an interesting time-step. Choosing Genome #5 led to the next generation to be more similar to Genome #5 (but with variation). Multiple ‘species’ exist so not every genome will immediately emulate the fittest.
I selected some of my favorites that I evolved below.
Quite interesting symmetry.
. .
~
This is just funky.
Pseudo-symmetry mixed with an almost QR-code feature.