November 4 2019 · Link to the full page snowflake gallery
For a couple of years I’ve been experimenting with automating different parts of my design process. In 2016 I built a color clock that tells time in vibrant colors. I also made a color palette tester that makes animated patterns out of user-defined color schemes.
And finally, I wrote an algorithm that can design a full color scheme from scratch. After picking the colors, the code can also apply each color appropriately to different sections of a design.
I tried to make the algorithm as much like me as possible. That means that most of the time it makes bright, cheerful color schemes. But sometimes they’re gloomy, black and white, or jarringly mismatched. I use a lot of pink, so the code does too. I like color transitions that are soft and natural, but also sometimes bold and flashy (and the code does too).
This project was a weird one for me. I felt very obsolete watching a computer make my own art faster than I could look at each finished piece. But it was definitely fun to automate a small part of my own design process.
The colorspace that I designed to encode my own design style.
For this project I wrote six equations defining different color palettes for any starting color - analogous, complimentary, etc. I also designed a colorspace that was balanced to my own taste, with lots of pinks and yellows. Finally, I wrote a series of rules about which colors belonged next to each other, and which ones should be used as background colors or accents. There’s no fancy machine learning or AI here, just basic design rules written down in Python.
I decided to separate the colorspace from the color scheme equations, so I could easily swap out different design styles. Here are my two alternate forest and pastel colorspaces. I can use the same equations on these colors, but the resulting artwork will have very different styles.
Some early tests in generating color schemes of different lengths. The finished generator has a lower probability of picking pastel pinks, and a bit more variety in the types of color palettes.
It’s mostly finished on the Python side and I still want to open-source the project one day. But it might have to wait until the next time I need several thousand unique designs. For now, here’s a gallery of 1000 digital snowflakes generated using the code, as well as a noun dictionary to attach a randomly selected title to each image.
© This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.