# Top-level metadata
name: workout-combo
version: "1.0"
description: "Detect a squat-to-lunge combination with feedback cues."
# Detection configuration
detection:
type: repetition
movement:
name: squat-lunge-combo
# Phases define the discrete positions in the movement.
phases:
- name: standing
description: "Upright standing position"
criteria:
- joint: knee
angle_min: 160
angle_max: 180
- joint: hip
angle_min: 160
angle_max: 180
- name: squat-bottom
description: "Bottom of squat — knees at roughly 90 degrees"
criteria:
- joint: knee
angle_min: 70
angle_max: 110
- joint: hip
angle_min: 70
angle_max: 110
- name: lunge-bottom
description: "Bottom of lunge — front knee bent, back leg extended"
criteria:
- joint: knee
side: front
angle_min: 70
angle_max: 100
- joint: knee
side: back
angle_min: 150
angle_max: 180
# Sequence defines the phase ordering for one complete repetition.
sequence:
- standing
- squat-bottom
- standing
- lunge-bottom
- standing
# Feedback cues emitted during detection.
feedback:
- trigger: squat-bottom
cue: "Good depth — hold briefly"
- trigger: lunge-bottom
cue: "Keep your back knee extended"
# Timing constraints (optional).
timing:
min_phase_duration_ms: 200 # Ignore phases shorter than 200ms (likely noise).
max_phase_duration_ms: 5000 # Fail phases longer than 5 seconds.
# Confidence thresholds (optional).
thresholds:
min_landmark_confidence: 0.5 # Ignore frames below this landmark confidence.