[oh_bother] on TwitchTV spent the last few months learning python and building a massive, open-air laser cutter to burn the names of whoever subscribes to his stream into a piece of plywood. “It should probably support a few hundred names, but who knows. It’s done when it breaks, or burns the house down.”
Burn The Subs is a massive laser etcher that makes word-cloud-like wall art by etching twitch subscriber names to a random location on a maple board on my wall. live. The project is a way of giving back to the people who subscribe to my twitch channel, where I work on electronics projects and what-have-you related to electronics. Lately I’ve been on this interactive kick and the twitch API was a bit of a beast to conquer.
A raspberry pi 3b+ logs into twitch’s incredibly well documented (/s) websocket api and stays logged in 24/7. When a subscribe event comes in it parses the user name of the subscriber (or the giftee’s name of a gifted sub) and logs that into a database. Another thread will find that and try to place the name on the board, log that location, put it in the db. That location and name is spaced/sized/kerned turned and churned into a big block of scaled gcode, this is done using a ttf font that I converted to blocks of gcode with kerning info. I never want to see another regular expression in my life. Anyway that hot mess goes into the db too.While/before streaming I toggle the board “on” and any names waiting are sent (in order) to the GRBL laser etcher controller. Once the queue is done anyone who subscribes live will immediately be sent to the controller. The laser is weak, the feed rate is slow, but it’s fun to have. When folks resubscribe the board simply places their name a second time. It should probably support a few hundred names, but who knows. It’s done when it breaks, or burns the house down.