diff --git a/Exercise Library/Barbell Squat/frames/frame-1.svg b/Exercise Library/Barbell Squat/frames/frame-1.svg new file mode 100644 index 0000000..13763ef --- /dev/null +++ b/Exercise Library/Barbell Squat/frames/frame-1.svg @@ -0,0 +1,22 @@ + + Barbell Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Barbell Squat/frames/frame-2.svg b/Exercise Library/Barbell Squat/frames/frame-2.svg new file mode 100644 index 0000000..67809ed --- /dev/null +++ b/Exercise Library/Barbell Squat/frames/frame-2.svg @@ -0,0 +1,22 @@ + + Barbell Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Barbell Squat/info.md b/Exercise Library/Barbell Squat/info.md new file mode 100644 index 0000000..0f41b01 --- /dev/null +++ b/Exercise Library/Barbell Squat/info.md @@ -0,0 +1,39 @@ +# Barbell Squat + +The barbell back squat — bar across the upper back, sit down between the +heels, stand back up. + +- **Category:** Main circuit +- **Type:** Free-weight compound squat +- **Targets:** Quadriceps, glutes, adductors, trunk +- **Prescription:** 4 × 6–8 + +## Setup + +Set the bar on your upper traps (not the neck), hands just outside the +shoulders, and step back from the rack. Feet shoulder-width, toes slightly +out, brace before every rep. + +## Execution + +1. Sit down and back — hips and knees bend together, chest stays up. +2. Descend until the thighs reach at least parallel, knees tracking over + the toes. +3. Drive the floor apart and stand back up to full lockout. + +## Cues + +- Big breath and brace at the top; exhale at the finish. +- The bar stays over mid-foot — watch the sideways bar path, not the mirror. +- Elbows down under the bar, not flared behind it. + +## Common Mistakes + +- Knees caving inward out of the bottom. +- Heels lifting — weight drifting onto the toes. +- Chest collapsing forward into a good-morning. + +## Progression + +Master the Bodyweight Squat and Goblet Squat first; add weight in small +jumps only while depth and knee tracking hold. diff --git a/Exercise Library/Barbell Squat/motion.json b/Exercise Library/Barbell Squat/motion.json new file mode 100644 index 0000000..12d0649 --- /dev/null +++ b/Exercise Library/Barbell Squat/motion.json @@ -0,0 +1,35 @@ +{ + "name": "Barbell Squat", + "primary": 2, + "camera": {"zoom": 0.7}, + "working": ["leg_r", "leg_l"], + "props": [ + {"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 26, "plateR": 14} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.1, + "root": {"pos": [160, 64], "pitch": 6}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 28, "elbow_r": 140, + "shoulder_l": 28, "elbow_l": 140, + "hip_r": 5, "knee_r": 4, "ankle_r": 0, + "hip_l": 5, "knee_l": 4, "ankle_l": 0, + "pins": {"foot_r": [160, 148], "foot_l": [164, 150], + "hand_r": [166, -16], "hand_l": [170, -14]} + }, + { + "hold": 0.4, "tween": 1.1, + "root": {"pos": [117, 108], "pitch": 35}, + "spine": [0, -4], + "neck": 5, "head": -28, + "shoulder_r": 55, "elbow_r": 140, + "shoulder_l": 55, "elbow_l": 140, + "hip_r": 100, "knee_r": 118, "ankle_r": 22, + "hip_l": 100, "knee_l": 118, "ankle_l": 22, + "pins": {"foot_r": [160, 148], "foot_l": [164, 150], + "hand_r": [163, 30], "hand_l": [167, 32]} + } + ] +} diff --git a/Exercise Library/Barbell Squat/preview.gif b/Exercise Library/Barbell Squat/preview.gif new file mode 100644 index 0000000..0f93c08 Binary files /dev/null and b/Exercise Library/Barbell Squat/preview.gif differ diff --git a/Exercise Library/Barbell Squat/visual.svg b/Exercise Library/Barbell Squat/visual.svg new file mode 100644 index 0000000..67809ed --- /dev/null +++ b/Exercise Library/Barbell Squat/visual.svg @@ -0,0 +1,22 @@ + + Barbell Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bench Press/frames/frame-1.svg b/Exercise Library/Bench Press/frames/frame-1.svg new file mode 100644 index 0000000..75400cb --- /dev/null +++ b/Exercise Library/Bench Press/frames/frame-1.svg @@ -0,0 +1,25 @@ + + Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bench Press/frames/frame-2.svg b/Exercise Library/Bench Press/frames/frame-2.svg new file mode 100644 index 0000000..ea63671 --- /dev/null +++ b/Exercise Library/Bench Press/frames/frame-2.svg @@ -0,0 +1,25 @@ + + Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bench Press/info.md b/Exercise Library/Bench Press/info.md new file mode 100644 index 0000000..e681e38 --- /dev/null +++ b/Exercise Library/Bench Press/info.md @@ -0,0 +1,40 @@ +# Bench Press + +The barbell press — lying on the flat bench, lower the bar to the chest +and press it back to straight arms. + +- **Category:** Main circuit +- **Type:** Free-weight horizontal press +- **Targets:** Chest, front delts, triceps +- **Prescription:** 4 × 6–8 + +## Setup + +Lie with eyes under the bar, feet flat on the floor, shoulder blades +pinched back and down. Grip a little wider than shoulder-width and +unrack to straight arms over the shoulders. + +## Execution + +1. Lower the bar under control to the mid-chest, elbows about 45° from + the body. +2. Touch lightly — no bounce. +3. Press back up and slightly toward the face to lockout over the + shoulders. + +## Cues + +- Shoulder blades stay pinched against the bench the whole set. +- Wrists stacked over elbows; bar sits low in the palm. +- Feet drive quietly into the floor. + +## Common Mistakes + +- Bouncing the bar off the chest. +- Elbows flared straight out at 90°. +- Hips lifting off the bench. + +## Progression + +Add small plates while every rep touches and locks out; a spotter or +safety pins once the loads get honest. diff --git a/Exercise Library/Bench Press/motion.json b/Exercise Library/Bench Press/motion.json new file mode 100644 index 0000000..c891b90 --- /dev/null +++ b/Exercise Library/Bench Press/motion.json @@ -0,0 +1,39 @@ +{ + "name": "Bench Press", + "primary": 1, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[58, 124], [162, 124]], "w": 9, "depth": 8}, + {"kind": "line", "pts": [[78, 129], [78, 150]], "w": 4}, + {"kind": "line", "pts": [[144, 129], [144, 150]], "w": 4} + ]}, + {"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 26, "plateR": 12} + ], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [150, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": 15, "elbow_r": 100, + "shoulder_l": 15, "elbow_l": 100, + "hip_r": 78, "knee_r": 82, "ankle_r": 5, + "hip_l": 78, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [196, 148], "foot_l": [200, 150], + "hand_r": [93, 100], "hand_l": [97, 102]} + }, + { + "hold": 0.4, "tween": 1.2, + "root": {"pos": [150, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": 90, "elbow_r": 5, + "shoulder_l": 90, "elbow_l": 5, + "hip_r": 78, "knee_r": 82, "ankle_r": 5, + "hip_l": 78, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [196, 148], "foot_l": [200, 150], + "hand_r": [67, 57], "hand_l": [71, 59]} + } + ] +} diff --git a/Exercise Library/Bench Press/preview.gif b/Exercise Library/Bench Press/preview.gif new file mode 100644 index 0000000..202f683 Binary files /dev/null and b/Exercise Library/Bench Press/preview.gif differ diff --git a/Exercise Library/Bench Press/visual.svg b/Exercise Library/Bench Press/visual.svg new file mode 100644 index 0000000..75400cb --- /dev/null +++ b/Exercise Library/Bench Press/visual.svg @@ -0,0 +1,25 @@ + + Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bodyweight Squat/frames/frame-1.svg b/Exercise Library/Bodyweight Squat/frames/frame-1.svg new file mode 100644 index 0000000..b93984b --- /dev/null +++ b/Exercise Library/Bodyweight Squat/frames/frame-1.svg @@ -0,0 +1,19 @@ + + Bodyweight Squat + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bodyweight Squat/frames/frame-2.svg b/Exercise Library/Bodyweight Squat/frames/frame-2.svg new file mode 100644 index 0000000..469a150 --- /dev/null +++ b/Exercise Library/Bodyweight Squat/frames/frame-2.svg @@ -0,0 +1,19 @@ + + Bodyweight Squat + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Bodyweight Squat/info.md b/Exercise Library/Bodyweight Squat/info.md new file mode 100644 index 0000000..8c0a0ff --- /dev/null +++ b/Exercise Library/Bodyweight Squat/info.md @@ -0,0 +1,37 @@ +# Bodyweight Squat + +The unloaded squat — arms reach forward as a counterbalance while the hips +sit down between the heels. The pattern every loaded squat is built on. + +- **Category:** Warm-up and main circuit +- **Type:** Bodyweight squat +- **Targets:** Quadriceps, glutes, mobility +- **Prescription:** 3 × 15–20, or 10 slow reps as a warm-up + +## Setup + +Stand with feet shoulder-width, toes slightly turned out, arms relaxed at +your sides. + +## Execution + +1. Reach the arms forward as the hips sit down and back. +2. Descend as deep as comfortable — thighs at least parallel — heels flat. +3. Stand back up tall and let the arms drop. + +## Cues + +- Knees track over the toes the whole way down and up. +- Chest up; the arms reaching forward keep you from tipping. +- Slow down — a three-second descent teaches control. + +## Common Mistakes + +- Heels lifting at the bottom. +- Knees diving inward. +- Shallow, quick bouncing instead of full, controlled reps. + +## Progression + +Slow the tempo, pause at the bottom, then load the pattern with the +Goblet Squat. diff --git a/Exercise Library/Bodyweight Squat/motion.json b/Exercise Library/Bodyweight Squat/motion.json new file mode 100644 index 0000000..9385214 --- /dev/null +++ b/Exercise Library/Bodyweight Squat/motion.json @@ -0,0 +1,30 @@ +{ + "name": "Bodyweight Squat", + "primary": 2, + "camera": {"zoom": 0.7}, + "working": ["leg_r", "leg_l"], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [160, 64], "pitch": 4}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 6, "elbow_r": 5, + "shoulder_l": 6, "elbow_l": 5, + "hip_r": 4, "knee_r": 3, "ankle_r": 0, + "hip_l": 4, "knee_l": 3, "ankle_l": 0, + "pins": {"foot_r": [160, 148], "foot_l": [164, 150]} + }, + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [146, 106], "pitch": 30}, + "spine": [0, -4], + "neck": 5, "head": -24, + "shoulder_r": 118, "elbow_r": 8, + "shoulder_l": 118, "elbow_l": 8, + "hip_r": 98, "knee_r": 118, "ankle_r": 22, + "hip_l": 98, "knee_l": 118, "ankle_l": 22, + "pins": {"foot_r": [160, 148], "foot_l": [164, 150]} + } + ] +} diff --git a/Exercise Library/Bodyweight Squat/preview.gif b/Exercise Library/Bodyweight Squat/preview.gif new file mode 100644 index 0000000..4369ab6 Binary files /dev/null and b/Exercise Library/Bodyweight Squat/preview.gif differ diff --git a/Exercise Library/Bodyweight Squat/visual.svg b/Exercise Library/Bodyweight Squat/visual.svg new file mode 100644 index 0000000..469a150 --- /dev/null +++ b/Exercise Library/Bodyweight Squat/visual.svg @@ -0,0 +1,19 @@ + + Bodyweight Squat + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Crunch/frames/frame-1.svg b/Exercise Library/Crunch/frames/frame-1.svg new file mode 100644 index 0000000..1144bb9 --- /dev/null +++ b/Exercise Library/Crunch/frames/frame-1.svg @@ -0,0 +1,19 @@ + + Crunch + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Crunch/frames/frame-2.svg b/Exercise Library/Crunch/frames/frame-2.svg new file mode 100644 index 0000000..ee67d9a --- /dev/null +++ b/Exercise Library/Crunch/frames/frame-2.svg @@ -0,0 +1,19 @@ + + Crunch + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Crunch/info.md b/Exercise Library/Crunch/info.md new file mode 100644 index 0000000..01fcbd1 --- /dev/null +++ b/Exercise Library/Crunch/info.md @@ -0,0 +1,38 @@ +# Crunch + +The floor ab curl — peel the shoulder blades off the mat, squeeze, and +lower. Short range, all abs. + +- **Category:** Main circuit +- **Type:** Spinal flexion (upper) +- **Targets:** Rectus abdominis +- **Prescription:** 3 × 15–20, slow + +## Setup + +Lie on your back, knees bent, feet flat. Fingertips lightly behind the +ears, elbows wide. + +## Execution + +1. Exhale and curl the ribs toward the pelvis until the shoulder blades + leave the floor. +2. Squeeze the abs hard at the top for a beat. +3. Lower the shoulders back down without letting the head rest. + +## Cues + +- It's a curl, not a sit-up — the lower back stays on the mat. +- Chin off the chest; the hands never pull the head. +- Exhale on the way up to deepen the contraction. + +## Common Mistakes + +- Yanking the neck with the hands. +- Sitting all the way up with the hip flexors. +- Racing through reps with momentum. + +## Progression + +Slow the tempo and add a pause at the top; hold a small plate on the +chest, or move to the Abdominal machine for stack-loaded flexion. diff --git a/Exercise Library/Crunch/motion.json b/Exercise Library/Crunch/motion.json new file mode 100644 index 0000000..29d4240 --- /dev/null +++ b/Exercise Library/Crunch/motion.json @@ -0,0 +1,29 @@ +{ + "name": "Crunch", + "primary": 2, + "working": ["spine"], + "frames": [ + { + "hold": 0.4, "tween": 0.8, + "root": {"pos": [166, 146], "pitch": -90}, + "spine": [0, 0], + "neck": 12, "head": 0, + "shoulder_r": 155, "elbow_r": 140, + "shoulder_l": 155, "elbow_l": 140, + "hip_r": 75, "knee_r": 85, "ankle_r": 5, + "hip_l": 75, "knee_l": 85, "ankle_l": 5, + "pins": {"foot_r": [205, 148], "foot_l": [209, 150]} + }, + { + "hold": 0.6, "tween": 1.0, + "root": {"pos": [166, 144], "pitch": -90}, + "spine": [14, 34], + "neck": 30, "head": 0, + "shoulder_r": 150, "elbow_r": 140, + "shoulder_l": 150, "elbow_l": 140, + "hip_r": 75, "knee_r": 85, "ankle_r": 5, + "hip_l": 75, "knee_l": 85, "ankle_l": 5, + "pins": {"foot_r": [205, 148], "foot_l": [209, 150]} + } + ] +} diff --git a/Exercise Library/Crunch/preview.gif b/Exercise Library/Crunch/preview.gif new file mode 100644 index 0000000..e49448c Binary files /dev/null and b/Exercise Library/Crunch/preview.gif differ diff --git a/Exercise Library/Crunch/visual.svg b/Exercise Library/Crunch/visual.svg new file mode 100644 index 0000000..ee67d9a --- /dev/null +++ b/Exercise Library/Crunch/visual.svg @@ -0,0 +1,19 @@ + + Crunch + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dip/frames/frame-1.svg b/Exercise Library/Dip/frames/frame-1.svg new file mode 100644 index 0000000..8afa385 --- /dev/null +++ b/Exercise Library/Dip/frames/frame-1.svg @@ -0,0 +1,21 @@ + + Dip + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dip/frames/frame-2.svg b/Exercise Library/Dip/frames/frame-2.svg new file mode 100644 index 0000000..354595f --- /dev/null +++ b/Exercise Library/Dip/frames/frame-2.svg @@ -0,0 +1,21 @@ + + Dip + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dip/info.md b/Exercise Library/Dip/info.md new file mode 100644 index 0000000..c18d88d --- /dev/null +++ b/Exercise Library/Dip/info.md @@ -0,0 +1,37 @@ +# Dip + +The bodyweight press on parallel bars — lower until the shoulders reach +elbow depth, then press back to straight arms. + +- **Category:** Main circuit +- **Type:** Bodyweight elbow extension (chest/triceps press) +- **Targets:** Triceps, chest, front delts +- **Prescription:** 3 × 6–12 + +## Setup + +Support yourself on the parallel bars with straight arms, shoulders +pressed down, slight forward lean, knees bent behind. + +## Execution + +1. Bend the elbows and lower until the upper arms reach parallel. +2. Keep the elbows tracking back, body leaning slightly forward. +3. Press back up to full lockout without the shoulders shrugging. + +## Cues + +- Shoulders stay down away from the ears at every depth. +- More forward lean hits chest; upright hits triceps. +- Depth to parallel — a shaky bottom inch isn't worth the shoulder. + +## Common Mistakes + +- Sinking the shoulders into the ears at the bottom. +- Flaring the elbows straight out. +- Bouncing out of the deep position. + +## Progression + +Use the assisted dip machine or bands until full-range reps are smooth; +then add reps, then hang weight from a belt. diff --git a/Exercise Library/Dip/motion.json b/Exercise Library/Dip/motion.json new file mode 100644 index 0000000..1f0e0b2 --- /dev/null +++ b/Exercise Library/Dip/motion.json @@ -0,0 +1,36 @@ +{ + "name": "Dip", + "primary": 2, + "camera": {"zoom": 0.78}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[176, 66], [176, 150]], "w": 5}, + {"kind": "circle", "c": [176, 61], "r": 3.5, "fill": true, "color": "prop"} + ]} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.1, + "root": {"pos": [160, 86], "pitch": 8}, + "spine": [0, 0], + "neck": 5, "head": -10, + "shoulder_r": 2, "elbow_r": 8, + "shoulder_l": 2, "elbow_l": 8, + "hip_r": 45, "knee_r": 130, "ankle_r": -20, + "hip_l": 45, "knee_l": 130, "ankle_l": -20, + "pins": {"hand_r": [174, 60], "hand_l": [178, 62]} + }, + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 116], "pitch": 18}, + "spine": [0, 4], + "neck": 8, "head": -15, + "shoulder_r": -30, "elbow_r": 110, + "shoulder_l": -30, "elbow_l": 110, + "hip_r": 78, "knee_r": 148, "ankle_r": -20, + "hip_l": 78, "knee_l": 148, "ankle_l": -20, + "pins": {"hand_r": [174, 60], "hand_l": [178, 62]} + } + ] +} diff --git a/Exercise Library/Dip/preview.gif b/Exercise Library/Dip/preview.gif new file mode 100644 index 0000000..e884c2b Binary files /dev/null and b/Exercise Library/Dip/preview.gif differ diff --git a/Exercise Library/Dip/visual.svg b/Exercise Library/Dip/visual.svg new file mode 100644 index 0000000..354595f --- /dev/null +++ b/Exercise Library/Dip/visual.svg @@ -0,0 +1,21 @@ + + Dip + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Bench Press/frames/frame-1.svg b/Exercise Library/Dumbbell Bench Press/frames/frame-1.svg new file mode 100644 index 0000000..449835f --- /dev/null +++ b/Exercise Library/Dumbbell Bench Press/frames/frame-1.svg @@ -0,0 +1,28 @@ + + Dumbbell Bench Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Bench Press/frames/frame-2.svg b/Exercise Library/Dumbbell Bench Press/frames/frame-2.svg new file mode 100644 index 0000000..66308f0 --- /dev/null +++ b/Exercise Library/Dumbbell Bench Press/frames/frame-2.svg @@ -0,0 +1,28 @@ + + Dumbbell Bench Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Bench Press/info.md b/Exercise Library/Dumbbell Bench Press/info.md new file mode 100644 index 0000000..770ebad --- /dev/null +++ b/Exercise Library/Dumbbell Bench Press/info.md @@ -0,0 +1,38 @@ +# Dumbbell Bench Press + +The dumbbell press on the flat bench — a deeper, freer pressing arc than +the bar, one weight in each hand. + +- **Category:** Main circuit +- **Type:** Free-weight horizontal press (dumbbells) +- **Targets:** Chest, front delts, triceps +- **Prescription:** 3 × 8–12 + +## Setup + +Sit with the dumbbells on your thighs, then lie back and kick them up to +straight arms over the shoulders. Feet flat, shoulder blades pinched. + +## Execution + +1. Lower both dumbbells to the outside of the chest, elbows about 45° + from the body. +2. Reach a comfortable stretch — deeper than a bar allows. +3. Press back up and slightly together to lockout. + +## Cues + +- The dumbbells travel in a shallow A-shape, not straight lines. +- Keep the wrists neutral and stacked over the elbows. +- Lower slowly; the stretch is where dumbbells earn their keep. + +## Common Mistakes + +- Clanging the weights together at the top. +- Uneven pressing — one side racing ahead. +- Dropping the dumbbells from lockout instead of walking them down. + +## Progression + +Add weight while both sides press evenly; pause reps in the stretch +position. diff --git a/Exercise Library/Dumbbell Bench Press/motion.json b/Exercise Library/Dumbbell Bench Press/motion.json new file mode 100644 index 0000000..40d7a4b --- /dev/null +++ b/Exercise Library/Dumbbell Bench Press/motion.json @@ -0,0 +1,40 @@ +{ + "name": "Dumbbell Bench Press", + "primary": 1, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[58, 124], [162, 124]], "w": 9, "depth": 8}, + {"kind": "line", "pts": [[78, 129], [78, 150]], "w": 4}, + {"kind": "line", "pts": [[144, 129], [144, 150]], "w": 4} + ]}, + {"type": "dumbbell", "at": "hand_r"}, + {"type": "dumbbell", "at": "hand_l"} + ], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [150, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": 12, "elbow_r": 105, + "shoulder_l": 12, "elbow_l": 105, + "hip_r": 78, "knee_r": 82, "ankle_r": 5, + "hip_l": 78, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [196, 148], "foot_l": [200, 150], + "hand_r": [90, 104], "hand_l": [98, 106]} + }, + { + "hold": 0.4, "tween": 1.2, + "root": {"pos": [150, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": 90, "elbow_r": 5, + "shoulder_l": 90, "elbow_l": 5, + "hip_r": 78, "knee_r": 82, "ankle_r": 5, + "hip_l": 78, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [196, 148], "foot_l": [200, 150], + "hand_r": [66, 57], "hand_l": [72, 59]} + } + ] +} diff --git a/Exercise Library/Dumbbell Bench Press/preview.gif b/Exercise Library/Dumbbell Bench Press/preview.gif new file mode 100644 index 0000000..17c3b1e Binary files /dev/null and b/Exercise Library/Dumbbell Bench Press/preview.gif differ diff --git a/Exercise Library/Dumbbell Bench Press/visual.svg b/Exercise Library/Dumbbell Bench Press/visual.svg new file mode 100644 index 0000000..449835f --- /dev/null +++ b/Exercise Library/Dumbbell Bench Press/visual.svg @@ -0,0 +1,28 @@ + + Dumbbell Bench Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Curl/frames/frame-1.svg b/Exercise Library/Dumbbell Curl/frames/frame-1.svg new file mode 100644 index 0000000..62e2695 --- /dev/null +++ b/Exercise Library/Dumbbell Curl/frames/frame-1.svg @@ -0,0 +1,25 @@ + + Dumbbell Curl + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Curl/frames/frame-2.svg b/Exercise Library/Dumbbell Curl/frames/frame-2.svg new file mode 100644 index 0000000..2f4013a --- /dev/null +++ b/Exercise Library/Dumbbell Curl/frames/frame-2.svg @@ -0,0 +1,25 @@ + + Dumbbell Curl + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Curl/info.md b/Exercise Library/Dumbbell Curl/info.md new file mode 100644 index 0000000..c79d43b --- /dev/null +++ b/Exercise Library/Dumbbell Curl/info.md @@ -0,0 +1,37 @@ +# Dumbbell Curl + +The free-weight biceps curl — elbows pinned to the sides, curl both +dumbbells from a full hang to the shoulders. + +- **Category:** Main circuit +- **Type:** Free-weight elbow flexion (dumbbells) +- **Targets:** Biceps, forearms +- **Prescription:** 3 × 10–12 + +## Setup + +Stand tall with a dumbbell in each hand at your sides, palms forward (or +turning as you curl), elbows lightly touching the ribs. + +## Execution + +1. Curl both weights up in an arc until the forearms reach the biceps. +2. Keep the elbows fixed in place at your sides. +3. Lower all the way to straight arms — the stretch counts. + +## Cues + +- Elbows are hinges, not swings — they never travel forward or back. +- Wrists stay neutral; no flicking at the top. +- Stand tall; the trunk does not rock. + +## Common Mistakes + +- Swinging the hips to start the rep. +- Half reps that skip the bottom stretch. +- Elbows drifting forward, turning it into a front raise. + +## Progression + +Add weight only while the torso stays statue-still; alternate arms or +curl seated to remove all momentum. diff --git a/Exercise Library/Dumbbell Curl/motion.json b/Exercise Library/Dumbbell Curl/motion.json new file mode 100644 index 0000000..9539a31 --- /dev/null +++ b/Exercise Library/Dumbbell Curl/motion.json @@ -0,0 +1,34 @@ +{ + "name": "Dumbbell Curl", + "primary": 2, + "camera": {"zoom": 0.7}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "dumbbell", "at": "hand_r"}, + {"type": "dumbbell", "at": "hand_l"} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 64], "pitch": 3}, + "spine": [0, 0], + "neck": 2, "head": -4, + "shoulder_r": 3, "elbow_r": 10, + "shoulder_l": 3, "elbow_l": 10, + "hip_r": 3, "knee_r": 2, "ankle_r": 0, + "hip_l": 3, "knee_l": 2, "ankle_l": 0, + "pins": {"foot_r": [158, 148], "foot_l": [162, 150]} + }, + { + "hold": 0.4, "tween": 1.2, + "root": {"pos": [160, 64], "pitch": 3}, + "spine": [0, 0], + "neck": 2, "head": -4, + "shoulder_r": 6, "elbow_r": 128, + "shoulder_l": 6, "elbow_l": 128, + "hip_r": 3, "knee_r": 2, "ankle_r": 0, + "hip_l": 3, "knee_l": 2, "ankle_l": 0, + "pins": {"foot_r": [158, 148], "foot_l": [162, 150]} + } + ] +} diff --git a/Exercise Library/Dumbbell Curl/preview.gif b/Exercise Library/Dumbbell Curl/preview.gif new file mode 100644 index 0000000..9a6de14 Binary files /dev/null and b/Exercise Library/Dumbbell Curl/preview.gif differ diff --git a/Exercise Library/Dumbbell Curl/visual.svg b/Exercise Library/Dumbbell Curl/visual.svg new file mode 100644 index 0000000..2f4013a --- /dev/null +++ b/Exercise Library/Dumbbell Curl/visual.svg @@ -0,0 +1,25 @@ + + Dumbbell Curl + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Fly/frames/frame-1.svg b/Exercise Library/Dumbbell Fly/frames/frame-1.svg new file mode 100644 index 0000000..aa94e84 --- /dev/null +++ b/Exercise Library/Dumbbell Fly/frames/frame-1.svg @@ -0,0 +1,28 @@ + + Dumbbell Fly + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Fly/frames/frame-2.svg b/Exercise Library/Dumbbell Fly/frames/frame-2.svg new file mode 100644 index 0000000..93b2a37 --- /dev/null +++ b/Exercise Library/Dumbbell Fly/frames/frame-2.svg @@ -0,0 +1,28 @@ + + Dumbbell Fly + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Fly/info.md b/Exercise Library/Dumbbell Fly/info.md new file mode 100644 index 0000000..8d5db4c --- /dev/null +++ b/Exercise Library/Dumbbell Fly/info.md @@ -0,0 +1,38 @@ +# Dumbbell Fly + +The chest isolation — arms sweep from wide open to over the chest in a +hugging arc, elbows softly fixed. + +- **Category:** Main circuit +- **Type:** Free-weight chest fly (dumbbells) +- **Targets:** Chest, front delts +- **Prescription:** 3 × 10–15, light and controlled + +## Setup + +Lie on the flat bench with light dumbbells pressed over the chest, palms +facing each other, a slight fixed bend in the elbows. + +## Execution + +1. Open the arms in a wide arc until you feel a full chest stretch — + hands about level with the chest, never below the shoulders' comfort. +2. Keep the elbow angle unchanged the entire way. +3. Sweep back up as if hugging a barrel, squeezing the chest together. + +## Cues + +- It's an arc, not a press — the elbows never bend and extend. +- Go light; the stretch does the work, not the load. +- Stop the descent the moment the chest stretch peaks. + +## Common Mistakes + +- Bending the elbows on the way down and pressing back up. +- Dropping too deep and straining the shoulders. +- Using bench-press weights. + +## Progression + +Slow the lowering phase and pause in the stretch; the Pec Deck offers +the same motion with the path guided. diff --git a/Exercise Library/Dumbbell Fly/motion.json b/Exercise Library/Dumbbell Fly/motion.json new file mode 100644 index 0000000..3f6af2a --- /dev/null +++ b/Exercise Library/Dumbbell Fly/motion.json @@ -0,0 +1,39 @@ +{ + "name": "Dumbbell Fly", + "primary": 2, + "camera": {"yaw": 90}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[148, 124], [172, 124]], "w": 8, "depth": 40}, + {"kind": "line", "pts": [[154, 129], [154, 150]], "w": 4}, + {"kind": "line", "pts": [[166, 129], [166, 150]], "w": 4} + ]}, + {"type": "dumbbell", "at": "hand_r"}, + {"type": "dumbbell", "at": "hand_l"} + ], + "frames": [ + { + "hold": 0.5, "tween": 1.0, + "root": {"pos": [160, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": 88, "elbow_r": 12, + "shoulder_l": 88, "elbow_l": 12, + "hip_r": {"flexion": 78, "abduction": 10}, "knee_r": 82, "ankle_r": 5, + "hip_l": {"flexion": 78, "abduction": 10}, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [142, 148], "foot_l": [178, 150]} + }, + { + "hold": 0.5, "tween": 1.3, + "root": {"pos": [160, 116], "pitch": -90}, + "spine": [0, 0], + "neck": 8, "head": 0, + "shoulder_r": {"flexion": 16, "abduction": 84}, "elbow_r": 22, + "shoulder_l": {"flexion": 16, "abduction": 84}, "elbow_l": 22, + "hip_r": {"flexion": 78, "abduction": 10}, "knee_r": 82, "ankle_r": 5, + "hip_l": {"flexion": 78, "abduction": 10}, "knee_l": 82, "ankle_l": 5, + "pins": {"foot_r": [142, 148], "foot_l": [178, 150]} + } + ] +} diff --git a/Exercise Library/Dumbbell Fly/preview.gif b/Exercise Library/Dumbbell Fly/preview.gif new file mode 100644 index 0000000..9e2f142 Binary files /dev/null and b/Exercise Library/Dumbbell Fly/preview.gif differ diff --git a/Exercise Library/Dumbbell Fly/visual.svg b/Exercise Library/Dumbbell Fly/visual.svg new file mode 100644 index 0000000..93b2a37 --- /dev/null +++ b/Exercise Library/Dumbbell Fly/visual.svg @@ -0,0 +1,28 @@ + + Dumbbell Fly + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Row/frames/frame-1.svg b/Exercise Library/Dumbbell Row/frames/frame-1.svg new file mode 100644 index 0000000..fa1c083 --- /dev/null +++ b/Exercise Library/Dumbbell Row/frames/frame-1.svg @@ -0,0 +1,25 @@ + + Dumbbell Row + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Row/frames/frame-2.svg b/Exercise Library/Dumbbell Row/frames/frame-2.svg new file mode 100644 index 0000000..3ff3cff --- /dev/null +++ b/Exercise Library/Dumbbell Row/frames/frame-2.svg @@ -0,0 +1,25 @@ + + Dumbbell Row + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Row/info.md b/Exercise Library/Dumbbell Row/info.md new file mode 100644 index 0000000..ae62561 --- /dev/null +++ b/Exercise Library/Dumbbell Row/info.md @@ -0,0 +1,39 @@ +# Dumbbell Row + +The one-arm row — knee and hand braced on the bench, pull the dumbbell +from a dead hang to the ribs. + +- **Category:** Main circuit +- **Type:** Free-weight horizontal pull (dumbbell) +- **Targets:** Lats, mid-back, biceps +- **Prescription:** 3 × 8–12 per side + +## Setup + +Put the same-side knee and hand on a bench, the other foot planted on +the floor. Back flat and parallel to the ground, dumbbell hanging +straight down from the shoulder. + +## Execution + +1. Pull the dumbbell up and back toward the hip until the elbow passes + the ribs. +2. Squeeze the shoulder blade at the top. +3. Lower to a full hang and stretch. Finish the set, then switch sides. + +## Cues + +- The elbow leads; the hand just holds on. +- Shoulders stay square to the floor — no twisting to hoist the weight. +- Long neck, eyes down; the back stays flat. + +## Common Mistakes + +- Rotating the torso open at the top of each rep. +- Pulling with the biceps instead of driving the elbow back. +- Cutting the stretch short at the bottom. + +## Progression + +Heavier dumbbells while the torso stays quiet; pause each rep at the top +for a stricter mid-back stimulus. diff --git a/Exercise Library/Dumbbell Row/motion.json b/Exercise Library/Dumbbell Row/motion.json new file mode 100644 index 0000000..c264064 --- /dev/null +++ b/Exercise Library/Dumbbell Row/motion.json @@ -0,0 +1,39 @@ +{ + "name": "Dumbbell Row", + "primary": 2, + "working": ["arm_r"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[100, 124], [215, 124]], "w": 9, "depth": 8}, + {"kind": "line", "pts": [[118, 129], [118, 150]], "w": 4}, + {"kind": "line", "pts": [[196, 129], [196, 150]], "w": 4} + ]}, + {"type": "dumbbell", "at": "hand_r"} + ], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [168, 82], "yaw": 180, "pitch": 80}, + "spine": [0, 0], + "neck": 10, "head": -50, + "shoulder_r": 75, "elbow_r": 8, + "shoulder_l": 72, "elbow_l": 5, + "hip_r": 25, "knee_r": 25, "ankle_r": 10, + "hip_l": 80, "knee_l": 95, "ankle_l": -50, + "pins": {"foot_r": [196, 148], "foot_l": [202, 122], + "hand_l": [66, 120], "hand_r": [92, 125]} + }, + { + "hold": 0.5, "tween": 1.1, + "root": {"pos": [168, 82], "yaw": 180, "pitch": 80}, + "spine": [0, 0], + "neck": 10, "head": -50, + "shoulder_r": 40, "elbow_r": 115, + "shoulder_l": 72, "elbow_l": 5, + "hip_r": 25, "knee_r": 25, "ankle_r": 10, + "hip_l": 80, "knee_l": 95, "ankle_l": -50, + "pins": {"foot_r": [196, 148], "foot_l": [202, 122], + "hand_l": [66, 120], "hand_r": [100, 86]} + } + ] +} diff --git a/Exercise Library/Dumbbell Row/preview.gif b/Exercise Library/Dumbbell Row/preview.gif new file mode 100644 index 0000000..1b892da Binary files /dev/null and b/Exercise Library/Dumbbell Row/preview.gif differ diff --git a/Exercise Library/Dumbbell Row/visual.svg b/Exercise Library/Dumbbell Row/visual.svg new file mode 100644 index 0000000..3ff3cff --- /dev/null +++ b/Exercise Library/Dumbbell Row/visual.svg @@ -0,0 +1,25 @@ + + Dumbbell Row + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Shoulder Press/frames/frame-1.svg b/Exercise Library/Dumbbell Shoulder Press/frames/frame-1.svg new file mode 100644 index 0000000..9fbdf18 --- /dev/null +++ b/Exercise Library/Dumbbell Shoulder Press/frames/frame-1.svg @@ -0,0 +1,28 @@ + + Dumbbell Shoulder Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Shoulder Press/frames/frame-2.svg b/Exercise Library/Dumbbell Shoulder Press/frames/frame-2.svg new file mode 100644 index 0000000..7fc53a6 --- /dev/null +++ b/Exercise Library/Dumbbell Shoulder Press/frames/frame-2.svg @@ -0,0 +1,28 @@ + + Dumbbell Shoulder Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Dumbbell Shoulder Press/info.md b/Exercise Library/Dumbbell Shoulder Press/info.md new file mode 100644 index 0000000..d10140e --- /dev/null +++ b/Exercise Library/Dumbbell Shoulder Press/info.md @@ -0,0 +1,37 @@ +# Dumbbell Shoulder Press + +The overhead press with dumbbells — seated against an upright bench, +press from the shoulders to lockout overhead. + +- **Category:** Main circuit +- **Type:** Free-weight vertical press (dumbbells) +- **Targets:** Shoulders, triceps, upper chest +- **Prescription:** 3 × 8–12 + +## Setup + +Set the bench back upright. Sit with the dumbbells at shoulder height, +palms forward, forearms vertical, feet planted. + +## Execution + +1. Press both dumbbells straight up until the arms lock out overhead. +2. Keep the weights over the shoulders — not drifting forward. +3. Lower under control back to shoulder height. + +## Cues + +- Forearms vertical from every angle, wrists stacked over elbows. +- Ribs down; the back stays on the pad, not arching off it. +- The head moves slightly through at the top — bar path stays vertical. + +## Common Mistakes + +- Overarching the lower back to press bigger weights. +- Stopping short of lockout. +- Letting the dumbbells drift out sideways on the way up. + +## Progression + +Add weight while the back stays quiet on the pad; standing presses +recruit more trunk once the seated pattern is strong. diff --git a/Exercise Library/Dumbbell Shoulder Press/motion.json b/Exercise Library/Dumbbell Shoulder Press/motion.json new file mode 100644 index 0000000..a3a78de --- /dev/null +++ b/Exercise Library/Dumbbell Shoulder Press/motion.json @@ -0,0 +1,41 @@ +{ + "name": "Dumbbell Shoulder Press", + "primary": 2, + "camera": {"zoom": 0.82}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[117, 128], [113, 58]], "w": 8, "depth": 8}, + {"kind": "line", "pts": [[114, 134], [150, 134]], "w": 8, "depth": 8}, + {"kind": "line", "pts": [[132, 136], [132, 150]], "w": 5} + ]}, + {"type": "dumbbell", "at": "hand_r"}, + {"type": "dumbbell", "at": "hand_l"} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [130, 124], "pitch": 2}, + "spine": [0, 2], + "neck": 4, "head": -6, + "shoulder_r": 35, "elbow_r": 145, + "shoulder_l": 35, "elbow_l": 145, + "hip_r": 84, "knee_r": 64, + "hip_l": 84, "knee_l": 64, + "pins": {"foot_r": [176, 150], "foot_l": [180, 151], + "hand_r": [146, 30], "hand_l": [150, 32]} + }, + { + "hold": 0.4, "tween": 1.2, + "root": {"pos": [130, 124], "pitch": 2}, + "spine": [0, 2], + "neck": 4, "head": -6, + "shoulder_r": 168, "elbow_r": 8, + "shoulder_l": 168, "elbow_l": 8, + "hip_r": 84, "knee_r": 64, + "hip_l": 84, "knee_l": 64, + "pins": {"foot_r": [176, 150], "foot_l": [180, 151], + "hand_r": [138, -19], "hand_l": [142, -17]} + } + ] +} diff --git a/Exercise Library/Dumbbell Shoulder Press/preview.gif b/Exercise Library/Dumbbell Shoulder Press/preview.gif new file mode 100644 index 0000000..8ff48c4 Binary files /dev/null and b/Exercise Library/Dumbbell Shoulder Press/preview.gif differ diff --git a/Exercise Library/Dumbbell Shoulder Press/visual.svg b/Exercise Library/Dumbbell Shoulder Press/visual.svg new file mode 100644 index 0000000..7fc53a6 --- /dev/null +++ b/Exercise Library/Dumbbell Shoulder Press/visual.svg @@ -0,0 +1,28 @@ + + Dumbbell Shoulder Press + + + + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Goblet Squat/frames/frame-1.svg b/Exercise Library/Goblet Squat/frames/frame-1.svg new file mode 100644 index 0000000..74b0728 --- /dev/null +++ b/Exercise Library/Goblet Squat/frames/frame-1.svg @@ -0,0 +1,22 @@ + + Goblet Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Goblet Squat/frames/frame-2.svg b/Exercise Library/Goblet Squat/frames/frame-2.svg new file mode 100644 index 0000000..c16081f --- /dev/null +++ b/Exercise Library/Goblet Squat/frames/frame-2.svg @@ -0,0 +1,22 @@ + + Goblet Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Goblet Squat/info.md b/Exercise Library/Goblet Squat/info.md new file mode 100644 index 0000000..1f59bac --- /dev/null +++ b/Exercise Library/Goblet Squat/info.md @@ -0,0 +1,37 @@ +# Goblet Squat + +The dumbbell squat — hold one dumbbell vertically at the chest and squat +between the heels. The friendliest way to load a squat. + +- **Category:** Main circuit +- **Type:** Free-weight squat (dumbbell) +- **Targets:** Quadriceps, glutes, trunk +- **Prescription:** 3 × 10–12 + +## Setup + +Hold a dumbbell vertically against your chest, both palms cupping the top +end, elbows pointing down. Feet shoulder-width, toes slightly out. + +## Execution + +1. Squat down between the heels, keeping the dumbbell glued to the chest. +2. Reach full depth — elbows travel inside the knees. +3. Stand back up tall without letting the weight tip you forward. + +## Cues + +- The counterweight in front lets the torso stay very upright — use it. +- Elbows brush the inside of the knees at the bottom. +- Whole foot planted; drive through the heels. + +## Common Mistakes + +- Letting the dumbbell drift away from the chest. +- Cutting depth short. +- Collapsing the upper back as the weight gets heavy. + +## Progression + +Heavier dumbbells until they're awkward to hold — then move to the +Barbell Squat. diff --git a/Exercise Library/Goblet Squat/motion.json b/Exercise Library/Goblet Squat/motion.json new file mode 100644 index 0000000..ed964ab --- /dev/null +++ b/Exercise Library/Goblet Squat/motion.json @@ -0,0 +1,35 @@ +{ + "name": "Goblet Squat", + "primary": 2, + "camera": {"zoom": 0.72}, + "working": ["leg_r", "leg_l"], + "props": [ + {"type": "dumbbell", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 8, "plateR": 5} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 66], "pitch": 5}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 38, "elbow_r": 125, + "shoulder_l": 38, "elbow_l": 125, + "hip_r": 5, "knee_r": 4, "ankle_r": 0, + "hip_l": 5, "knee_l": 4, "ankle_l": 0, + "pins": {"foot_r": [162, 148], "foot_l": [166, 150], + "hand_r": [176, -2], "hand_l": [180, 0]} + }, + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [150, 104], "pitch": 22}, + "spine": [0, -4], + "neck": 4, "head": -18, + "shoulder_r": 46, "elbow_r": 120, + "shoulder_l": 46, "elbow_l": 120, + "hip_r": 96, "knee_r": 116, "ankle_r": 20, + "hip_l": 96, "knee_l": 116, "ankle_l": 20, + "pins": {"foot_r": [162, 148], "foot_l": [166, 150], + "hand_r": [190, 40], "hand_l": [194, 42]} + } + ] +} diff --git a/Exercise Library/Goblet Squat/preview.gif b/Exercise Library/Goblet Squat/preview.gif new file mode 100644 index 0000000..11be840 Binary files /dev/null and b/Exercise Library/Goblet Squat/preview.gif differ diff --git a/Exercise Library/Goblet Squat/visual.svg b/Exercise Library/Goblet Squat/visual.svg new file mode 100644 index 0000000..c16081f --- /dev/null +++ b/Exercise Library/Goblet Squat/visual.svg @@ -0,0 +1,22 @@ + + Goblet Squat + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Incline Bench Press/frames/frame-1.svg b/Exercise Library/Incline Bench Press/frames/frame-1.svg new file mode 100644 index 0000000..2fcb796 --- /dev/null +++ b/Exercise Library/Incline Bench Press/frames/frame-1.svg @@ -0,0 +1,25 @@ + + Incline Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Incline Bench Press/frames/frame-2.svg b/Exercise Library/Incline Bench Press/frames/frame-2.svg new file mode 100644 index 0000000..a16e169 --- /dev/null +++ b/Exercise Library/Incline Bench Press/frames/frame-2.svg @@ -0,0 +1,25 @@ + + Incline Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Incline Bench Press/info.md b/Exercise Library/Incline Bench Press/info.md new file mode 100644 index 0000000..4460e66 --- /dev/null +++ b/Exercise Library/Incline Bench Press/info.md @@ -0,0 +1,37 @@ +# Incline Bench Press + +The barbell press on the tilted bench — same press, aimed at the upper +chest. + +- **Category:** Main circuit +- **Type:** Free-weight incline press +- **Targets:** Upper chest, front delts, triceps +- **Prescription:** 3 × 8–10 + +## Setup + +Set the bench to a moderate incline (around 30–45°). Lie back with the +bar over the eyes, shoulder blades set, feet planted. + +## Execution + +1. Lower the bar to the upper chest, just below the collarbones. +2. Touch lightly, keeping the forearms vertical. +3. Press straight up to lockout above the shoulders. + +## Cues + +- The steeper the bench, the more shoulder and less chest. +- Ribcage up, but hips stay on the pad. +- Bar path is a straight vertical line on the incline. + +## Common Mistakes + +- Sliding the bar path out over the belly. +- Overarching to turn it back into a flat press. +- Grip too wide for the shorter incline stroke. + +## Progression + +Work up in weight after the flat Bench Press, not before it; dumbbells +on the same bench trade load for range. diff --git a/Exercise Library/Incline Bench Press/motion.json b/Exercise Library/Incline Bench Press/motion.json new file mode 100644 index 0000000..75ef343 --- /dev/null +++ b/Exercise Library/Incline Bench Press/motion.json @@ -0,0 +1,40 @@ +{ + "name": "Incline Bench Press", + "primary": 1, + "camera": {"zoom": 0.85}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "scene", "shapes": [ + {"kind": "line", "pts": [[142, 127], [86, 60]], "w": 9, "depth": 8}, + {"kind": "line", "pts": [[140, 130], [166, 127]], "w": 8, "depth": 8}, + {"kind": "line", "pts": [[152, 133], [152, 150]], "w": 5} + ]}, + {"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 26, "plateR": 12} + ], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [148, 122], "pitch": -38}, + "spine": [0, 0], + "neck": 18, "head": -4, + "shoulder_r": 30, "elbow_r": 115, + "shoulder_l": 30, "elbow_l": 115, + "hip_r": 85, "knee_r": 75, "ankle_r": 5, + "hip_l": 85, "knee_l": 75, "ankle_l": 5, + "pins": {"foot_r": [198, 148], "foot_l": [202, 150], + "hand_r": [106, 38], "hand_l": [110, 40]} + }, + { + "hold": 0.4, "tween": 1.2, + "root": {"pos": [148, 122], "pitch": -38}, + "spine": [0, 0], + "neck": 18, "head": -4, + "shoulder_r": 118, "elbow_r": 5, + "shoulder_l": 118, "elbow_l": 5, + "hip_r": 85, "knee_r": 75, "ankle_r": 5, + "hip_l": 85, "knee_l": 75, "ankle_l": 5, + "pins": {"foot_r": [198, 148], "foot_l": [202, 150], + "hand_r": [98, -3], "hand_l": [102, -1]} + } + ] +} diff --git a/Exercise Library/Incline Bench Press/preview.gif b/Exercise Library/Incline Bench Press/preview.gif new file mode 100644 index 0000000..7b777ff Binary files /dev/null and b/Exercise Library/Incline Bench Press/preview.gif differ diff --git a/Exercise Library/Incline Bench Press/visual.svg b/Exercise Library/Incline Bench Press/visual.svg new file mode 100644 index 0000000..2fcb796 --- /dev/null +++ b/Exercise Library/Incline Bench Press/visual.svg @@ -0,0 +1,25 @@ + + Incline Bench Press + + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lateral Raise/frames/frame-1.svg b/Exercise Library/Lateral Raise/frames/frame-1.svg new file mode 100644 index 0000000..d7dd63a --- /dev/null +++ b/Exercise Library/Lateral Raise/frames/frame-1.svg @@ -0,0 +1,24 @@ + + Lateral Raise + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lateral Raise/frames/frame-2.svg b/Exercise Library/Lateral Raise/frames/frame-2.svg new file mode 100644 index 0000000..54a18d6 --- /dev/null +++ b/Exercise Library/Lateral Raise/frames/frame-2.svg @@ -0,0 +1,24 @@ + + Lateral Raise + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lateral Raise/info.md b/Exercise Library/Lateral Raise/info.md new file mode 100644 index 0000000..1ff8e09 --- /dev/null +++ b/Exercise Library/Lateral Raise/info.md @@ -0,0 +1,37 @@ +# Lateral Raise + +The side-delt isolation — raise light dumbbells out to the sides until +the arms are level with the shoulders. + +- **Category:** Main circuit +- **Type:** Free-weight lateral raise (dumbbells) +- **Targets:** Side delts +- **Prescription:** 3 × 12–15, light + +## Setup + +Stand tall with light dumbbells at your sides, a slight fixed bend in +the elbows, shoulders relaxed down. + +## Execution + +1. Raise both arms out to the sides, leading with the elbows. +2. Stop at shoulder height — arms level, pinkies no higher than thumbs. +3. Lower slowly back to the sides. + +## Cues + +- Pour-the-jug: elbows stay just above the hands. +- Shoulders stay down away from the ears — no shrugging. +- The weights float up; the trunk never sways. + +## Common Mistakes + +- Going too heavy and swinging the weights up. +- Shrugging the traps into the raise. +- Raising past shoulder height. + +## Progression + +More reps before more weight; slow negatives and pauses at the top beat +bigger dumbbells here. diff --git a/Exercise Library/Lateral Raise/motion.json b/Exercise Library/Lateral Raise/motion.json new file mode 100644 index 0000000..58806f7 --- /dev/null +++ b/Exercise Library/Lateral Raise/motion.json @@ -0,0 +1,32 @@ +{ + "name": "Lateral Raise", + "primary": 2, + "camera": {"yaw": 90, "zoom": 0.7}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "dumbbell", "at": "hand_r"}, + {"type": "dumbbell", "at": "hand_l"} + ], + "frames": [ + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 64]}, + "spine": [0, 0], + "neck": 0, "head": 0, + "shoulder_r": {"flexion": 4, "abduction": 8}, "elbow_r": 10, + "shoulder_l": {"flexion": 4, "abduction": 8}, "elbow_l": 10, + "hip_r": {"flexion": 0, "abduction": 6}, "knee_r": 0, + "hip_l": {"flexion": 0, "abduction": 6}, "knee_l": 0 + }, + { + "hold": 0.5, "tween": 1.3, + "root": {"pos": [160, 64]}, + "spine": [0, 0], + "neck": 0, "head": 0, + "shoulder_r": {"flexion": 4, "abduction": 88}, "elbow_r": 12, + "shoulder_l": {"flexion": 4, "abduction": 88}, "elbow_l": 12, + "hip_r": {"flexion": 0, "abduction": 6}, "knee_r": 0, + "hip_l": {"flexion": 0, "abduction": 6}, "knee_l": 0 + } + ] +} diff --git a/Exercise Library/Lateral Raise/preview.gif b/Exercise Library/Lateral Raise/preview.gif new file mode 100644 index 0000000..6c37dbc Binary files /dev/null and b/Exercise Library/Lateral Raise/preview.gif differ diff --git a/Exercise Library/Lateral Raise/visual.svg b/Exercise Library/Lateral Raise/visual.svg new file mode 100644 index 0000000..54a18d6 --- /dev/null +++ b/Exercise Library/Lateral Raise/visual.svg @@ -0,0 +1,24 @@ + + Lateral Raise + + + + + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lunge/frames/frame-1.svg b/Exercise Library/Lunge/frames/frame-1.svg new file mode 100644 index 0000000..06c583f --- /dev/null +++ b/Exercise Library/Lunge/frames/frame-1.svg @@ -0,0 +1,19 @@ + + Lunge + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lunge/frames/frame-2.svg b/Exercise Library/Lunge/frames/frame-2.svg new file mode 100644 index 0000000..c758334 --- /dev/null +++ b/Exercise Library/Lunge/frames/frame-2.svg @@ -0,0 +1,19 @@ + + Lunge + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Lunge/info.md b/Exercise Library/Lunge/info.md new file mode 100644 index 0000000..9cd1b2d --- /dev/null +++ b/Exercise Library/Lunge/info.md @@ -0,0 +1,38 @@ +# Lunge + +The split-stance squat — drop the back knee toward the floor, then drive +back up through the front heel. Bodyweight first, dumbbells in hand later. + +- **Category:** Main circuit +- **Type:** Split-stance squat (bodyweight or dumbbells) +- **Targets:** Quadriceps, glutes, balance +- **Prescription:** 3 × 8–10 per side + +## Setup + +Take a long step so both knees can bend to 90° — front shin vertical, +back heel up. Hips square to the front, hands at your sides or on hips. + +## Execution + +1. Lower straight down until the back knee hovers just above the floor. +2. The front knee stays over the mid-foot, torso upright. +3. Drive through the front heel to come back up. Finish the set, then + switch sides. + +## Cues + +- Down like an elevator, not forward like a slide. +- Front heel carries the work; the back leg balances. +- Squeeze the front glute to stand up. + +## Common Mistakes + +- Stance too short — the front knee shoots past the toes. +- Torso pitching forward on the way up. +- Pushing off the back foot instead of the front heel. + +## Progression + +Hold a dumbbell in each hand; step backward into each rep (reverse lunge) +or elevate the back foot for a split squat. diff --git a/Exercise Library/Lunge/motion.json b/Exercise Library/Lunge/motion.json new file mode 100644 index 0000000..3101682 --- /dev/null +++ b/Exercise Library/Lunge/motion.json @@ -0,0 +1,30 @@ +{ + "name": "Lunge", + "primary": 2, + "camera": {"zoom": 0.7}, + "working": ["leg_r", "leg_l"], + "frames": [ + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 68], "pitch": 6}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 5, "elbow_r": 8, + "shoulder_l": 5, "elbow_l": 8, + "hip_r": 25, "knee_r": 10, "ankle_r": 5, + "hip_l": -25, "knee_l": 10, "ankle_l": -12, + "pins": {"foot_r": [196, 148], "foot_l": [124, 147]} + }, + { + "hold": 0.4, "tween": 1.0, + "root": {"pos": [160, 106], "pitch": 8}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 5, "elbow_r": 8, + "shoulder_l": 5, "elbow_l": 8, + "hip_r": 80, "knee_r": 95, "ankle_r": 15, + "hip_l": -12, "knee_l": 100, "ankle_l": -42, + "pins": {"foot_r": [196, 148], "foot_l": [124, 147]} + } + ] +} diff --git a/Exercise Library/Lunge/preview.gif b/Exercise Library/Lunge/preview.gif new file mode 100644 index 0000000..93ad0b1 Binary files /dev/null and b/Exercise Library/Lunge/preview.gif differ diff --git a/Exercise Library/Lunge/visual.svg b/Exercise Library/Lunge/visual.svg new file mode 100644 index 0000000..c758334 --- /dev/null +++ b/Exercise Library/Lunge/visual.svg @@ -0,0 +1,19 @@ + + Lunge + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Pull-Up/frames/frame-1.svg b/Exercise Library/Pull-Up/frames/frame-1.svg new file mode 100644 index 0000000..f1bdcc8 --- /dev/null +++ b/Exercise Library/Pull-Up/frames/frame-1.svg @@ -0,0 +1,20 @@ + + Pull-Up + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Pull-Up/frames/frame-2.svg b/Exercise Library/Pull-Up/frames/frame-2.svg new file mode 100644 index 0000000..0a52dc2 --- /dev/null +++ b/Exercise Library/Pull-Up/frames/frame-2.svg @@ -0,0 +1,20 @@ + + Pull-Up + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Pull-Up/info.md b/Exercise Library/Pull-Up/info.md new file mode 100644 index 0000000..d6b7956 --- /dev/null +++ b/Exercise Library/Pull-Up/info.md @@ -0,0 +1,37 @@ +# Pull-Up + +The vertical pull — from a dead hang, pull the chin over the bar and +lower all the way back down. + +- **Category:** Main circuit +- **Type:** Bodyweight vertical pull +- **Targets:** Lats, biceps, mid-back, grip +- **Prescription:** 3 × as many strict reps as possible + +## Setup + +Grip the bar just outside shoulder-width, palms away. Hang with straight +arms, shoulders active (pulled slightly down), knees bent or legs long. + +## Execution + +1. Drive the elbows down toward the ribs to pull the body up. +2. Chin clears the bar — chest toward it, not chin poking over. +3. Lower with control to a full dead hang every rep. + +## Cues + +- Start every rep from straight arms; half hangs don't count. +- Think "elbows to pockets", not "chin to bar". +- Quiet body — no swinging or kicking. + +## Common Mistakes + +- Kipping and swinging for extra reps. +- Stopping the descent halfway. +- Shrugging the shoulders to the ears at the top. + +## Progression + +Use the assisted pull-up machine or a band until 5 strict reps come +easily; then add reps, then hang weight from a belt. diff --git a/Exercise Library/Pull-Up/motion.json b/Exercise Library/Pull-Up/motion.json new file mode 100644 index 0000000..36b0eb5 --- /dev/null +++ b/Exercise Library/Pull-Up/motion.json @@ -0,0 +1,33 @@ +{ + "name": "Pull-Up", + "primary": 2, + "camera": {"zoom": 0.7}, + "working": ["arm_r", "arm_l"], + "props": [ + {"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 24} + ], + "frames": [ + { + "hold": 0.5, "tween": 1.0, + "root": {"pos": [156, 99]}, + "spine": [0, 0], + "neck": 2, "head": -6, + "shoulder_r": 182, "elbow_r": 5, + "shoulder_l": 182, "elbow_l": 5, + "hip_r": 35, "knee_r": 120, "ankle_r": -30, + "hip_l": 35, "knee_l": 120, "ankle_l": -30, + "pins": {"hand_r": [154, -46], "hand_l": [158, -44]} + }, + { + "hold": 0.4, "tween": 1.3, + "root": {"pos": [156, 67]}, + "spine": [0, 0], + "neck": 4, "head": -10, + "shoulder_r": 150, "elbow_r": 125, + "shoulder_l": 150, "elbow_l": 125, + "hip_r": 35, "knee_r": 120, "ankle_r": -30, + "hip_l": 35, "knee_l": 120, "ankle_l": -30, + "pins": {"hand_r": [154, -46], "hand_l": [158, -44]} + } + ] +} diff --git a/Exercise Library/Pull-Up/preview.gif b/Exercise Library/Pull-Up/preview.gif new file mode 100644 index 0000000..08efb10 Binary files /dev/null and b/Exercise Library/Pull-Up/preview.gif differ diff --git a/Exercise Library/Pull-Up/visual.svg b/Exercise Library/Pull-Up/visual.svg new file mode 100644 index 0000000..0a52dc2 --- /dev/null +++ b/Exercise Library/Pull-Up/visual.svg @@ -0,0 +1,20 @@ + + Pull-Up + + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Push-Up/frames/frame-1.svg b/Exercise Library/Push-Up/frames/frame-1.svg new file mode 100644 index 0000000..7eb5851 --- /dev/null +++ b/Exercise Library/Push-Up/frames/frame-1.svg @@ -0,0 +1,19 @@ + + Push-Up + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Push-Up/frames/frame-2.svg b/Exercise Library/Push-Up/frames/frame-2.svg new file mode 100644 index 0000000..a5b099c --- /dev/null +++ b/Exercise Library/Push-Up/frames/frame-2.svg @@ -0,0 +1,19 @@ + + Push-Up + + + + + + + + + + + + + near + + far + + diff --git a/Exercise Library/Push-Up/info.md b/Exercise Library/Push-Up/info.md new file mode 100644 index 0000000..99f8f9e --- /dev/null +++ b/Exercise Library/Push-Up/info.md @@ -0,0 +1,38 @@ +# Push-Up + +The bodyweight press — a moving plank: lower the chest to the floor and +press back up without the hips sagging. + +- **Category:** Warm-up and main circuit +- **Type:** Bodyweight horizontal press +- **Targets:** Chest, front delts, triceps, trunk +- **Prescription:** 3 × 8–15 + +## Setup + +Hands under the shoulders, legs long, toes tucked. Squeeze the glutes +and brace so the body is one straight line from head to heels. + +## Execution + +1. Bend the elbows about 45° from the body and lower the chest toward + the floor. +2. Stop a fist's height off the ground, body still one line. +3. Press the floor away to straight arms. + +## Cues + +- The plank never breaks — hips neither sag nor pike. +- Screw the hands into the floor to keep the elbows tracking. +- Chest leads the descent, not the chin or the hips. + +## Common Mistakes + +- Hips sagging into a banana shape. +- Flaring the elbows to 90°. +- Craning the neck at the floor. + +## Progression + +Start from an incline (hands on a bench) if reps stall; graduate to feet +elevated, then slow negatives. diff --git a/Exercise Library/Push-Up/motion.json b/Exercise Library/Push-Up/motion.json new file mode 100644 index 0000000..f45c83d --- /dev/null +++ b/Exercise Library/Push-Up/motion.json @@ -0,0 +1,31 @@ +{ + "name": "Push-Up", + "primary": 1, + "working": ["arm_r", "arm_l"], + "frames": [ + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [180, 115], "yaw": 180, "pitch": 73}, + "spine": [0, 0], + "neck": 0, "head": -60, + "shoulder_r": 90, "elbow_r": 8, + "shoulder_l": 90, "elbow_l": 8, + "hip_r": 5, "knee_r": 3, "ankle_r": 25, + "hip_l": 5, "knee_l": 3, "ankle_l": 25, + "pins": {"hand_r": [97, 148], "hand_l": [101, 150], + "foot_r": [256, 143], "foot_l": [260, 145]} + }, + { + "hold": 0.4, "tween": 0.9, + "root": {"pos": [180, 132], "yaw": 180, "pitch": 85}, + "spine": [0, 0], + "neck": 0, "head": -55, + "shoulder_r": 60, "elbow_r": 110, + "shoulder_l": 60, "elbow_l": 110, + "hip_r": 5, "knee_r": 3, "ankle_r": 25, + "hip_l": 5, "knee_l": 3, "ankle_l": 25, + "pins": {"hand_r": [97, 148], "hand_l": [101, 150], + "foot_r": [256, 143], "foot_l": [260, 145]} + } + ] +} diff --git a/Exercise Library/Push-Up/preview.gif b/Exercise Library/Push-Up/preview.gif new file mode 100644 index 0000000..277b0c3 Binary files /dev/null and b/Exercise Library/Push-Up/preview.gif differ diff --git a/Exercise Library/Push-Up/visual.svg b/Exercise Library/Push-Up/visual.svg new file mode 100644 index 0000000..7eb5851 --- /dev/null +++ b/Exercise Library/Push-Up/visual.svg @@ -0,0 +1,19 @@ + + Push-Up + + + + + + + + + + + + + near + + far + +