This is a submission for Weekend Challenge: Dog Days Edition
What I Built
Pic to Bark. Upload a photo of your dog, it figures out the breed, comes up with a first-person line of what the dog is probably thinking, and reads it out loud in a voice you pick. If the guess is shaky, it says so instead of making one up.
Demo
Live: Pic to Bark
Video sample:
Code
How I Built It
Next.js app, Tailwind for styling. Three breed-detection engines to pick from: Hugging Face for a server-side image classifier, Google AI on-device via MediaPipe (runs fully in the browser, no server call), and a joke "Magic Conch" option that ignores the photo on purpose. If Hugging Face or Google AI is down, it automatically falls back to the other one.
The breed gets wrapped into a short line as if the dog is saying it, then ElevenLabs reads it out loud. If ElevenLabs is unreachable, the browser's own speech synthesis reads it instead. There's also a bring-your-own-key option for both Hugging Face and ElevenLabs, with a live quota check, for anyone who wants to try it past the shared quota.
Every translation gets logged to Snowflake: breed, line, which engine answered, and the model's confidence. The page reads that back as a breed leaderboard, aggregate stats, an hourly trend, and a check on whether the joke engine's punchlines actually come up close to evenly.
Prize Categories
Best Use of Snowflake, Best Use of ElevenLabs, Best Use of Google AI.
- Snowflake: every translation is logged with breed, caption, engine, and confidence, then read back into a live leaderboard, aggregate stats, an hourly trend chart, and a check on how evenly the joke punchlines are distributed.
- ElevenLabs: turns the generated line into voice, with a bring-your-own-key option, a live ElevenLabs quota check for both the shared and personal key, and a browser speech synthesis fallback so voice never fully breaks.
- Google AI: on-device breed classification via MediaPipe, running entirely in the browser with no server round trip, and automatic fallback to/from Hugging Face if either one is unavailable.
Top comments (0)