Inspiration
Choosing an outfit is often more fun with a second opinion. We wanted to bring that shared experience to pet fashion. What if you could show a friend your pet’s video, explore different outfits together, and choose a favorite—all in the same room?
That idea became PetFit: a shared AI virtual fitting room for pets.
What it does
PetFit brings a pet owner and a friend into a shared video room.
The owner uploads a prerecorded pet video, which the friend watches through Vonage. The owner pauses at a clear moment, captures a frame, and selects an outfit. Gemini then generates a virtual try-on image using the captured frame and outfit reference.
Both participants can view the generated looks. The friend votes for a favorite, and the owner makes the final selection.
PetFit provides visual style previews, not accurate sizing or assessments of comfort and physical fit.
How we built it
We extended the Vonage Node.js/Express starter application and used OpenTok.js for the browser-based video experience.
The uploaded MP4 is published as a custom video stream through Vonage. For image generation, we capture a frame directly from the owner’s local video and send it, together with the selected outfit reference, to Gemini through the server.
Shared looks, votes, and the final selection are held in server memory. Vonage signals notify participants when something changes, and each browser fetches the latest room state. This also allows a friend joining later to see existing looks and votes.
The interface separates the two roles: the owner controls capture and generation, while the friend watches and votes.
Challenges we ran into
The main design challenge was making this a shared experience rather than a single-user image generator. We needed clear ownership of controls while keeping both participants informed.
The technical design also needed to account for people joining at different times. We chose a shared server state so the experience would not depend on receiving every previous update.
Another important challenge is visual consistency: generated previews should retain the pet’s recognizable appearance while adding the selected outfit. These images remain creative previews rather than guarantees of a real garment’s fit.
Accomplishments that we're proud of
We are proud of shaping PetFit around a complete social interaction: show a pet, explore a look, get a friend’s vote, and make a choice.
Our UX/UI and development work focused on giving each technology a clear role. Vonage supports the shared session, while Gemini creates the outfit previews that participants discuss and choose between.
What we learned
We learned that adding another participant changes more than the layout. It requires clear roles, shared state, and visible feedback about what is happening.
We also learned to distinguish the live experience from the generated result: participants share a video session, but each virtual try-on is created from one selected frame.
Keeping the scope focused helped us prioritize one complete journey over a larger set of disconnected features.
What's next for PetFit
We would like to explore:
- Live camera input alongside prerecorded pet videos.
- Better preservation of pet markings and outfit details.
- Easier side-by-side comparison of generated looks.
- Saved fitting sessions that friends can revisit.
- Usability testing with pet owners and their friends.
Before expanding beyond the hackathon prototype, we would also add secure room access and more durable storage.
Built With
- antigravity
- express.js
- gemini
- node.js
- vonage

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