Project Info

Cadence

Devpost

Inspiration

A conversation can move at 100 to 140 words per minute, while many AAC users communicate far more slowly. The problem is not only typing speed. It is timing, personality, repair after a misunderstanding, and the ability to start a topic instead of always reacting. Cadence is a real-time communication companion for people with ALS and other AAC users. It listens to a conversation, prepares a small set of possible replies in the user's own style, and keeps the user in control of every word that is spoken. We were inspired by a simple question: what if someone could join a fast dinner conversation, make a joke, say “I love you,” hold the floor, or start a topic of their own before the moment moves on?

What it does

Cadence turns a live conversation into ready-to-review communication choices. Live captions: Uses the browser's Speech Recognition API for no-cost, on-device live transcription. Prepared replies: Uses GPT-5.6 with structured JSON output to create diverse reply options grounded in the latest conversation, the user's saved voice style, personal details, and local memory. User control: A person can speak a suggestion, edit it, make it shorter, ask for something more like them, save it, reject it, or mark the context as wrong. Initiation, not only reaction: “Start something” prepares conversation openers so users can bring up a story, concern, question, affection, or news on their own terms. Fast communication boards: Quick reactions, feelings, care needs, saved phrases, and “Hold the floor” are always easy to reach. Offline resilience: Needs, feelings, saved replies, phrase boards, and instant device voice remain useful even when online AI is unavailable. Voice options: Users can choose OpenAI text-to-speech or instant device speech, with tone-aware delivery. Accessible input: Large tap targets, keyboard support, screen-reader labels, scanning mode, and experimental local eye-gaze focus support different access needs. Privacy-first local memory: Voice style, personal details, preferences, remembered people and topics, session data, phrases, and access settings are stored locally on the device. Memory is visible and clearable. Safety controls: Cadence never speaks automatically from a model suggestion or gaze focus. The person confirms with touch, keyboard, switch scanning, or Select. Why Cadence is different Many communication tools help compose text faster. Cadence focuses on participation in the whole conversational turn: Be ready before the moment passes. Choose language that sounds like the person. Repair a wrong suggestion or misunderstanding. Hold the floor when more time is needed. Initiate something meaningful, not only react. The goal is not simply faster typing. It is timing, choice, and connection.

How we built it

Cadence is built with: Next.js 14 App Router and TypeScript Tailwind CSS for a responsive, tablet-first interface OpenAI Responses API with gpt-5.6-luna, low reasoning effort, lean prompts, and structured JSON outputs OpenAI TTS for server-side speech synthesis with configurable voice and tone instructions Browser Web Speech API for live captions MediaPipe Face Landmarker for experimental, local eye-gaze focus localStorage for style cards, personal details, phrase boards, remembered people/topics, sessions, access preferences, and optional local debug recordings Upstash Redis for distributed per-IP rate limiting in real mode Vercel for deployment, analytics, and production hosting The language layer is intentionally separated behind interfaces and API routes: predict() creates grounded candidate replies expand() turns a short idea into full replies toneAdjust() rewrites a message in warm, firm, or funny tone initiate() prepares conversation starters speak() supports OpenAI speech or instant device voice transcribe() supports browser captions This makes the system replaceable and testable. MOCK_MODE=1 runs offline mock behavior without model or speech costs. MOCK_MODE=0 enables the protected real AI path. Privacy and safety by design Cadence is an early prototype, not a medical device or emergency service. We designed for meaningful control: No account is required. Personal voice data, details, memory, phrases, and sessions stay on the device. Camera video and gaze samples are processed locally for the experimental eye-gaze feature and are not uploaded or stored by Cadence. AI receives only the limited conversation context needed to prepare a reply. The server validates input size, requires explicit real-mode consent, rate-limits requests per IP, and keeps API keys server-side. Eye gaze is an experimental focus method, not a general mouse replacement. It never triggers speech automatically. Care phrases such as “I need suction” do not alert caregivers or emergency services. They only speak the selected phrase.

Challenges we ran into

The hardest challenge was balancing speed with control. A system that reacts too slowly misses the conversational moment. A system that reacts too early can misunderstand an unfinished sentence. We addressed this with speculative prediction from interim captions, a short final-caption debounce, cancellation of outdated requests, and clear “preparing replies” states. We also learned that reliability matters more than a flashy demo. When real AI, network access, or TTS is unavailable, Cadence does not leave the user without communication. It keeps quick needs, feelings, saved replies, phrase boards, hold-the-floor phrases, and device voice available. Eye gaze was another important lesson. Browser camera tracking is sensitive to lighting, camera position, head movement, calibration, and device performance. We keep it clearly labeled as experimental, local, confirmation-based, and optional. Research that shaped Cadence Cadence is informed by publicly available AAC, ALS, accessibility, and communication-participation research. AAC users can face high abandonment rates because of training burden, fatigue, partner burden, and effort. Cadence reduces friction with one-tap prepared replies, scanning, and no required partner app. Communication partner instruction can improve AAC communication. Cadence does not require a partner to install anything, while still offering a concise optional partner tip. AAC design must account for cultural and linguistic context. Cadence supports user-controlled language preferences and a “do not translate or normalize my wording” preference. Recent AAC UI co-design research emphasizes that researcher-only design misses real access barriers. Cadence includes a voluntary tester feedback process and treats participatory co-design as an ongoing requirement. Research on communicative participation in ALS supports measuring more than speed. Cadence tracks replies spoken, topics initiated, time-to-response, repairs, rejected suggestions, and whether a reply sounded like the user. Voice banking and voice identity research informed our emphasis on user choice, device voice fallback, tone, and configurable speaking voices. Selected sources: Inclusive AAC UI co-design study Communication partner instruction meta-analysis ASHA multilingual service-delivery guidance ALS communicative participation study Voice banking and identity in motor neurone disease These sources guide our product decisions. They do not prove clinical effectiveness of this prototype. Accomplishments that we are proud of Built a complete live conversation flow from caption to prepared reply to confirmed speech. Made initiation a first-class feature, so users can lead conversations rather than only respond. Kept user agency central: AI suggests, the person chooses. Built offline-safe communication tools instead of depending completely on cloud AI. Added meaningful access options: touch, keyboard, scanning, instant voice, and experimental local eye-gaze focus. Added local-first personalization, memory, needs, feelings, phrase boards, and session recovery. Added production safeguards including structured outputs, consent checks, input caps, CSP, rate limiting, and server-side secret handling. Built a responsive experience for desktop, tablet, and mobile use. Added unit, integration, and end-to-end coverage for core flows including onboarding, local sessions, offline fallback, rate limits, privacy, scanning, and input validation.

What we learned

We learned that a strong AAC experience cannot be reduced to a text box and a faster model. The most important design decision was making Cadence a system for conversation participation, not just message generation. The person needs to be ready, recognized, able to correct the system, able to express care or urgency, and able to decide when not to speak. We also learned that accessibility features must be designed with failure states in mind. A tool is more trustworthy when it explains uncertainty, keeps a clear off switch, and still offers communication when a network or model call fails. What is next for Cadence Our next priority is co-design with people who use AAC, people living with ALS, caregivers, speech-language pathologists, and assistive-technology professionals. We want to learn what feels useful, inaccurate, tiring, or missing in real conversations. We plan to improve reply relevance, voice match, personal profiles for family, care, work, and medical settings, editable captions, custom names and vocabulary, multilingual support, and clearer confidence when listening is uncertain. We will continue strengthening access through Bluetooth switches, configurable scanning, and experimental target-based eye-gaze focus with better calibration and validation. Eye gaze will remain clearly labeled as experimental until it is tested reliably with users. We also plan to expand offline communication boards, saved replies, care phrases, conversation repair, and user-controlled session history, so communication remains available even when AI or network access is unavailable. Most importantly, we will measure participation, not only taps saved: meaningful replies, topics initiated, repairs completed, fatigue, time-to-response, and whether the user feels the words sound like them. Cadence is an early prototype, not a medical or emergency tool. Our goal is to build responsibly with the community, so more people can be present in the conversations that matter, in words that remain their own. We will use feedback to improve: Reply relevance, voice match, and rejection/repair behavior Partner-tip content and communication setup Multilingual and code-switching support Per-person and per-setting communication profiles Target-based eye-gaze reliability, calibration, fatigue, and validation Accessibility for switches, eye-gaze hardware, and assistive browsers Outcome measures centered on participation, autonomy, fatigue, satisfaction, and “this sounded like me” Cadence is early, but the direction is clear: help more people be present in the conversations that matter, in words that remain their own.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CSSIn code
  • JavaScriptIn code
  • Next.jsIn code
  • OpenAIIn code
  • ReactIn code
  • Tailwind CSSIn code
  • TypeScriptIn code
  • VercelClaimed

7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

  • CodexConfig

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

383 KB

Source files

64

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars