I started with a very serious product question:
What if a dog could be accused by its own photo?
That is how a small weekend project became a fake dog courtroom where users upload a photo, receive suspiciously confident “evidence” from an AI model, and then defend the accused. The app is ridiculous on purpose. The charges are things like “unlicensed sock possession,” “suspicious crumbs near mouth,” or “premeditated couch occupation.”
But the more I built it, the less it felt like only a joke.
Because once an AI system generates evidence, even fake evidence, the interface has to answer a real design question: who gets the last word?
The first version was funny for about five minutes
The first prototype was simple. Upload an image, send it to a vision model, ask for a few playful observations, and render them as courtroom evidence.
It worked quickly enough to make me laugh. The model would notice a tilted head, a guilty-looking stare, a destroyed toy, or a blurry paw near the edge of the frame. Then it would invent a tiny legal drama around it.
The problem was that the app stopped being interesting after the first result.
The AI talked. The user watched. End of case.
That is a weak interaction loop. It makes a good demo screenshot, but it does not give the user much to do. The output may be clever, but clever output alone is not a product. It is a vending machine with jokes inside.
So I added the part that made the project worth keeping: the defense.
Letting users argue back changed the whole app
Once users could respond to the evidence, the project became less about image generation and more about interpretation.
The same photo could support multiple stories. A dog lying beside a torn pillow could be guilty of destruction, or innocent because the pillow “clearly attacked first.” A muddy paw print could be damning evidence, or proof of an adventurous public service mission in the backyard.
That small change made the app feel more human.
The AI still produced the accusation, but the user supplied context, humor, and emotional truth. The best moments happened when the model was technically right but socially wrong. Yes, the dog looked guilty. No, the dog should not be convicted.
That pattern shows up in serious AI tools too. Model output often sounds final because the interface presents it as final. A better interface leaves room for correction, context, and refusal.
“Evidence” needs a different UI than “content”
When an AI writes a poem, a caption, or a mock news headline, users understand that the output is generated content. They may edit it, ignore it, or regenerate it.
Evidence is different.
Even in a silly dog court, evidence feels like a claim. It points at something in the image and says: this means something.
That creates design responsibilities:
show uncertainty instead of only confidence;
separate visual observations from invented interpretation;
give users a clear way to challenge the claim;
avoid making the model sound more certain than it is;
keep the tone playful when the stakes are playful.
For this version, that meant labeling observations as “charges” rather than facts, giving the user a defense box, and letting the final verdict respond to both the image and the user’s argument.
The app became funnier because it became fairer.
The best feature was not generation. It was friction.
I usually think of friction as something to remove. Fewer fields. Faster uploads. Shorter paths to the result.
But this project reminded me that some friction is useful.
The defense step slows the user down just enough to participate. It turns passive consumption into a tiny act of authorship. Instead of receiving a joke, the user completes the joke.
That is a useful lesson for AI product design. Not every interaction should be reduced to “prompt in, output out.” Sometimes the product gets better when the user has to make a choice, add a constraint, or push back.
AI can produce a first draft. The user makes it meaningful.
Sound made the fake courtroom feel alive
The visual interface was only half the mood. A courtroom needs rhythm: a gavel hit, a dramatic pause, a tiny suspense cue before the verdict.
I did not want to build a full audio pipeline just to test that feeling, so I treated sound as another lightweight prototype layer. If you are experimenting with short effects or separating parts of a track for UI moments, a browser tool like an ai beat splitter can help isolate usable pieces before you commit to a more serious audio workflow.
The same goes for playful verdict songs. A few users wanted the app to generate a short “case closed” jingle from the final ruling. For that kind of sketch, a tool that can make a song from lyrics free is useful as a draft machine, not a replacement for taste.
The important rule is the same as with visual AI: generated media should be editable, rejectable, and clearly part of the user’s creative process.
The model was not the product
It is tempting to describe an AI app by naming the model and the endpoint. The real product, though, lives in the decisions around the model.
What do you ask for?
How much output do you show?
Where do you reveal uncertainty?
Can the user correct the system?
Does the interface make the AI feel like a judge, a witness, a collaborator, or a toy?
For this prototype, I wanted the AI to feel like an overconfident prosecutor. That gave the rest of the product a shape. The user was the defense attorney. The verdict engine had to listen to both sides. The UI copy had to stay playful without making the model feel authoritative.
Once I had that frame, feature decisions became easier.
What I would change in the next version
If I build another version, I would improve three things.
First, I would make the evidence more inspectable. Each charge should map to a visible part of the image, even if the interpretation is silly. Users should know what the model thinks it saw.
Second, I would add adjustable tone. Some users want dry legal comedy. Others want cartoon chaos. Tone is not just styling; it changes what kind of participation feels natural.
Third, I would make the defense matter more. The current version can respond to the user’s argument, but I would like the app to visibly weigh claims: photo evidence, user context, prior behavior, and final plea.
None of that requires pretending the app is serious. It just means respecting the interaction enough to make the joke land.
The silly projects teach clean lessons
Small joke apps are underrated.
They remove the pressure to sound important, which makes design problems easier to see. A dog-courtroom demo is not going to change law, pet care, or computer vision. It is a playful interface wrapped around a familiar AI pattern: a model sees something, generates a claim, and the user has to decide whether to accept it.
That pattern is everywhere now.
The difference between a shallow AI demo and a useful AI product is often not the model. It is whether the interface gives the user enough agency to disagree.
Sometimes that agency looks like a correction field. Sometimes it looks like version history. Sometimes it looks like an appeal button.
And sometimes it looks like defending a dog who absolutely did steal the sandwich, but deserves acquittal anyway.
Top comments (0)