Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Vital Weave
Inspiration
Most health apps show you one signal at a time — your sleep app shows sleep, your food log shows calories, your wearable shows HRV. But your body doesn't work in silos. We wanted to build something that looks across all your signals at once and finds the patterns that no single app can see. A student tracking exam stress, a woman monitoring her cycle, someone managing early burnout — they all generate rich data that just sits siloed. VitalWeave was born from the question: what if Claude could read all of it together?
What it does
VitalWeave is a multi-signal health intelligence platform. You load your Luna Ring / NoiseFit biometric export, mood logs, food diary, and blood report — then Claude weaves them into a single health story. It surfaces cross-signal correlations ("your HRV crashes 2 days before your mood dips"), generates 30/90/180-day risk forecasts with one concrete action each, and calibrates every insight to your age and biological sex. A built-in AI chatbot lets you ask anything about your data in plain English and get answers grounded in your actual values. A Health Master tab gives you personalised deficiency risks, biomarker targets, and — for female users — a cycle-phase guide to understand HRV and temperature shifts.
How we built it
- Frontend: Streamlit with a fully custom dark-theme CSS layer (Inter + IBM Plex Mono,
#080C12base, Plotly for all charts) - AI layer: Anthropic Claude (
claude-haiku-4-5for fast structured JSON analysis,claude-sonnet-4-6for the streaming chat) - Profile engine: Pure-Python knowledge base mapping age brackets and biological sex to deficiency risks, HRV thresholds, and biomarker targets — no API call needed
- Data pipeline: Custom parsers for NoiseFit Luna Ring exports, CSV mood logs, JSON food diaries, and PDF/text blood reports
- Session persistence: Local JSON session store so pre-built demo sessions load instantly without waiting for Claude to re-run analysis
Challenges we ran into
Getting Claude to reliably return structured JSON for a complex nested schema across all edge cases took significant prompt engineering — especially handling partial data (e.g. only 7 days of food vs 30 days of Luna Ring). We also had to compress the Luna Ring input from full JSON to a compact text format to stay within token budgets while keeping analysis quality high. Building a profile system that meaningfully changes Claude's output — not just prepends text — required careful context injection at the system prompt level.
Accomplishments that we're proud of
The cross-signal correlation engine actually finds non-obvious patterns in real data. The cycle-phase awareness for female profiles (skin temperature + HRV delta mapping to menstrual/follicular/ovulatory/luteal phases) works correctly with Luna Ring's continuous temperature data. The chat assistant genuinely knows every data point in the session and can answer specific questions like "what was my HRV on April 3rd" or "which days had SpO₂ below 95" without hallucinating. And the whole thing runs in under 30 seconds end-to-end.
What we learned
Claude is extraordinarily good at finding signal in messy, sparse health data — but only when you give it a precise output schema and compress the input intelligently. We also learned that personalisation matters enormously: the same HRV value means something completely different for a 19-year-old male vs a 45-year-old female, and building that domain knowledge into the prompt layer (rather than post-processing) produces far better insights.
What's next for VitalWeave
Direct Luna Ring / NoiseFit API integration for live sync, a longitudinal memory layer so Claude can track trends across multiple sessions over months, integration with Apple Health and Google Fit exports, and a clinician-facing export mode that formats findings as a structured pre-consultation summary.
Log in or sign up for Devpost to join the conversation.