GANs and Icons

A quick recap of what this project is about:

Future Renaissance imagines a distant future society of intelligent machines that only dimly remember humanity. With digital records lost or corrupted, the machines study humanity’s surviving physical artworks, using this imagery to illustrate their own creation myths. Traditional artmaking techniques combine with robotic tools to physically record these digital dreams.

At the outset of this project, I imagined I would composite photos together to tell a mythic story, and possibly train a robot using machine learning to inscribe ornamentation and detail on gold leaf on the background. In fact I found that it was really helpful to collaborate with the machines to make the images without using photographs. I’m only now looking at ways to generate vector art to inscribe on the gold.

I got looking at The Noun Project, a collection of more than a million icons organized by category which can be licensed for use, or used free if crediting the designer.

Icons from the Noun Project’s home page. Apologies for not crediting each designer individually here…

I wrote some code to download icons using Python. They are generously allowing 5000 API calls per month for free accounts, and each call will give me a URLs and attribution data for up to 50 icons in a category I specify. Using an API and JSON in this way was new to me, so it took a lot longer than I wanted it to. I spent a little more time refining it than I strictly had to, so that it would be a bit more user friendly…so that if I want to use it again in three months or three years, it won’t be like reading ancient greek. (Code is here).

Here are a few of the Noun Project’s “sun” icons to give you an idea:


There are over 14,000 icons in this category alone, by thousands of different designers. I gathered about 5000 of them, partly because of the time it takes, and partly because I’m not sure what the etiquette is when downloading so many files from someone’s server.

After a few false starts (i.e. most of a day) I got CarpeDM’s Tensorflow DCGAN (link) to read these – I used about 5000 at a time – and make new examples. I am also pleased to now be working at 128×128 pixel resolution rather than 64×64. Here’s what it made with “sun” when I got everything set up:

64 GAN-generated images based on “sun” icons from The Noun Project

I find the results pretty interesting – a machine’s abstraction of various humans’ abstractions of a heavenly body. I am working on a more symbolic composition with several sets of icons made using this approach. Updates to follow!