Steady - Cursor Hackathon
Built in a team of four with Mert, Iñigo, and Toni for the CURSOR AI Hackathon at IE University. The challenge: make a person’s hard day easier. Top 10 out of 100+ teams.
We designed for a specific moment: it’s 2am, the CGM alarm goes off, the child is at 4.1 and dropping. The parent is standing in the dark with a phone and a number. Nothing tells them what to do with it.
Highlights
- Every existing T1D tool uses a static decision tree. We built a real physiological model instead: the Bergman Minimal Model, three coupled ODEs from published biomedical literature, personalized to the child’s insulin sensitivity factor.
- Monte Carlo uncertainty quantification across 200 runs produces honest confidence bands rather than a single predicted number.
- Layered meal absorption kinetics, IOB pharmacokinetic decay by insulin type, and exercise perturbation with three distinct mechanisms including the adrenaline spike in the first 15 minutes of mixed-intensity activity.
- Parent types one sentence. Claude extracts the medical parameters, the ODE solver runs, Claude translates the math into a plain English action plan with severity signal, treatment options, action timeline, and escalation guidance.
- Recommendations consistent with ISPAD 2022 exercise guidelines for pediatric T1D.
Tech Stack
- Vite + React + TypeScript — Frontend, Vercel
- FastAPI + Python — Backend, Railway
- scipy solve_ivp (RK45) — Bergman ODE solver
- numpy — Monte Carlo (200 runs)
- claude-sonnet-4-20250514 — NLP extraction and recommendation generation
- Recharts — Glucose curve with confidence bands
- Cursor — Built entirely with Cursor
Notes
- Choosing a physiological model over a decision tree was the most important early call. It made every subsequent technical decision obvious.
- The exercise perturbation layer was the hardest to calibrate. Football has an adrenaline-driven glucose rise in the first 15 minutes before the aerobic decline kicks in.
- The parent framing was stronger than the patient framing. A parent of a newly diagnosed child is terrified and has no tools. That reframe sharpened every product decision.
- Extraction prompt engineering was underestimated. Keeping mins_since_meal and mins_since_insulin completely independent in the Claude prompt was the critical fix.
- Deployment stability was the lesson. The product was technically strong but the chart was showing the wrong starting glucose when judges were opening URLs. Next time I need to lock deployment hours before the deadline, not minutes.
- Although I was happy with the end result, I need to focus more on how polished the frontend looks next time.
Check it out: Steady