Interactive Evolution of Camouflage

camouflaged prey on "serpentine" backgroundcamouflaged prey on "lichen" backgroundcamouflaged prey on "flowers" backgroundcamouflaged prey on "hedge" background
camouflaged prey on "twisty wire" backgroundcamouflaged prey on "bark" backgroundcamouflaged prey on "lentils" backgroundcamouflaged prey on "pebbles" background

Camouflaged circular “prey” overlaid on the background image for which they evolved: polished serpentine stone, yellow lichen, lantana flowers and leaves, green hedge, twisty wire against sky, tree bark, orange lentils, pebbles.


This article presents an abstract computation model of the evolution of camouflage in nature. The 2D model uses evolved textures for prey, a background texture representing the environment, and a visual predator. A human observer, acting as the predator, is shown a cohort of 10 evolved textures overlaid on the background texture. The observer clicks on the five most conspicuous prey to remove (“eat”) them. These lower-fitness textures are removed from the population and replaced with newly bred textures. Biological morphogenesis is represented in this model by procedural texture synthesis. Nested expressions of generators and operators form a texture description language. Natural evolution is represented by genetic programming (GP), a variant of the genetic algorithm. GP searches the space of texture description programs for those that appear least conspicuous to the predator.

Paper in the Artificial Life journal:

Craig Reynolds. 2011. Interactive Evolution of Camouflage. Artificial Life 17(2). doi:10.1162/artl_a_00023 -- [PDF, 0.9 MB]

An earlier version of this paper appeared at the ALife XII conference in Odense, Denmark: Craig Reynolds. 2010. Interactive Evolution of Camouflage. In the proceedings of the 12th International Conference on the Synthesis and Simulation of Living Systems (ALife XII), August 2010. [PDF, 3.6 MB]

Poster at SIGGRAPH 2010, July 25-29, Los Angeles, California:

Craig Reynolds. 2010. Using Interactive Evolution to Discover Camouflage Patterns. ACM SIGGRAPH 2010 Posters [DOI]

One page summary (PDF, 0.3 MB)

Slides presented at EE380 (Computer Systems Colloquium), October 6, Stanford University:

This is a slightly revised and expanded version of the slides presented at ALife XII.

Please note: no derivative works. While you are welcome to copy or share this presentation as a whole, any other use of the photographs within it may require explicit permission of the photographer. This is particularly true of images marked with the copyright symbol and used here by permission. If you seek permission, contact me for more information.

Presentation Slides (PDF, 33 MB(!))

Additional images:

cohort of 10 prey on serpentine

Screen capture of interactive evolution session with the “serpentine” environment. A cohort of ten evolved camouflage textures are displayed overlaid on the background image (a photograph of polished stone).

Image galleries showing time series of changes during simulated evolution. Some show the computer application's entire window including the entire background image overlaid with a cohort of ten camouflaged prey. Others show thumbnail images of an individual prey on a portion of the background. These are listed with best results at the top and worst results at the bottom:

Addendum / Errata:

The paper failed to specify a significant parameter: the size of evolved prey. The circular prey were 100 pixels in diameter. The “thumbnail” images of individual prey (top of this page) show a 200 by 200 pixel rectangle of the background image with a 100 pixel diameter prey centered on it.

Related links:

Experiments using this goal oriented texture synthesis technique in graphic arts

The library used to represent and render the textures used in this work: Texture Synthesis Diary

A 2008 proposal for a larger research project, of which this is the first step.

The evolutionary computation library used to evolve texture programs with genetic programming: Open BEAGLE

Last update: September 28, 2013, Craig Reynolds