Inspiration
We looked closely at GatewayGS's own earlier hackathon (the organizer behind GatewayHacks) and found their strongest past winner, NeuroSketch — an AI screening tool for early Parkinson's signs. What stood out wasn't just the idea, it was the gap it pointed to: Parkinson's and essential-tremor progression is almost always assessed during infrequent clinic visits, sometimes just once every few months. Everything that happens in between — good days, bad days, medication-cycle swings — goes completely unrecorded, even though that's exactly the information a clinician needs to adjust treatment. We wanted to build the thing that fills that gap: a daily, two-minute, at-home check-in that turns invisible day-to-day fluctuation into a visible trend line.
What it does
TremorTrace is a two-minute daily check-in made of three short tests:
- Tap rhythm — tap a large on-screen target (or the space bar) for 10 seconds; we measure how consistent your rhythm is, not how fast you tap.
- Spiral steadiness — trace a guide spiral on a canvas with your mouse or finger; we measure your average pixel deviation from the line.
- Voice steadiness — hold a single "ahh" for 5 seconds; we use a lightweight in-browser autocorrelation pitch detector plus amplitude analysis to score how stable your pitch and volume stay.
All three combine into one composite steadiness score (0–100) per check-in, plotted over time on a dashboard with per-test breakdowns, a full history table, JSON/CSV export, and a print-ready clinician summary. Every test can be skipped without losing the check-in. Everything runs and saves entirely in the browser — nothing is ever uploaded anywhere.
How we built it
Plain HTML, CSS, and vanilla JavaScript — no frameworks, no backend, no API keys, no build step. The spiral test is a hand-built canvas guide with nearest-point deviation scoring. The voice test uses the Web Audio API's AnalyserNode with a custom autocorrelation-based pitch detector we wrote from scratch, sampled every 50ms alongside an RMS amplitude reader. All scoring reduces to one consistent idea — coefficient of variation (standard deviation ÷ mean) of a repeated measurement — so the same logic drives all three tests. Data persists in localStorage, and we built a small dependency-free canvas charting utility for the trend graphs rather than pulling in an external charting library.
Challenges we ran into
Getting the voice pitch detector to be reliable with a simple algorithm (not a research-grade DSP library) took real tuning — we had to trim silence, threshold noise floor, and clamp implausible frequency ranges to stop it from returning garbage on quiet or noisy input. The spiral scoring needed a nearest-neighbor distance search against hundreds of guide points per traced point, which we had to stride-sample for performance without losing accuracy. Browser security was another one: getUserMedia silently refuses to work when a page is opened directly from disk, so we had to design around that constraint (and document it clearly) rather than discover it during a live demo. Calibrating what a "good" vs "bad" score should actually look like — without any real clinical dataset to compare against — meant we had to test every scoring formula against deliberately good and deliberately bad performance ourselves, over and over, until the direction and scale actually made sense.
Accomplishments that we're proud of
We're proud that all three tests are genuine, working measurement instruments — not a UI wrapper around a single API call — and that the whole thing works with zero backend and zero dependencies. We're also proud of staying honest about scope: TremorTrace never claims to diagnose anything, and says so clearly, on the home screen, on the about page, and in the summary — because a self-tracking journal that overclaims is worse than one that's upfront about being a personal data point, not a medical result.
What we learned
We learned how much of "AI health tooling" is really applied signal processing — variance, autocorrelation, amplitude analysis — rather than a model call, and how much design work goes into making a repeatable, trustworthy score out of noisy real-world input like a shaky mouse trace or a wavering voice. We also learned that testing a health-adjacent tool means testing results, not just interactions — a button that runs without crashing but gives a wrong or backwards score is worse than a missing feature, so we validated every scoring formula against deliberately good and bad performance before trusting it.
What's next for TremorTrace
The natural next step is opt-in cloud sync so a patient's data can follow them across devices and be shared directly with a caregiver or clinician, while keeping local-first storage as the default for anyone who wants full privacy. We'd also like to add a short noise-floor calibration step before the voice test to improve accuracy, a daily notes field (sleep, medication timing, stress) so scores can be correlated with real-life context, and eventually a partnership with a movement-disorder clinic to validate the scoring against a real clinical rating scale like the UPDRS.
Built With
- accessibility
- autocorrelation
- canvas-api
- css3
- data-visualization
- getusermedia
- html5
- javascript
- localstorage
- responsive-design
- signal-processing
- vanilla-js
- web-audio-api
- webrtc
Log in or sign up for Devpost to join the conversation.