Inspiration
At every Rutgers career fair, formal, and club photoshoot, students scramble for clothes they'll wear once, while the blazer they need is hanging in a roommate's closet. Borrowing already happens, just through messy group chats where nobody knows what anyone owns or how it fits. I wanted to turn the closets around you into one shared wardrobe.
What it does
- Your Rack: snap a photo of your clothes, even a full-body shot or several items at once, and Gemini finds each garment, cuts it out, and tags it: category, colors, style, formality, warmth, weather-readiness, and fit (silhouette, length, rise), so it knows baggy from slim. Every tag is editable.
- AI stylist: ask in plain words ("I have a 6 hour flight"), or tap Style this piece on any item to build outfits around it. Gemini builds outfits from your Rack and your friends' and groups' shared Racks, using the live forecast for your location. Swap any piece, lock the ones you love, and it learns your style from your swaps.
- See it on me: Gemini renders the outfit on your own photo, keeping your face, body, and pose.
- Borrowing: one tap sends a borrow request; friends accept or decline from the bell, and lent-out pieces disappear from everyone else's options until returned.
- Groups: shared closets for friend groups, dorm floors, or clubs.
How I built it
- Gemini 3.8 Flash for scene analysis (multiple garments per photo, bounding boxes, visibility and overlap), structured tagging with fixed schemas, and the stylist, which reasons over shared closets and live weather.
- Nano Banana 2.1 for on-body renders.
- rembg (u2net + cloth segmentation) for image cutouts, including garments worn in full-body photos.
- Backend: Python, FastAPI, SQLModel + SQLite. Frontend: Next.js, Tailwind, shadcn/ui, built phone-first.
- Live weather from Open-Meteo; served over one HTTPS origin via a Cloudflare tunnel.
- Built solo, with Claude Code as a coding assistant. All AI features in the app run on Gemini.
Challenges I ran into
- Real photos are messy: stacked jeans, folded clothes, a polo half-hidden in a LinkedIn headshot, different poses in pictures. I had Gemini detect each garment and report visibility, and fit is marked "unknown" instead of guessed when it can't be judged.
- Separating clothes from the person in worn photos needed cloth segmentation guided by Gemini's category.
- Keeping AI outfits valid: every outfit is checked in code (one top, one bottom, one pair of shoes, only items you own or can borrow).
- Speed: styling takes a while, so I cache outfits and renders and show progress while Gemini works.
Accomplishments that I'm proud of
- From a single photo, Rack identifies every item, from earrings to a half-hidden jacket, and marks what it can't fully see instead of guessing its fit.
- The stylist knows when to borrow a friend's blazer and when your own rain jacket is enough.
- Built the whole thing solo in under 24 hours: closet, AI stylist, on-body renders, and borrowing between friends.
What I learned
- Real data is much messier than what's used in development.
- Letting the model say "I don't know" made the app more accurate than forcing a guess.
What's next for Rack
- Campus-wide group closets for clubs, dorms, and teams.
- A fit history that doubles as your style profile.
- "What's missing?": ask Gemini to find the gaps in your closet and suggest the pieces worth buying.
- Borrowing upgrades: return reminders, a lent-out view for owners, and borrow history.
Built With
- claude-code
- fastapi
- gemini-api
- next.js
- python
- react
- sqlite
- sqlmodel
- typescript
Log in or sign up for Devpost to join the conversation.