Experiment 5 - Evolutionary Impressions

Active Image

Best Image

Mutation rate (%):

Active score:

Exploration rate: fps

Best score:

Description

In this programming assignment, we're building a generator that directly reads inspiring images, renders parameterized images, and adjusts its own designs to optimize an evaluation score.

Technical

  1. This project integrates inspiring images that are selectable from the drop-down on the display page. (This could be three distinct images or one image with three different sets of clues that cause the generator to interpret it in a different way.)
  2. The design object is initialized in inspiration-specific ways. Each image uses a diferent amount of circles, defined by the inspiration.
  3. The design is rendered in a way that can possibly produce results that feel related to the inspiring images. (The 30-second annealing trick should produce images that resemble the inspiring image if we squint.)
  4. The mutation process makes incremental changes to your design. The rate parameter should be implemented in a way that allows the user to almost stop exploration by sliding the rate down to 1%. Your generator must respond to the mutation rate slider.

Annealing

The most interesting results from this kind of evolutionary generator are often achieved by continually adjusting the mutation rate. Set the slider to 100%, reset the generator, and then slowly drag the slider down to 1% over the period of about 30 seconds. This allows the generator to make large design changes at the start while allowing it to focus on finely details towards the end. This is best done by hand while watching the outputs improve because you can use your human judgment to decide when the generator needs to be making bigger or smaller changes to keep making progress.

Reflection

This assignment is a black hole that can suck you in. Honestly, not sure if the many tweaks ended up improving or not, or really how to improve the quality returned by the generator.