Add the free-weight canon and bodyweight staples (16 exercises)

Squat/lunge: Barbell Squat, Goblet Squat, Bodyweight Squat, Lunge.
Bench station: Bench Press, Incline Bench Press, Dumbbell Bench Press,
Dumbbell Fly (the fly authors the face-on camera for its frontal arc).
Dumbbell rack: Dumbbell Row, Dumbbell Shoulder Press, Dumbbell Curl,
Lateral Raise - first uses of the dumbbell prop. Bodyweight: Push-Up,
Pull-Up, Crunch, Dip.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
2026-07-07 12:09:08 -04:00
parent b71ee0a355
commit 5bbe3f6ff0
96 changed files with 2274 additions and 0 deletions
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bench Press</title>
<path d="M 23.2 160.6 L 223.0 160.6 L 223.0 150.2 L 23.2 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 58.0 124.0 L 162.0 124.0 L 162.0 124.0 L 58.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 78.0 129.0 L 78.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 144.0 129.0 L 144.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 70.9 116.1 L 97.4 129.9 L 97.0 100.3" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.9 116.8 L 201.2 108.9 L 200.0 148.3 L 211.0 147.7" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 70.9 116.1 L 65.0 116.0 L 65.0 117.9" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.9 116.8 L 150.0 116.0 L 150.0 117.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.0 116.0 Q 106.5 116.0 65.0 116.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.0 117.2 L 195.3 109.3 L 196.0 148.7 L 206.9 147.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 65.0 117.9 L 91.6 131.7 L 93.0 102.2" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 69.0 101.2 L 121.0 101.2" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="69.0" cy="101.2" r="12" fill="#6b7180"/>
<circle cx="121.0" cy="101.2" r="12" fill="#6b7180"/>
<circle id="head" cx="45.2" cy="113.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="46.6" y1="103.4" x2="47.6" y2="96.5" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
<line x1="224" y1="16" x2="238" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<text x="243" y="20">near</text>
<line x1="273" y1="16" x2="287" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
<text x="292" y="20">far</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bench Press</title>
<path d="M 23.2 160.6 L 223.0 160.6 L 223.0 150.2 L 23.2 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 58.0 124.0 L 162.0 124.0 L 162.0 124.0 L 58.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 78.0 129.0 L 78.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 144.0 129.0 L 144.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.9 116.8 L 201.2 108.9 L 200.0 148.3 L 211.0 147.7" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 70.9 116.1 L 65.4 87.0 L 71.0 58.0" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 70.9 116.1 L 65.0 116.0 L 65.0 117.9" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.9 116.8 L 150.0 116.0 L 150.0 117.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.0 116.0 Q 106.5 116.0 65.0 116.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.0 117.2 L 195.3 109.3 L 196.0 148.7 L 206.9 147.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 65.0 117.9 L 60.6 88.7 L 67.0 59.8" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 43.0 58.9 L 95.0 58.9" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="43.0" cy="58.9" r="12" fill="#6b7180"/>
<circle cx="95.0" cy="58.9" r="12" fill="#6b7180"/>
<circle id="head" cx="45.2" cy="113.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="46.6" y1="103.4" x2="47.6" y2="96.5" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
<line x1="224" y1="16" x2="238" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<text x="243" y="20">near</text>
<line x1="273" y1="16" x2="287" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
<text x="292" y="20">far</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+40
View File
@@ -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 × 68
## 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.
+39
View File
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bench Press</title>
<path d="M 23.2 160.6 L 223.0 160.6 L 223.0 150.2 L 23.2 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 58.0 124.0 L 162.0 124.0 L 162.0 124.0 L 58.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 78.0 129.0 L 78.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 144.0 129.0 L 144.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 70.9 116.1 L 97.4 129.9 L 97.0 100.3" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.9 116.8 L 201.2 108.9 L 200.0 148.3 L 211.0 147.7" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 70.9 116.1 L 65.0 116.0 L 65.0 117.9" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.9 116.8 L 150.0 116.0 L 150.0 117.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.0 116.0 Q 106.5 116.0 65.0 116.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.0 117.2 L 195.3 109.3 L 196.0 148.7 L 206.9 147.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 65.0 117.9 L 91.6 131.7 L 93.0 102.2" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 69.0 101.2 L 121.0 101.2" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="69.0" cy="101.2" r="12" fill="#6b7180"/>
<circle cx="121.0" cy="101.2" r="12" fill="#6b7180"/>
<circle id="head" cx="45.2" cy="113.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="46.6" y1="103.4" x2="47.6" y2="96.5" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
<line x1="224" y1="16" x2="238" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<text x="243" y="20">near</text>
<line x1="273" y1="16" x2="287" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
<text x="292" y="20">far</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB