Inspiration

One common pattern we noticed within the field of physical therapy is that it doesn't fail in the clinic, but rather in the days between appointments. Patients are told to exercise at home, but they're unsure about their progress and whether they're healing or harming themselves. Over time, doubt turns into inconsistency, and inconsistency turns into stalled recovery. At the same time, physiotherapists have no visibility into what happens outside the clinic. They can’t see whether exercises are being done correctly, incorrectly, or at all.

How We Built It

Seido is designed to surround the core principles of privacy, performance, and orchestration in mind. The core tech stack we used was React, TypeScript, and Mediapipe, allowing flawless motion integration in the browser.

Core Architecture & Services

  • Pose analysis runs in the browser; no video is sent to the server. This allows much faster analysis times.
  • A custom posture engine computes metrics per frame and evaluates movement quality.
  • Smoothing and filtering reduce landmark jitter and false positives.
  • Progression logic advances users only when quality thresholds are met.
  • Voice state, posture state, and phase transitions are orchestrated within a unified session controller.

Challenges We Faced

Real-time pose reliability Landmark detection can be noisy due to lighting, camera angle, or movement speed. We implemented smoothing and threshold calibration to improve stability without sacrificing responsiveness.

Balancing strictness vs usability If the posture detection is too strict, users fail unnecessarily. Too lenient, and feedback becomes meaningless. Squats and back extensions required careful tuning and careful thought about user comfort.

Voice orchestration complexity Managing partial transcripts between the user and the AI Agent, deduplicating repeated phrases, agent voice pacing, coordinating phase transitions, and preventing repetitive coaching required thoughtful state design.

User experience of AI output We noticed that the Raw LLM output wasn’t sufficient and thorough enough. We built structured rendering to present summaries clearly and professionally through tools like jsPDF.

Built With

Share this project:

Updates