Project: ROAST ME 🎤🔥
The Inspiration
My inspiration came from a lifelong love of stand-up comedy and a personal dream of one day switching careers to take the stage myself. I realized that while AI can write a joke, it often fails at performance.
I didn’t just want to build a chatbot; I wanted to build a digital comedy club. My goal was to capture the "lightning in a bottle" feel of a live set—the timing, the crowd energy, and the sharp-witted observation of a seasoned roast master. I wanted to create my own stage first, so I could eventually inhabit it as a comedian.
How I Built It
I designed the project as a multi-stage creative pipeline that bridges the gap between multimodal AI and digital performance:
- The Observation: Using Gemini 3 (Vision), the system "scans" a user-provided image to identify visual hooks—ranging from questionable fashion choices to specific facial expressions.
- The Script: Gemini 3 then drafts a personalized roast, acting as the head writer to ensure the humor is sharp and contextual.
- The Voice: I utilized Gemini 2.5 TTS to convert that text into a realistic comedic delivery, focusing on the cadence and rhythm necessary for a punchline to land.
- The Choreography: Finally, I returned to Gemini 3 to act as the Technical Director. It generates an animated script that syncs specific character animations (like pointing, smirking, or leaning in) with the audio cues, creating a fully choreographed "dance" between the AI's voice and its 3D avatar.
What I Learned
Through this process, I learned that timing is the ultimate variable. In comedy, a punchline delivered half a second too late isn't a punchline—it’s just a sentence. I learned how to prompt Gemini 3 to think "cinematically," moving beyond simple text generation into the realm of animation logic and spatial awareness. I also gained a much deeper understanding of how to bridge the gap between high-level LLM outputs and low-level character triggers.
Challenges Faced
The road to the "Digital Apollo" wasn't without its hecklers:
- The Choreographed Dance: Getting the AI to decide when an animation should trigger based on the vibe of the joke was incredibly difficult. Syncing the TTS audio with dynamic character movements required precise script tagging and logic.
- 3D Web Integration: I had to get my hands dirty with 3D models in a web environment. Navigating the world of WebGL and optimizing assets was a major learning curve. I spent significant time balancing texture quality with load times to ensure the comedy set loaded smoothly without crashing the browser.
- The "Roast" Balance: I had to fine-tune the logic to ensure the humor stayed "punchy" and clever without becoming genuinely mean, maintaining that classic roast balance where the audience feels part of the joke rather than the victim of it.
What's next for Roast Me
Real-Time Audience "Heckle" Integration I plan to introduce a live feedback loop using Gemini’s real-time multimodal capabilities. Imagine a "Live Mode" where users can heckle the AI via text or voice, and Gemini 3 processes that input to generate an instant, improvised comeback. This turns the experience from a scripted show into true interactive crowd work.
Social "Roast Battles" Comedy is a social sport. I want to build a "Battle Mode" where two users can upload photos, and the AI acts as the mediator and judge, roasting both simultaneously and declaring a winner based on who has the "most roastable" features.
Expanded Stage Customization & "Personalities" Leveraging the 3D pipeline I've built, I want to allow users to swap out the environment. Whether it's a gritty underground NYC club, a posh theater, or a literal "roast over a campfire," the AI will adjust its comedic tone and the avatar’s animations to match the venue's vibe.
Viral Clip Export (The "Creator" Tool) To help aspiring comedians (like myself!), I want to add a "Clip Generator" that automatically formats the AI’s performance into vertical videos with burnt-in captions—perfect for TikTok or Reels. It turns the project into a content-creation engine for the comedy community.
Built With
- cloud-functions
- firebase
- gcloud
- javascript
- nuxt
- python

Log in or sign up for Devpost to join the conversation.