6 min read

Episode 37 - The Origin of ✨ (aka sparkles)

In my continuing effort to squeeze AI content from our company retreat, I create an AI-Powered timer. It is both as annoying and as funny as you would expect.
Episode 37 - The Origin of ✨ (aka sparkles)
ChatGPT's image version of this episode: Boast or Roast, Reinventing the Timer ✨ologue. A person standing on stage presenting with a large timer behind them.

Prologue

There are still two more weeks of AI content I am extracting from our company retreat, with one more to follow this week (next week’s is probably the best one).

During the retreat, we had a variety of presentations from staff, some of which were longer than others. We needed a way to keep us on schedule.

Join me this week as I reinvent the timer in the age of AI.

You'll notice I haven't yet explained the “✨” part. That is on purpose; you’ll have to read through, or at least skim, to get to that part!

tl;dr - An AI-powered, automatically interrupting timer is as annoying as you would expect—but also funny.

A GIF of Me (Christopher) at my desk holding my hands up in what is now accepted as the hand motion for "Sparkles"

✨ologue

A timer was the obvious solution for keeping everyone on schedule, but I had a few requirements beyond a timer on my phone:

  1. Both the audience and the presenter should be able to see the time remaining.
  2. Auditory warnings at 10 minutes, 5 minutes and 1 minute remaining.
  3. An AI to “Roast or Boast” the presenter.

Building a Roast or Boast AI Timer

I started with Claude, like I do for many experimental projects, brainstorming different components of the app. Here is the general outline that Claude created based on our back and forth:

The AI Mood Swing Timer

The Setup:

  • Big screen shows the timer + AI commentary
  • Audience scans QR code to join on their phones
  • They continuously vote on the AI's "mood": 🔥 Hype Mode or 💀 Roast Mode

How It Works:
The AI's personality shifts based on real-time audience votes:

  • Hype Mode majority: "ABSOLUTELY ELECTRIC! You're like a TED Talk and a rock concert had a baby! 5 minutes left!"
  • Roast Mode majority: "We've been on slide 3 for what feels like geological epochs. 5 minutes remain, if we're lucky."
  • Split vote = Chaos: AI gets confused and combines both: "Your passion is INSPIRING but also... are we really still discussing the font choice? 5 minutes!"

The Escalation:
As time runs down, the AI gets more extreme in whichever direction the audience chose:

  • Final minute in Hype Mode: goes full sports announcer
  • Final minute in Roast Mode: chef's kiss levels of sarcasm
  • Final 10 seconds: AI does dramatic countdown regardless of mood

Bonus Chaos: Audience can also trigger special effects (air horns, applause, sad trombone) but only once per person.

Want me to build this? I can create a working version with the Claude API!

🕰️
While building this thing—I was, like Claude—calling it Hype or Roast. It wasn’t until I wrote this episode that I realized it should have been titled “Boast or Roast.” Oh well! It was also Claude who named it “AI Mood Swing Timer.”

From here, I had Claude create an “MVP” of the application. I didn’t provide much help other than confirming that I had API keys for both the OpenAI Whisper API and the Claude API.

I was able to download Claude’s MVP and get it running with just a few configuration changes.

Total time invested: 15 mins.

I booted up my favorite coding tool, Codebuff, tested, and made some quick changes, adding a pause button, a mute button and a few other odds and ends to kind of round out the tool.

Total time invested: 35 mins. (15 from before + 20)

From here, I proceeded to take over and commit the code into GitHub. I fell straight into spending another hour trying to fix a git issue because I accidentally committed an API key, then I had a detached head. Fortunately, GitHub tries hard to prevent that from being pushed, so it was only a local mess and no API keys to revoke.

Total time invested: 95 mins.

A graph showing where I spent my time on this project: 15.8% on initial design, 21.1% on features with Codebuff and 63.2% on manually fixing my mess in Git

One thing about this kind of application is that it is disposable. I don’t care much exactly how it looks, what library it uses, or what the architecture is. Building an application that you want to maintain for a (long) while takes more care—and time—to build.

But I don’t think that will always be the case! When we have AI coders that can fix just about anything themselves, do we really care if there is duplicate code or if it doesn’t use our favorite library? Probably not if it works—if it solves the problem we have.

To view the entire source code, you can access it on GitHub.

📣
PSA: You should never commit API keys to GitHub repos, even when they are private. While I have no doubt that GitHub is plenty secure, it isn’t designed to hold secrets; that’s what tools like 1Password or other password managers are for.

The Origin of “Sparkles”

I never actually used the “voting” feature to adjust the “Hype” that Claude created; it seemed like too much. However, we did do a few presentations with it providing live commentary.

You don’t want this.

I only did this to myself, and one other staff member (at his request)—It is really hard to stay on topic when something keeps interrupting you.

I wish that I had a video of this happening, but I don’t. Instead, you can have this GIF:

A GIF of a man talking with the text "Stop Interrupting Me While I am Interrupting You"

One of the best things about it was that it would read the “short code” or text definition of an emoji. So when it was telling you something positive, it might provide the text:

There’s a hot take, process doesn’t mean quality ✨

But what it would say out loud was:

There’s a hot take, process doesn’t mean quality sparkles.

Bonus Emoji

🎭 = Theater masks representing the performance arts

🔥 = Fire

💫 = Swirling star dizzy symbol

A screenshot of my Emoji Speaker App, which you can try below, poised to say the words "Thanks for reading Almost Entirely Human Fire Sparkles"

Speaking of disposable apps, try the emoji speaker yourself!

What?

Now ✨ is how we celebrate! If someone does something neat or interesting or you just want to give them props, you just say: “Sparkles”

0:00
/0:04

A short video of me with the audio of the computer reading "Thanks for reading Almost Entirely Human Fire Sparkles" while I wave my hands with a silly firework sparkles image at the end that the AI editor added at my request.

Newsologue

Epilogue

This week was pretty standard, I wrote, Holly edited. Not so much any AI editors. Instead, I experimented with the Descript tool, which utilizes AI to edit audio or video based on the transcript.

It was very confident in its ability to make changes and only reasonable at making them (as demonstrated by the half-baked sparkles at the end of the video above—I could have done at least as good, if not better, in Premiere Pro myself).

It was fun, though.