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,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell 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 95.0 133.7 L 98.0 104.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 89.0 135.6 L 90.0 106.1" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 83.0 105.9 L 97.0 106.3" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="83.0" cy="105.9" r="4.5" fill="#6b7180"/>
<circle cx="97.0" cy="106.3" r="4.5" fill="#6b7180"/>
<path d="M 91.0 103.6 L 105.0 105.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="91.0" cy="103.6" r="4.5" fill="#6b7180"/>
<circle cx="105.0" cy="105.0" r="4.5" 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.7 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell 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.9 86.9 L 72.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.1 88.8 L 66.0 59.8" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 59.1 58.4 L 72.9 61.2" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="59.1" cy="58.4" r="4.5" fill="#6b7180"/>
<circle cx="72.9" cy="61.2" r="4.5" fill="#6b7180"/>
<path d="M 65.1 56.6 L 78.9 59.4" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="65.1" cy="56.6" r="4.5" fill="#6b7180"/>
<circle cx="78.9" cy="59.4" r="4.5" 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.7 KiB

@@ -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 × 812
## 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.
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell 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 95.0 133.7 L 98.0 104.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 89.0 135.6 L 90.0 106.1" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 83.0 105.9 L 97.0 106.3" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="83.0" cy="105.9" r="4.5" fill="#6b7180"/>
<circle cx="97.0" cy="106.3" r="4.5" fill="#6b7180"/>
<path d="M 91.0 103.6 L 105.0 105.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="91.0" cy="103.6" r="4.5" fill="#6b7180"/>
<circle cx="105.0" cy="105.0" r="4.5" 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.7 KiB