Inspiration
Buying or keeping a car is never just about the car. A move, a second kid, a longer commute, a tighter budget. Those life changes arrive as messy thoughts, not spreadsheets. For Toyota Financial Services' "What's Your Next Move?" challenge, we wanted a product that listens to that mess, builds a living digital twin of your vehicle, and explores futures without pretending AI should invent the math.
Fork exists because the next move should be clear, personal, and allowed to be "keep your car."
What it does
Fork is an AI digital twin for Toyota owners.
- Enter a VIN. A 3D model of your car assembles from particles.
- Type a brain dump about what is changing in your life.
- Gemini extracts structured life events (move, mileage, family, cargo, budget). You confirm before anything counts.
- The timeline forks into branches. Deterministic TypeScript simulates keep vs replace over time.
- You get a suitability-aware recommendation and one concrete next step, which can honestly be keep or inconclusive.
Demo path: 2022 Camry SE today, optional morph to a 2024 RAV4 Hybrid XLE, break-even exploration, and a clear Toyota next action.
How we built it
Product architecture
- Next.js App Router, React, TypeScript, Tailwind, Three.js / React Three Fiber for the car stage
- React Flow + Recharts for timeline and comparison
- Zod contracts between modules; pure simulation in
/simand/decision - Rule that never bends: AI interprets, code calculates. Every displayed number comes from deterministic TypeScript and carries a source label.
Google Gemini API (language understanding + grounded explanation)
interpret: Gemini turns messy natural language into validated life events (value + certainty + quoted phrase). Output is Zod-checked, confirm-gated, and never invents facts the user did not say.explain: Gemini writes human-readable "why" prose from computed simulation results only. AnumberCheckrejects any invented numeral and falls back to a deterministic template.- Server-side only (
GEMINI_API_KEY/GEMINI_MODEL). Offline path keeps the full demo working if Gemini is unavailable.
Snowflake REST API (vehicle knowledge retrieval for AI features)
- Public vehicle knowledge for our two supported cars lives in Snowflake (
VEHICLE_KNOWLEDGE). - On explain, Fork calls Snowflake's SQL REST API with a programmatic access token, retrieves seats / cargo / MPG / illustrative MSRP (each with source labels), and passes those records into Gemini.
- Fixed, parameterized, read-only SQL. Gemini never writes SQL. Unconfigured or failed retrieval falls back to local fixtures with honest provenance headers.
- Pattern: RAG-style grounded explanation via Snowflake REST, then Gemini prose over retrieved facts + computed verdicts.
Cursor + Grok Bot (SpaceXSI A-Team workflow)
- Cursor was our core AI coding agent across four parallel workstreams (3D, product UI, data/AI, simulation). We used Cursor agents to scaffold modules against frozen contracts, write tests with the code, and keep merges honest.
- We integrated Grok Bot automation into the workflow to accelerate builds, triage handoffs, and keep CI / agent loops moving so the team could ship the 90-second demo path without bottlenecking on one laptop.
- Cursor + Grok Bot was how we assembled our hackathon A-Team: agents for velocity, humans for product judgment and the Toyota honesty rules.
Challenges we ran into
- Keeping AI powerful without letting it invent numbers, diagnoses, or unconfirmed life events.
- Honest vehicle matching: never claim exact unless model, year, trim, paint, and geometry are verified.
- Offline-first demo: Gemini and Snowflake must degrade cleanly with labeled fixtures.
- Four-developer ownership boundaries under a hackathon clock: contracts first, mocks second, real modules last.
- Snowflake auth / network policy for a service user + PAT, while keeping secrets server-only.
Accomplishments that we're proud of
- A working brain-dump → confirm → branch → keep-vs-replace loop.
- Particle car reveal and Camry → RAV4 morph that sells the twin.
- Gemini extraction that quotes the user and waits for confirmation.
- Snowflake-backed vehicle knowledge feeding Gemini explanations without changing the deterministic sim.
- A decision engine that can return keep or inconclusive, not only "buy."
- Shipping with Cursor as the core coding agent and Grok Bot automation in the loop.
What we learned
- Separating interpretation from calculation makes AI products feel trustworthy.
- Confirm gates beat clever prompts.
- Retrieval (Snowflake) + generation (Gemini) is stronger than generation alone when every number has a source.
- Multi-agent coding with Cursor and Grok Bot works when interfaces are frozen and tests travel with features.
What's next for Fork
- Deeper Toyota Financial Services sandbox finance signals (when available)
- More supported vehicles with verified assets
- Richer Snowflake knowledge docs and tighter provenance UX
- Return-visit memory that still never silently mutates the confirmed profile
Built With
- ai
- claude
- cursor
- google-gemini
- grok
- hacktx
- nextjs
- rag
- react
- recharts
- rsor
- snowflake
- tailwind-css
- three.js
- typescript
- zod
Log in or sign up for Devpost to join the conversation.