Skip to content


TL;DR: Janelle Monae’s art inspired me to try to build an algorithm that progamatically generates emotion-evoking art, and the results are here.
A rendering of the CINDI program
If you haven’t yet listened to Janelle Monae’s “Metropolis” suite, I highly recommend that you drop the committments you can, pour yourself some coffee and/or wine, and listen to it carefully.
Monae is a magician, a siren, an entertainer, a theorist, a historian, and a visionary. Metropolis helped me understand so much about so much that talking about it here will certainly do it an injustice. If you are interested, check out my 2016 term paper on her work within the context of the history of waves of Black Feminism. Or, preferably, read one of the many articles [1] [2] [3] by people who have looked at Monae’s work more carefully than I have, and have more interesting things to say about it.
Within the context of Metropolis, one of the (many) questions Monae raises is at the intersection of technology, humanity and art, and this project was an attempt to programmatically generate art that evokes real human emotion. To understand what I was trying to capture, check out the page itself.
A rendering of the CINDI program
This was an expansion of the work I did in in VOAT - rather than using squares with a predictible and pre-defined set of ports to connect, I use polygons with arbitrarily defined sub-regions. The results are wild: extreme variance, never dull. To see how some of these were generated, check out the tesselation photos below.
TODO(gradyward) Add tesselation breakdown photos.
I hope to do more work in this space, and to keep thinking through where the root of emotion and power of art lies. From a technical perspective, I have a long backlog of features I want to build: I would ideally like to encorporate images, create non-fluid spacefilling, create classifications for common aesthetic patterns and entropy filters to filter out boring or repetitive generations. From an artistic perspective, I’m not yet satisfied with this project - it has only begun to scratch the surface of what I think is possible.
I hope this project goes somewhere, but I need time to work on it.
A rendering of the CINDI program