Homework 3 - Generative Art¶

Generative Art¶
A generative display of what's trending in the tech world at the moment -- captured through the lens of HackerNews posts.
Images¶
An example of a screen
Another example of a screen
Video¶
Process¶
For this project, I wanted an artistic way to display what's going on in the world at the moment. Both the choice of the words, in addition to how they are presented, are an important aspect to the art piece. I wanted the display to feel tied to the real environment, so I scraped headlines from Hacker News, presenting a small snapshot of what people in tech cared about over the past month. I removed all common stopwords and counted the word frequencies which then drove what words were displayed more frequently on the display.
There is a large randomness element to this art that makes it generative. Each new word that appears on the screen is randomly chosen, along with its color and its direction/movement speed. So, the screen will always look different, and if repeated several times, will still always look different. As opposed to being a fixed sequence, the element of randomness will keep producing new screens.
In terms of technical challenges, set up of platformio was the first main issue. Some settings had to be changed in order to get the library to install correctly, and then when trying to import the C++ code onto the ESP32, there was a lot of trial and error in orienting the USB-C cable the right way (I thought it was an error with the code, but the cable is just somewhat finnicky). For design constrains, due to the size of the screen, I had to adjust the way I displayed the words on the screen to ensure it was still readable. I had initially wanted to display more words at once, but this quickly became unreadable, so an important lesson in this project was adjusting one's creative vision based on physical and technical constraints.
In the future, I think it would be interesting to automatically update the text each day so the display reflects shifting topics over time. I originally wanted to use Twitter/X trending text because it feels less one-dimensional and more socially messy, but scraping trending topics was much more difficult because of login requirements, dynamic page loading, and reliability issues. Hacker News was a more stable source for this project, but I'd still love to explore a less focused news source at some point.