Ayaan Goswami
Let's talk
All projects

Digital health ยท Machine learning / 2026

Free Bird

Turns a stressful situation into a Calm, Clarify, Act plan, using AI that never sends your writing anywhere.

Open Free Bird Code

Greenpath, Hollow Knight

Role
Design and development
Status
Live
Stack
JavaScript (no framework), Transformers.js, all-MiniLM-L6-v2, inline SVG

The idea

The moment a student most needs help is often the moment they're least able to ask for it. Three things due, none started, forty minutes before bed. What helps then isn't a diagnosis or a pep talk. It's one small, specific thing you could actually do next.

The tools that exist mostly fall into two groups. Wellness apps hand you the same breathing exercise whether you're avoiding an essay or worried about a friend. Chatbots will engage with your actual situation, but they send some of the most personal text a teenager writes to a server they know nothing about. So the constraint came before the feature list: whatever this is, your writing never leaves your device.

How it works

You write what's weighing on you in your own words. Free Bird reads it for non-clinical stress signals, explains where the pressure seems to be coming from, and builds a three-step plan: Calm (something physical, because the body settles faster than thinking does), Clarify (making the problem smaller and more specific), and Act (one move small enough to happen today).

The pipeline order is fixed:

  1. A safety scan runs first. It's deterministic pattern matching, not a model, so it behaves the same on every machine and never depends on whether a download finished. If it fires, nothing else runs and the app routes to crisis resources.
  2. Lexical scoring always runs.
  3. Semantic scoring runs if you opted in to the on-device model: a quantized all-MiniLM-L6-v2 running in the browser through Transformers.js. It catches the many ways people describe the same feeling without using the same words.
  4. The two are blended into a profile, a pressure estimate, and a plan chosen from a structured exercise library.

There's also a companion called Wingman. It doesn't generate text. Your message is matched to an intent on the device, and the reply is composed from written templates filled with your own context. Every reply says so underneath.

Showing its work

If an app is going to tell a stressed person something about their own situation, it owes them the receipts. The Stress Snapshot shows exactly where every point of the pressure estimate came from, every signal score, and which engine produced them. When no model ran, no model confidence is shown anywhere.

Measuring it honestly

There are two evaluation sets of 48 cases each: a development set written alongside the classifier, and a held-out set written after it was finished and never used for tuning. They're reported separately on purpose, because merging them would give one flattering number and hide the gap between them. Every figure can be re-run in the browser.

Limits

The evaluation was labeled by me, with no independent annotation. The safety patterns are English-only and US-centric. And it hasn't been tested with the students it's designed for, which a real deployment would need first.