Inspiration

  • PulseRunner was inspired by the need to bridge the gap between raw sensor data and elite-level coaching for everyday runners.
  • Traditional marathon training relies on static, linear periodization models—rigid schedules that prescribe mileage weeks in advance without considering the runner's physiological state.
  • Research indicates that increasing run distance by just 10%–30% in a single session increases injury risk by 64%.
  • With annual injury rates estimated between 37% and 56%, generic plans often fail to detect "invisible" stressors like poor sleep or illness that reduce load tolerance.

What it does

  • PulseRunner is an AI coaching application that collects high-frequency streaming biometrics, including heart rate, pace, and GPS data.
  • It provides immediate audio feedback during runs for safety and automated, weekly adjustments to training schedules based on recovery trends.
  • The system utilizes a dual-layer approach to provide recommendations before, during, and after running activities.
  • It detects signs of non-functional overreaching, such as an elevated resting heart rate, to adjust training loads before injury occurs.

How we built it

  • We implemented a Lambda Architecture to balance the requirements for low-latency safety alerts and high-accuracy historical analysis.
  • Data Ingestion: Amazon Kinesis acts as a high-throughput buffer for incoming data, decoupling ingestion from processing.
  • Speed Layer: Apache Flink performs stateful computations over data streams to detect anomalies and trigger pacing alerts in real-time.
  • Batch Layer: Apache Airflow orchestrates weekly plan updates, running ML inference on historical trends stored in an S3 Data Lake.
  • Polyglot Persistence: We used InfluxDB for high-write sensor data and PostgreSQL for structured user profiles and training plans.
  • Edge Processing: A React Native mobile app aggregates 1 Hz sensor data into compressed micro-batches to preserve battery life.

Challenges we ran into

  • Traffic Spikes: Running telemetry is "bursty," with massive traffic spikes during peak hours (e.g., Saturday mornings) that could crash traditional databases.
  • Connectivity Issues: Data often arrives out of order due to poor cellular connectivity; we used Apache Flink to re-order late-arriving events based on "Event Time."
  • Write Amplification: Storing millions of heart rate records in a standard relational database would degrade index performance.
  • Energy Management: Streaming every heartbeat individually is inefficient, necessitating a "Store-and-Forward" strategy on the mobile device to reduce network overhead by 98%.

Accomplishments that we're proud of

  • Real-Time Safety Interventions: Built a logic flow that evaluates conditions instantly: $$current_heart_rate > (max_hr_threshold \times 0.95) \text{ for } > 30 \text{ seconds}$$ If met, the system publishes immediate "Slow Down" warnings via SNS.
  • Adaptive Recovery Logic: Successfully implemented a health check that compares $acute_load$ (last 7 days) against $chronic_load$ (last 28 days): $$\text{IF } acute_load > (chronic_load \times 1.3) \implies \text{Status: "OVERTRAINING_RISK"}$$ This triggers a 10% reduction in the next week's mileage.
  • Scalable Infrastructure: Deployed a partitioned Kinesis stream that distributes load by $user_id$ and scales automatically based on throughput.

What we learned

  • Storage Optimization: Purpose-built time-series databases like Amazon Timestream can compress sensor data by over 90% and automate downsampling.
  • Architectural Trade-offs: A single pipeline cannot efficiently serve both sub-second safety alerts and deep historical analysis, confirming the necessity of bifurcating the data flow.
  • Schema Evolution: Using JSONB in PostgreSQL for training schedules allowed us to iterate on coaching logic without requiring costly database migrations.

What's next for AI voice assistance for runners

  • IoT Sensor Integration: Integrating with Bluetooth-enabled "Smart Shoe" insoles to track "Ground Contact Time" and "Impact Force" to detect form degradation before pain begins.
  • Computer Vision Form Analysis: Allowing users to upload a 10-second video of their stride for analysis of biomechanics like hip drop or overstriding.
  • Social "Ghost Runner" Mode: Utilizing the low-latency Speed Layer to provide real-time audio updates about a user's position relative to a friend in a different location.
Share this project:

Updates