Inspiration : Neurologists still score tremors by eye using subjective scales — we wanted to give them an actual number, like a thermometer for tremor severity.

What it does : Records hand tremor via webcam, runs FFT analysis to extract the dominant frequency, and classifies it as Parkinsonian (3–7 Hz) or Essential Tremor (7–12 Hz) with spectrogram visualization and session comparison.

How we built it : React + TypeScript frontend with a FastAPI Python backend — MediaPipe tracks hand landmarks frame-by-frame, scipy FFT extracts tremor frequency, and ffmpeg handles WebM-to-MP4 conversion for live recordings.

Challenges we ran into : OpenCV can't decode .webm from the browser's MediaRecorder, single-hand recordings produced empty spectrograms because we always read from left_spectrum, and FFT needs careful Hann windowing to avoid spectral leakage.

Accomplishments that we're proud of : A fully working clinical pipeline — from webcam capture to frequency classification to before/after treatment comparison — using zero specialized hardware, just a laptop camera.

What we learned : How FFT and Hann windowing work in practice, how to trace a single bug across six layers of a full-stack system, and why the 3–7 Hz vs 7–12 Hz clinical distinction matters for PD vs Essential Tremor.

What's next for KineticQuant : Clinical validation on real patient data, longitudinal trend charts per patient, PDF report export, and a mobile app for home monitoring.

Built With

Share this project:

Updates

Submission history