A is for …

A is for Alphabet.

Or more precisely, Alphabet superset, which is Struthless‘s latest endeavour : a challenge for creatives of all kinds to overcome their fear of publishing. How, you ask ? With a simple yet potent idea : every week, you should create and publish an art piece based on a theme starting with a different letter of the alphabet.

That’s 26 weeks (and a few breaks in between) so roughly 6 months of making and posting something every week.

Of course I wanted to join, and although I don’t know if code could be considered as art, my general theme for the challenge is to make (as in, manufacture) physical objects that make my day-to-day life easier. The challenge does come with a set of guidelines on how to scope your work, helping you establish a committment device by asking you where and when you’ll be posting about your art, so I invite you to sign up and check out the instructions in case you want to join.

The challenges started on 04/09/2023, and so I began searching for an idea of something that I could make that (1) makes my life easier somehow and (2) starts with A … until I went all meta and realized that anything that would help me find an idea for an object would actually fulfill requirement (1) – and that’s exactly what I did

Meet the Alphabet idea generator

The device is pretty simple but it does adress a need I had at that specific moment, and that I’ll surely be having for the next 6 months.

It comprises a screen and two buttons : when you press one of the buttons, the device checks the current date, calculates the letter for the challenge of that specific week. Once it has the letter, it makes a request to an API that generates and adjective starting with said letter. It then counts the number of letters to the adjective, and makes a request to another API to obtain a random word of the same number of letters.

Building it

Finding the right APIs

I found a few APIs for generating random words, but only a couple of them allowed to specify whether I want a noun or an adjective, and the first letter of that word. I went with https://random-word-api.herokuapp.com/home, as the documentation was easy to understand and the API is straightforward to use. The second API that I’m using is datamuse.com/api/, as it too is very well documented and offers A LOT of possibilites (words that rhyme with another, synonyms, antonyms, etc.). After trying out a few options for the second word, I settled with the idea of requesting a word of the exact same length as the first one, as this allows me to display the resulting “prompt” while mimicking the logo of the challenge with a fixed width font :

On the hardware front

I used a Raspberry Pi Zero W that I had laying around, first because I’m not sure there are many projects that require so little horsepower while still benefiting from running on a Linux OS. The other reason was that I also happened to have an Adafruit Mini PiTFT – 135×240 Color TFT Add-on for Raspberry Pi and had yet to use it, so this project seemed like the perfect occasion to take advantage of its small size.

I used Python and Pillow to generate the image and display it on the screen, as well as some usual Python librairies for calculating the week number, etc.

All of this also meant that while my project was meant to run on a Raspberry Pi with an attached display, I could still re-use most of the code to make a web based version following the same principle, which is now available here : https://alphabet-superset-285df610c93c.herokuapp.com/ While the webpage is pretty bland, it does display the generated prompt, which after all is what we’re after.

What I learned

This project was an occasion for me to explore a few things :

  • Making with constraints, which I loved and once again proved to be helpful
  • Making in a limited time, which means that I had to cut some corners and force myself to stop before I was satisfied with the result instead of obsessing over every little detail – something that I both hated and was thankful for
  • I got to use Python, which is not a langage that I’m really familiar with altough I am starting to use it more and more thanks to Micropython
  • For the web version, I got to create my first Flask app, which was very interesting to me since I’ve never actually worked on a web project (except having a WordPress website, and I can’t say I’m comfortable with that either)
  • Last but definitely not least, it gave me a little preview of what it’s like to deploy an app on Heroku !

All over it was a nice project to work on, and I’m enthusiastic to see if I manage to make it to the end of the challenge (note to self : if I do make it, I’ll have to admit how much of a HUGE accomplishment that will be, as consistency and efforts towards a distant goal are really not my strong suit.

If you’ve read all of this, thanks a lot for your attention !