Inspiration
Every year, millions of EV batteries get retired — not because they're dead, but because no one can prove they're still good. A used Tesla battery might have 85% of its original capacity left, enough to power a small business's solar storage for another 5 years, a hobbyist's home energy wall, or an e-bike conversion in someone's garage. But without any certification or verified health data, nobody will touch them.
We built ReVolt OS because the problem isn't the batteries — it's the trust gap. And trust is a software problem.
What it does
ReVolt OS serves three people: the technician who audits the battery, the builder who repurposes it, and the buyer who needs to trust it. The Battery Passport is the thing that connects all three.
Screen 1 — Audit Anyone with a battery telemetry CSV and a photo of the battery sticker can run an audit — a solar installer, an EV repair shop, or a technically capable individual who pulled their own Nissan Leaf battery. Gemini analyzes both files simultaneously, reading the discharge curve for thermal stress patterns and the sticker image for manufacturer identity, and returns a verified Battery Passport: a structured JSON certificate with a health grade (A+ to F), remaining useful life in years, detected safety risks, and a recommended cell configuration for upcycling.
Screen 2 — Passport The certificate renders as a visual document showing State of Health, cycle count, peak temperature history, EU 2026 Battery Passport compliance status, and a QR code. A regular person buying a second-hand e-bike on Facebook Marketplace scans the QR, sees "Grade B — 78% health — 4.2 years remaining," and makes a confident purchase without ever touching the audit tool. Every battery is stored as a Digital Twin in MongoDB Atlas with a 3072-dimension vector embedding of its telemetry.
Screen 3 — Assembly A technician clicks "Start Assembly" and the ElevenLabs Safety Foreman wakes up — a hands-free conversational AI agent that has already read the passport data via tool calling. It walks the user through a strict five-step safety state machine:
Inspection → Discharging → Module Separation → Reassembly → Complete
Every confirmed step gets logged to the passport as a compliance trail. The microphone button shows a live radial frequency visualizer so the user knows the AI agent is listening or talking.
Blueprint Viewer A standalone deliverable for the end customer: an interactive 3D module layout, tool requirements, step-by-step procedure with expected voltage readings, and a post-upcycle verification table.
How we built it
We split into four parallel workstreams that converged around a shared JSON manifest — locked at hour 2 and treated as a contract between teammates.
AI pipeline — Gemini
We use gemini-3-flash-preview for multimodal auditing, feeding the entire
telemetry CSV alongside the battery sticker photo in a single call and
exploiting the 1M token context window to reason across both sources
simultaneously. A second call to gemini-embedding-001 converts the telemetry
into a 3072-dimension behavioral fingerprint. The audit script also generates
a Battery Passport PDF using ReportLab and uploads it directly to the
ElevenLabs agent's knowledge base — so the voice agent already knows the
battery before the technician opens the Assembly page.
Database — MongoDB Atlas Each battery is stored as a Digital Twin with full schema validation. We created an Atlas Vector Search index on the behavioral embedding field with filter support on status, chemistry, and health grade — enabling queries like "find certified LFP batteries that behaved like this one." MongoDB Change Streams watch for safety workflow state transitions and trigger the ElevenLabs agent with updated context at each step.
Voice agent — ElevenLabs
We use the ElevenLabs Conversational AI SDK with useConversation from
@elevenlabs/react. The agent has a tool call:
check_database— queries the live MongoDB document mid-conversation, and logs completed steps back to the passport via the API safety workflow endpoint.
This means an individual with no prior experience handling high-voltage batteries gets the same safety guidance as a trained warehouse technician.
Frontend — React + Vite + Tailwind Three pages connected via React Router. The AuditPage handles drag-and-drop file upload with a multi-step loading animation. The PassportPage renders the full certificate with grade color coding and QR code. The AssemblyPage uses the Web Audio API to drive a canvas-based radial frequency bar visualizer — two-channel FFT showing both mic input and agent output simultaneously around the mic button.
Challenges we ran into
ElevenLabs tool calling latency was the hardest problem. The agent needs to query MongoDB mid-conversation and return the result within the natural flow of speech — without awkward pauses or dropped context. Getting the timing right between tool call response and the agent's next utterance required careful tuning of the system prompt and response buffering.
Accomplishments that we're proud of
End-to-end loop works. Upload CSV and photo → certified passport PDF → digital twin with vector embedding → voice agent that reads the live database and knows exactly which battery it's guiding you through.
Radial audio visualizer. Two-channel Web Audio FFT rendered on a canvas with
requestAnimationFrame, zero React state in the render loop, showing both mic input and agent output simultaneously.Blueprint viewer. Interactive 3D Three.js module layout with a nine-item safety checklist that must be fully completed before the voice walkthrough button activates.
Passport-to-agent pipeline. The moment Gemini finishes the analysis, the passport PDF is uploaded to ElevenLabs — the agent is ready before the technician even opens the Assembly page.
What we learned
Gemini's 1M context window is genuinely useful in ways RAG is not. Feeding an entire battery log history as a single context lets the model spot longitudinal patterns — a battery that slowly overheated over six months — that a retrieval approach would miss entirely.
Designing for voice means designing for time, not just output. Latency acceptable in a chat interface is jarring in speech. We spent more time on when the agent speaks and how it recovers from tool call delays than on the tool logic itself.
The individual user sharpened every design decision. When your user might be an experienced technician or someone doing this for the first time, the voice agent's job isn't just guidance — it's harm prevention.
What's next for ReVolt OS
Real EV telemetry integration via the Smartcar or Enode API — connect your EV app and get an instant passport without touching a spreadsheet.
Public passport URLs — a no-account QR landing page so any buyer can verify a battery without installing anything or creating a profile.
The marketplace — a searchable inventory of certified digital twins where anyone, an SME in Lagos, a solar hobbyist in rural Germany, an e-bike shop in Jakarta, can buy a verified Grade A battery from a lease return anywhere else. The circular economy for lithium doesn't have a trust layer yet. That's what we're building.
Log in or sign up for Devpost to join the conversation.