Inspiration

My sister is a teacher at a school for autistic children. I've visited her classroom more times than I can count, and over the years I've gotten to know many of her students really well. There's one moment that I keep coming back to.

A kid, maybe twelve years old, was clearly not okay. His hands were clenched. His breathing was off. His whole body was tense. A staff member knelt down and asked, "Hey, can you tell me what you're feeling right now?"

He just stared. Not because he didn't want to answer. He literally could not connect what was happening inside his body to any word he knew. He eventually just said, "I don't know," and walked away. That moment stuck with me for months.

I later learned there's a clinical term for this. It's called Alexithymia, the inability to identify and name your own emotions. It affects up to 50% of autistic individuals and is also common in people with ADHD and sensory processing differences. These kids feel everything. They just can't label it.

When I started looking into existing tools, I was honestly frustrated. Every mental health app out there starts the same way: pick an emoji, choose from a mood wheel, rate your feelings from 1 to 10. They all assume you already have emotional vocabulary. That's the one thing these kids don't have.

So I asked a different question. What if we stopped asking "how do you feel" and started asking "where do you feel it"?

Because the body already knows. A tight chest. A heavy stomach. Tingling hands. These physical sensations are real, reliable, and they don't require a single emotional word to describe. EmoLens was built on that idea. If I could translate what the body is saying, maybe I could finally give these students the language the world keeps demanding from them.

What it does

EmoLens is an AI-powered sensory translator. It takes what your body feels and helps you understand what it might mean emotionally.

Instead of showing users an emotion wheel, EmoLens presents a fully interactive 3D human body. Users tap exactly where they feel something (chest, head, stomach, hands) and describe it with physical words like tightness, buzzing, heat, heaviness, or numbness. No emotional vocabulary needed at all. Just honest body input.

From there, a dual AI system (Google Gemini for deep reasoning and Groq for speed) analyzes the body data and suggests emotions the user might be experiencing. It never tells you what you feel. It offers possibilities and lets you decide what resonates. The user always stays in control.

The feature I'm most proud of is the Communication Card. During a meltdown or shutdown, neurodivergent students often physically cannot speak or explain what's happening. EmoLens generates a shareable digital card that says what they're feeling, what might have triggered it, and what support they need, all without requiring them to say a single word. They just hand their phone to a teacher, parent, or counselor.

There's also an Emotion Dictionary where every check-in gets saved. Over time, users build their own personal emotional vocabulary by mapping their recurring body patterns to specific emotions. It's not a one-time tool. It grows with them.

And because accessibility can't be an afterthought, there's a built-in panel with Reduced Motion for vestibular sensitivities, Font Scaling for reading difficulties, and High Contrast mode. A guided 4-7-8 breathing exercise is also woven into the crisis detection flow.

How we built it

The frontend is built with Next.js 16 (App Router), TypeScript, and Tailwind CSS. I used Framer Motion for smooth, calming animations and designed the whole interface in a glassmorphic dark mode that feels premium but also reduces sensory overload.

The 3D body map runs on React Three Fiber (Three.js), which lets users intuitively select body zones with smooth camera transitions instead of jarring page jumps.

For the AI brain, I built a multi-node reasoning pipeline using LangChain and LangGraph. It orchestrates five steps in sequence: parsing the body data, mapping it to possible emotions, updating the user's dictionary, generating coping strategies, and creating the communication card. Google Gemini handles the deep somatic-to-emotional reasoning, while Groq handles fast card generation.

State management is handled by Zustand (body zone selections, sensation data, accessibility preferences). Supabase provides secure auth with anonymous sign-in so there's zero friction to get started, plus persistent storage for the emotion dictionary. Everything is deployed on Vercel.

Challenges we ran into

The biggest one was something I didn't expect at all. My early prototype used emojis to represent emotion categories on the results page. When I showed it to some of the students at my sister's school, the reaction was instant. One of them told me, "I can't tell if that face is angry or disgusted. This is making me more anxious." I realized that emojis and facial expressions introduce the exact kind of ambiguity I was trying to eliminate. So I ripped out every single emoji from the entire app and replaced them with clean geometric line icons that convey meaning without requiring any facial expression interpretation. That one conversation completely changed how the whole app looks and feels.

The second major challenge was technical. My LangGraph pipeline is a multi-turn conversation: the user submits body data, the AI suggests emotions, the user picks one, then the AI generates coping strategies and a communication card. The problem is that on Vercel's serverless architecture, each API call runs in a completely isolated function instance. The AI's in-memory state gets wiped between the first request and the second. I had to rethink the entire data flow so that the frontend packages and re-sends the full body context with every request, making the whole pipeline truly stateless without losing any continuity.

The third challenge was making 3D feel safe. Three.js is inherently visual and mouse-driven, which can be hostile for neurodivergent users. I added smooth eased camera transitions instead of instant jumps (which can trigger vestibular discomfort), built a global Reduced Motion toggle, and made sure the body map works with simple taps on mobile.

Accomplishments that we're proud of

The Communication Card is the thing I care about most. I keep thinking about those kids at my sister's school who go silent when everything becomes too much. Building something that lets a non-speaking, overwhelmed student advocate for their own needs, instantly and silently, without losing their dignity, that's the thing I'm proudest of.

EmoLens requires no account creation, no diagnosis, no clinical label. A student can open it and start their first check-in in under ten seconds. I believe accessibility should start at the front door, not behind a login wall.

I also refused to make it look like "special education software." EmoLens has a glassmorphic dark interface with fluid animations, 3D interactions, and a level of visual polish that matches any commercial wellness app. Neurodivergent students deserve tools that look just as good as anything their neurotypical peers use. Accessibility and beauty are not opposites.

And the AI never tells you what you feel. It hypothesizes, suggests, and then steps back. The user validates. In a world that constantly tells neurodivergent people what they should be feeling, EmoLens is one of the rare spaces where their own interpretation is the final word.

What we learned

I learned that accessibility is not a feature you add. It's an architecture you build from day one. Every decision, from the dark color palette that reduces eye strain, to the geometric icons that eliminate facial ambiguity, to the body-first input method, had to be made through the lens of my primary user from the very first line of code.

I learned that the body is the most honest interface we have. When words fail, and for neurodivergent users they often do, physical sensations are still there. Tightness doesn't lie. Pressure doesn't exaggerate. By anchoring the entire product in what the body actually reports, I built something that meets users exactly where they are instead of where I think they should be.

And honestly, the biggest surprise was that neurotypical people love it too. Everyone who tested EmoLens said some version of the same thing: "I've never had a tool help me understand my own emotions like this." It turns out that when you design for the hardest use case first, you end up building something better for everyone.

What's next for EmoLens

EmoLens is fully functional and deployed right now, but this is just the beginning.

I want to integrate with wearable devices like Apple Watch and Garmin to monitor real-time biometrics (heart rate variability, skin temperature). The goal is to detect the somatic signatures of an approaching meltdown before the user even realizes it's coming, so EmoLens can prompt a proactive check-in instead of reacting to a crisis that's already happening.

I'm also planning a privacy-first Educator Dashboard where teachers can see anonymized sensory trends across their classroom. Instead of guessing, they could adjust lighting, noise levels, or break schedules based on real data from their students.

I want to expand the somatic vocabulary into multiple languages and cultural contexts, because the way people experience emotion in their bodies varies across cultures.

And eventually, I want to open-source the core somatic translation engine so other developers can build sensory-first tools for therapy, education, and crisis intervention. I think this technology should be a public good.

EmoLens started because I watched a kid at my sister's school struggle to find words for something his body already knew. I built it so that the next time someone asks him how he feels, he has an answer.

Built With

Share this project:

Updates