Haven
AI Body-to-Emotion Translator for Neurodivergent Youth
Instead of asking "How do you feel?", a question many cannot answer, Haven asks "What does your body feel like?" and uses AI to bridge the gap.
Inspiration
Alexithymia, the inability to identify and describe one's own emotions, affects roughly 50% of autistic individuals, compared to about 10% of the general population. For neurodivergent youth aged 10–18, that gap creates a devastating cascade: a physical sensation arrives, it can't be named as an emotion, it can't be communicated as distress, and it escalates into a meltdown or shutdown followed by shame and confusion.
We kept noticing that every existing tool (Zones of Regulation, Mood Meter, How We Feel, generic chatbots) makes the exact same mistake: they ask "How do you feel?", which is precisely the question someone with alexithymia cannot answer. It's like asking someone who's lost their glasses to "just look harder."
Recent clinical interoception research pointed us to a different starting point: the pathway to emotional awareness for alexithymic individuals is body-first, not label-first. The body already knows what's happening; the vocabulary is what's missing. That single reframe became the seed for Haven: stop asking kids to name a feeling, and start asking them where and how their body feels something instead.
What it does
Haven walks a user through a clinically-informed, four-step flow that turns physical sensations into emotional vocabulary:
- Tap: Users select from 12 zones on an interactive 3D body model (head, chest, stomach, hands, etc.)
- Describe: For each zone, they choose sensations, such as tightness, tingling, warmth, pressure, or heaviness, and rate intensity on a 1–5 scale
- Map: An AI pipeline analyzes the constellation of body signals and proposes 2–4 emotion hypotheses, phrased as "This might be…" rather than a diagnosis. Users confirm or ask to remap
- Share: Haven generates personalized, evidence-based coping strategies and a shareable Communication Card that a nonverbal or overwhelmed teen can hand to a parent, teacher, or therapist to say "this is what I'm feeling and what helps"
Over time, Haven also builds a Personal Emotion Dictionary for each user, a local-first learning engine that maps their recurring body-sensation patterns to emotions, so the vocabulary genuinely becomes theirs rather than something borrowed from a generic feelings chart.
The whole experience is "Try First, Save Later": it's fully usable with zero sign-up and zero PII, with optional Google OAuth for cloud sync across devices later.
How we built it
The frontend is a Next.js 16 (App Router) / React 19 / TypeScript app. The 3D body model, the centerpiece of the experience, is built with React Three Fiber and Three.js: 12 clickable meshes, GSAP-driven camera transitions, and intensity-mapped emissive glow shaders that shift from cool mint at low intensity to warm coral at high intensity. If WebGL isn't available, it degrades automatically to a 2D SVG body map so no one gets stuck.
The AI core is a LangGraph JS StateGraph running server-side in Next.js API routes, a genuine multi-node, branching workflow rather than a single prompt chain. It parses the incoming body data (with crisis-keyword detection baked into that first step), routes to an emotion-mapping node backed by Gemini 3.6 Flash as the primary reasoning model with Groq Llama 3.3 70B as a parallel/fallback model, pauses for human-in-the-loop confirmation (with up to two remap cycles if nothing feels right), and then fans out in parallel to update the user's emotion dictionary, generate coping strategies, and render the Communication Card.
Persistence is local-first: every check-in writes to IndexedDB immediately for instant, offline-capable use, then pushes non-blockingly to Supabase (Postgres) if the user has opted into an account, with Row-Level Security ensuring nobody can read anyone else's data. Zustand handles client state, Zod validates every AI output against a schema, and DOMPurify plus XML delimiter wrapping guard against prompt injection.
Design was treated as a safety feature, not decoration: dark-mode-only glassmorphism, zero emojis (too ambiguous and culturally inconsistent for this audience), full respect for prefers-reduced-motion, WCAG 2.1 AA contrast and 44px touch targets, and an explicit philosophy of "calm over clever: nothing sudden, nothing bouncy."
Challenges we ran into
Getting the AI to be genuinely useful without ever overstepping into diagnosis was the hardest design problem in the project. Every prompt had to be tuned so suggestions read as tentative hypotheses a teenager could accept or reject, never as clinical labels. Building real crisis-detection logic that we could trust to route to the 988 Suicide & Crisis Lifeline and halt AI processing, without either being trigger-happy or missing genuine signals, took careful iteration on both keyword and intensity-pattern rules.
On the technical side, getting a 12-zone, shader-driven 3D body model to hit 30+ FPS on something as modest as an iPhone 12 meant aggressively budgeting polygons (8,000–15,000 triangles), compressing GLB assets, and capping device pixel ratio, all while keeping the visuals soft and inviting rather than clinical. Orchestrating a dual-LLM LangGraph pipeline with a human-in-the-loop pause in the middle, plus a deterministic static-lookup fallback if both LLMs fail, also took real work to make failover invisible to the user rather than a broken loading state.
Accomplishments that we're proud of
We're proud that Haven never once asks the question every other tool in this space asks: it flips the interaction model entirely to start from the body, which we believe is a genuinely differentiated and clinically grounded approach. We're proud of the four-layer resilience architecture (primary LLM → fallback LLM → static lookup → 2D fallback UI) that means a user is never left stranded regardless of what breaks. We shipped a real crisis-detection safety net, real Row-Level-Security-backed privacy with zero required PII, and a full LangGraph multi-node AI workflow, all while keeping the entire AI pipeline inside the free tiers of Gemini and Groq, for $0.00 in infrastructure cost.
What we learned
Building for alexithymia forced us to be rigorous about language in a way most AI products aren't. Every string, prompt, and UI label had to be re-read through the lens of "could this feel like a diagnosis, a demand, or a judgment to a 13-year-old who already struggles to talk about this." We learned a lot about interoception research and the body-first pathway to emotional literacy, and about how much of "AI safety" for a sensitive youth-facing product is really about tone and framing rather than model choice. On the engineering side, we came away with a much deeper handle on LangGraph's stateful graph model for human-in-the-loop flows, and on balancing 3D performance against accessibility on low-end mobile hardware.
What's next for Haven
Short-term, we want to add full PWA offline support, a PDF export designed for therapist sessions, and multi-language localization (Spanish, Mandarin, Hindi) so Haven reaches beyond English-speaking households. Next, we're looking at connected-health features: Apple Watch heart-rate data as an additional body signal, structured guided-interoception training exercises, and an anonymized, opt-in community dictionary that lets the model learn patterns in aggregate. Longer-term, we want to build the institutional layer: a school admin dashboard for student-support teams, a dedicated therapist portal, and broader wearable/biosensor integration, so Haven can grow from a personal tool into part of the support infrastructure around neurodivergent youth.
Built With
- css
- gemini
- google-gen-ai
- javascript
- supabase
- typescript
- vercel

Log in or sign up for Devpost to join the conversation.