Project 2 – Evolving Shapes
Concept
This project is an experiment with how arbitrary shape forms can be evolved using a genetic algorithm. The idea is to provide a drawing tool with brushes formed by mating and mutating shapes.
Background
I have long held and interest in evolutionary algorithms and have followed with interest as researchers, designers, artists, etc… have tried to apply them to a wide range of domains. There is a lot of background material here, and it is is quite a divisive subject – some researchers have a great passion for them, others won’t go near them. Some noteworthy books include: Evolutionary art and computers and Evolutionary design by computers.
One paper that fascinated me was Evolved Line Drawings by Ellie Baker and Margo Seltzer. Partly because they used the combination of raw sketching and faces as subject matter to evolve imagery. Below you can see an illustration of how the interface is used to mate together different faces. This general idea has recently been applied to creating police facial composites (and it also seems to double as a teleporter into the uncanny valley).
I have for the last 3 years been developing a sketch application called ‘Alchemy‘. Blurb as follows:
Alchemy is an open drawing project aimed at exploring how we can sketch, draw, and create on computers in new ways. Alchemy isn’t software for creating finished artwork, but rather a sketching environment that focuses on the absolute initial stage of the creation process. Experimental in nature, Alchemy lets you brainstorm visually to explore an expanded range of ideas and possibilities in a serendipitous way.
The project has been surprisingly popular within the Concept Art community – the last release garnered close to 30,000 downloads. Part of the challenge is to come up with new ways to sketch out form and create a broad enough shape vocabulary. It seemed to make sense to develop a module for Alchemy that would allow the artist to evolve a set of shapes that could then be used as brushes. The artist would have control over the shapes that were inputed into the system, then they could evolve the shapes to be as diverse or as similar as desired.
Evolve Shapes
The artist starts by either drawing an initial population of shapes, or alternatively can load them from a PDF file from a previous sketch session. Selecting the ‘Evolve Shapes’ module loads the shapes from the canvas and hitting the ‘Evolver’ button launches a window where the population can be evolved.
The artist can assign a rank to each shape which weights the influence of the shape as the next round of shapes are evolved. The mutation slider controls how much the shapes should be mutated at each round.
Once the artist is satisfied with the shapes that have been evolved they can then return to the main canvas and use them like a brush, with each shape from the population pulled randomly. Rotation angle and size are controlled by the direction of the line and pen pressure respectively. Below is an example using the shapes evolved above, in combination with the Mirror module and Color Switcher module.
Reflection
This was an interesting thing to code up and learn more about the inner workings of genetic algorithms. I was also surprised by how quickly new shape forms can emerge through the basic process of ‘mate & mutate’.
The tool itself could definitely do with more work to become more refined than simply dumping shapes on the canvas. I am sure there will be members of the Alchemy community interested in experimenting with this module and I would definitely like to release this and see how people use it, then revisit the functionality and workflow.
Hi Karl, here are comments from the class crit:
————————————————
Wait, you made this whole GUI? Damn. -SB
I think he said it was a three year (so far) project.
…oh. Ahh, I see what he’s done here now. I’m all for building off of existing code.
They all look a little too similar to each other for my liking, like Rorscach tests but in like 20 different forms (I think I saw a guy’s face in one, but that may just mean I have issues with my father.) It’s a neat trick, but I can’t really see myself using this unless I want that very specific look – even *with* the evolution of shapes. I feel like it needs a few more knobs (maybe even randomly applied) to modify the output. -SB
It would be cool to have them make different Rorschach blots
But I’d like it more if you made the thing so that you can have different ways to combine the shapes so it’s more than mirror view, like a kaleidoscope
Very cool application of genetic programming.
It might be more interesting to get feedback from several people instead of using the evolver. If you had several sketches and asked a group of people (through something like mechanical turk) which ones they find most visually stimulating, the resulting image might say a bit more about what the general public finds interesting to look at. -GFU
Computers are good at repeating. Could this be a direction for physical digital output?imagine a robotic hand drawoing the “brush shape” over and over when I draw a line, and when it touches previous line of shape, some sort of mating happens.
The mirroring affect can also be an extension machine provides . -CX
Interesting application of generating brushmarks — but there is currently no shape parameterization linked to the to brush action, user gesture, simulated ink/brush kinematics, etc. Is there a way to have the evolution and the drawing modes interoperate more seamlessly, perhaps co-operating simultaneously?
I’m finding the shapes evolving process more interesting on its own than when they’re combined with the drawing program. I wonder if there’s any other way to use the shapes?
Also it would be cool to use color as another feature that can be evolved.
Could the brush continue to evolve and mutate as you draw? so you couldn’t look at a brush stroke and make out that it was just a shape that is stamped across a curve, but rather something more lifelike, random or gestural. Very very cool work though I think.