EvoIsland Touch

Scroll down to content

This research has been conditionally accepted into GECCO ’22. Check back soon for a link to the final publication!

EvoIsland Touch is an interactive evolutionary iPad app that employs the EvoIsland Framework I developed for my Masters Thesis with the mentorship of Wesley Willett and Christian Jacob at the University of Calgary. The generalizable interaction system encourages creators to spatially explore a wide range of design possibilities through the combination, separation, and rearrangement of hexagonal tiles on a grid (seen below). As these tiles are grouped into island-like clusters, localized populations of designs form through an underlying evolutionary system.

To demonstrate the capabilities of the EvoIsland Touch, we created a custom evolutionary system that evolves the input vectors of the BigGAN generative adversarial network. As viewers interact and generate images on the app, images are rendered on a Python Flask server and asynchronously sent back for display.

Tapping anywhere on the grid adds a tile and generates a new phenotype image, while tapping on an existing tile removes it. The app also features more advanced selection modes for quickly duplicating and clustering multiple tiles at a time.

The app also includes an auto-evolve mode for rapidly evolving the population of designs. Viewers can adjust various settings to control how the island populations change as they automatically crossbreed to generate new designs across different evolutionary rounds.

Using the Phenotype Picker at the top of the screen, viewers can also change the visual image class displayed across the scene while retaining each tile’s underlying genome information. In the example below, this can be seen as the overall shape and appearance of the different generated ball images remain the same as the image classes change.

Finally, the genome editor window (below) is a place where viewers can directly manipulate the traits of a selected genome. When the viewer scrubs through the vertical bars on the bottom half of the window, the selected trait is updated along with its respective horizontal bar. After, when the viewer drags their finger along the upper horizontal bar between the minimum and maximum bounds of the genome trait, the visual tile displayed above is updated to reflect the changes.