Inspiration

Subtle movement changes are hard to remember accurately and rarely happen on the same schedule as a clinic appointment. I wanted to explore whether a short, repeatable task could make those changes easier to notice over time and without asking people to upload sensitive webcam footage.

What it does

MotorSignal guides someone through two 15-second browser-based hand tasks: finger tapping and a hand-rotation exercise.

The app measures hand motion from MediaPipe landmarks, then summarizes repetition rate, amplitude decay, rhythm variability, and capture quality. After three high-quality sessions, it creates a personal baseline. A possible change is not surfaced as a confirmed trend unless it appears in the same direction across two consecutive sessions.

The dashboard includes clearly labeled synthetic history for a live demo, a quality-aware trend view, and a printable clinician summary. MotorSignal is an exploratory demo, not a diagnostic tool or medical advice.

How we built it

I built MotorSignal as a React and Vite frontend with a FastAPI analysis service.

MediaPipe HandLandmarker runs directly in the browser. Raw webcam video stays on the device; the backend receives only compact world-landmark coordinates. For finger tapping, MotorSignal measures the distance between thumb tip and index fingertip. For hand rotation, it uses the changing width between the index and pinky knuckles as a periodic palm-width proxy.

The FastAPI service uses SciPy peak detection to calculate repetitions, rate, amplitude decay, and rhythm variability. A validation layer checks hand-detection quality, minimum task duration, baseline stability, and repeated same-direction shifts before confirming a trend. MongoDB Atlas Free stores sessions, while Vercel hosts the frontend and API.

I used Codex with GPT-5.6 as an implementation partner to turn the product specification into the working React interface, FastAPI schema, landmark-only signal pipeline, test coverage, synthetic demo data, and deployment configuration. I then reviewed the resulting product claims and safety language to keep the project accurate and medically responsible.

Challenges we ran into

The central challenge was making webcam tracking useful without creating a video-collection product. I chose MediaPipe world landmarks rather than normalized image coordinates because they are less affected when someone moves closer to or farther from the camera.

The second challenge was avoiding false alarms. A single unusual session can come from poor lighting, missed hand detection, or inconsistent movement. Instead of treating one number as an answer, MotorSignal requires quality checks, a stable baseline, and two matching outlier sessions before confirming a change.

Accomplishments that we're proud of

  • Built the complete flow from live task capture to longitudinal dashboard and clinician export.
  • Kept raw video in the browser by design rather than relying on a privacy policy.
  • Added a two-pass trend validator that resists one noisy session.
  • Made synthetic demo history explicit in the interface so it cannot be mistaken for real user data.
  • Shipped a deployment path using free-tier Vercel and MongoDB Atlas.

What we learned

We learned that the most useful health-adjacent interface is often not the one with the most confident score. Data quality, repeated observations, and clear uncertainty are part of the product and not edge cases.

We also learned that privacy constraints can improve the architecture. Keeping video local forced us to focus on the smallest useful data boundary: hand landmarks and derived session metrics.

What's next for MotorSignal

Next, I would validate task instructions and thresholds with clinicians, add true palm-plane rotation from world landmarks, improve accessibility options, and conduct reliability testing across different lighting conditions and devices.

MotorSignal should only be considered for real-world health use after clinical validation and appropriate regulatory review.

Built With

Share this project:

Updates