Inspiration

Concussion recovery breaks down in the space between appointments. After a brain injury, people are told to "balance activity and rest" — but with no way to answer the everyday question: "Can I do one more task, or will I pay for it tomorrow?" Most apps either overreact to a single bad day or quietly turn into a symptom-tracking chore. We wanted something that helps you pace yourself in real time without ever pretending to be a doctor.

What it does

Pace turns a 60-second symptom check-in into a living, adapting recovery plan.

  • Real-time check-ins — rate headache, dizziness, mental fog, and fatigue. Each check-in is saved on-device and appended to your personal history.
  • A model that learns from *you* — a bounded linear regression retrains on your own growing check-in history to estimate today's activity capacity, and shows its observation count and pattern fit so the "why" is always visible.
  • A time-aware daily rhythm — a live clock highlights the current recovery window and adapts activity durations around your nervous system.
  • Trends over noise — 7-day and 3-week charts, capacity forecasts, and check-in streaks are all built live from your real data, emphasizing direction over any one difficult day.
  • Care circle with consent — permission-level sharing controls and a downloadable visit brief so you walk into an appointment with the whole picture.
  • Safety first — a 5-minute guided visual reset with a real breathing timer, plus concussion danger-sign escalation that routes new or worsening symptoms to urgent guidance instead of an AI answer.
  • Private by default — no account, camera, microphone, analytics, or uploads. Everything stays in your browser, and it installs as an offline PWA.

How we built it

  • React 19 + TypeScript + Vite 8 for a fast, type-safe single-page app.
  • On-device ML using simple-statistics — a bounded linear regression (linearRegression, rSquared) trained entirely in the browser on the user's own observations.
  • A real-time data engine (paceStore.ts) that persists timestamped check-ins to localStorage and derives trends, streaks, capacity, and model fit on every change via custom React hooks.
  • Recharts for the live symptom and capacity visualizations, Lucide for iconography.
  • vite-plugin-pwa / Workbox for installable, offline-capable delivery.
  • A calm, accessible design system with an animated ambient UI, motion that respects prefers-reduced-motion, and full keyboard/ARIA support.

Challenges we ran into

  • Being useful without being a medical device. The hardest design work was drawing a hard line: the model supports pacing decisions only — it never diagnoses, predicts recovery dates, or overrides a clinician. New/worse symptoms deliberately bypass the AI and go straight to safety guidance.
  • Making it real, not a demo. We replaced every hardcoded value with a genuine persistence layer so the charts, streaks, and model all update the moment you check in — and survive reloads.
  • Responsible AI with tiny data. With only a handful of observations, we had to keep the regression bounded and transparent (surfacing pattern fit) so it degrades gracefully instead of overreaching.
  • Accessibility under motion. Concussion patients can be motion- and light-sensitive, so every animation is gated behind reduced-motion and the whole app is screen-reader labeled.

Accomplishments that we're proud of

  • A fully on-device, privacy-first recovery companion — zero data leaves the browser.
  • An explainable, self-retraining model that shows its own confidence.
  • A polished, installable PWA that works offline and adapts to the real clock.
  • A responsible framing that keeps clinical decisions with clinicians.

What we learned

  • Trust in a health tool comes from transparency and restraint, not from more predictions.
  • On-device ML is genuinely viable for lightweight personal models — and it's a powerful privacy story.
  • Small, honest UX details (a live timestamp, a visible observation count, a "why this changed" note) do more for credibility than a bigger model.

What's next for Pace — Concussion recovery, at your rhythm

  • A 30-second cognitive reaction test as an additional objective signal.
  • Capacity forecasting with confidence bands and real correlation discovery (sleep, walks, screen time).
  • Optional encrypted backup and a read-only clinician view.
  • Real device signals — screen-time and ambient-light guardrails for photosensitivity.

Built With

Share this project:

Updates

Submission history