Project details

Inspiration

Every junk drawer has a dead RC car, a burnt-out bulb, an old hard drive. Inside them are perfectly good motors, LEDs, magnets, and switches — but most people can't look at a broken thing and see parts. We wanted an app where "it's broken" becomes the start of a build, not the end of one.

What it does

Photograph anything that stopped working. Gemini Vision identifies every salvageable part and crops each one out of your photo so you can confirm what it found. ReVolt then matches your parts against a library of hand-verified builds — a handheld summer fan from an RC car, a skittering bug bot, a speaker made from a dead hard drive's voice coil — and shows honestly what you have, what's optional, and what to buy (with links).

Pick a build and you get the full experience: a 3D step-by-step assembly where the actual 3D-printable body (generated per-build with OpenSCAD) appears in the scene, a live circuit simulation plus a real schematic with proper designators, an ElevenLabs voice guide you can interrupt by holding space to ask questions, a downloadable print file, and a generated PDF manual with your own scanned parts photographed inside it.

How we built it

Next.js 16 + React Three Fiber on the front; FastAPI + SQLite behind it. Gemini handles vision (with bounding boxes for part cropping via Pillow) and the conversational build agent. ElevenLabs narrates every step. OpenSCAD renders a parametric printable body into STL for every build — the same mesh you see in the 3D scene is the one you print. fpdf2 generates the manual, react-pdf pages through it in-app. Safety is architectural: wiring comes only from hand-verified recipes; the AI identifies parts and answers questions, but it never invents a circuit.

Challenges we ran into

Free-tier reality: Gemini's per-model daily quotas and a fully drained ElevenLabs account mid-build forced us to engineer resilience — a model-fallback ladder across six Gemini variants, multi-key rotation, and content-hash caching so identical narration is synthesized exactly once. Browser autoplay policy silently ate our voice answers until we unlocked a persistent audio element during the user's gesture. And making 3D wires actually attach to parts meant redesigning them as endpoint-based sagging tubes instead of placed props.

Accomplishments we're proud of

The chain is real end-to-end: a photo of an opened hard drive correctly detects the voice coil, platter, and spindle motor — and forty seconds later you're watching that drive become a speaker on a printed easel, with a schematic that an EE wouldn't laugh at.

What we learned

Verified recipes beat generated ones for anything involving electricity. Quota is a design constraint, not an ops problem. And the confirm-your-parts step — the least flashy screen we built — is what makes everything downstream trustworthy.

What's next

Image-to-image final renders from the 3D scene, community-submitted verified recipes, and a parts-pooling mode: scan five broken things, build one great one.

Built With

Share this project:

Updates