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>Dumbbell Row</title>
<path d="M 42.3 160.1 L 223.3 160.1 L 223.3 149.7 L 42.3 149.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 100.0 124.0 L 215.0 124.0 L 215.0 124.0 L 100.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 118.0 129.0 L 118.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 196.0 129.0 L 196.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 173.9 82.8 L 211.1 109.4 L 196.0 145.8 L 206.7 148.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 90.2 67.5 L 102.1 94.6 L 92.0 122.5" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 168.0 83.2 L 162.4 128.2 L 202.0 122.6 L 211.3 128.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 84.3 69.4 L 84.3 67.5 L 90.2 67.5" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 168.0 83.2 L 168.0 82.0 L 173.9 82.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 168.0 82.0 Q 125.2 74.6 84.3 67.5" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 84.3 69.4 L 85.5 98.9 L 66.0 121.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 98.6 124.9 L 85.4 120.1" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="98.6" cy="124.9" r="4.5" fill="#6b7180"/>
<circle cx="85.4" cy="120.1" r="4.5" fill="#6b7180"/>
<circle id="head" cx="64.3" cy="67.5" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="56.6" y1="73.8" x2="51.2" y2="78.3" 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>Dumbbell Row</title>
<path d="M 42.3 160.1 L 223.3 160.1 L 223.3 149.7 L 42.3 149.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 100.0 124.0 L 215.0 124.0 L 215.0 124.0 L 100.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 118.0 129.0 L 118.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 196.0 129.0 L 196.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 173.9 82.8 L 211.1 109.4 L 196.0 145.8 L 206.7 148.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 90.2 67.5 L 119.6 61.7 L 100.0 84.1" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 168.0 83.2 L 162.4 128.2 L 202.0 122.6 L 211.3 128.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 84.3 69.4 L 84.3 67.5 L 90.2 67.5" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 168.0 83.2 L 168.0 82.0 L 173.9 82.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 168.0 82.0 Q 125.2 74.6 84.3 67.5" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 84.3 69.4 L 85.5 98.9 L 66.0 121.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 105.3 88.7 L 94.7 79.4" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="105.3" cy="88.7" r="4.5" fill="#6b7180"/>
<circle cx="94.7" cy="79.4" r="4.5" fill="#6b7180"/>
<circle id="head" cx="64.3" cy="67.5" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="56.6" y1="73.8" x2="51.2" y2="78.3" 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

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

After

Width:  |  Height:  |  Size: 141 KiB

+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Row</title>
<path d="M 42.3 160.1 L 223.3 160.1 L 223.3 149.7 L 42.3 149.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 100.0 124.0 L 215.0 124.0 L 215.0 124.0 L 100.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 118.0 129.0 L 118.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 196.0 129.0 L 196.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 173.9 82.8 L 211.1 109.4 L 196.0 145.8 L 206.7 148.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 90.2 67.5 L 119.6 61.7 L 100.0 84.1" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 168.0 83.2 L 162.4 128.2 L 202.0 122.6 L 211.3 128.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 84.3 69.4 L 84.3 67.5 L 90.2 67.5" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 168.0 83.2 L 168.0 82.0 L 173.9 82.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 168.0 82.0 Q 125.2 74.6 84.3 67.5" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 84.3 69.4 L 85.5 98.9 L 66.0 121.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 105.3 88.7 L 94.7 79.4" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="105.3" cy="88.7" r="4.5" fill="#6b7180"/>
<circle cx="94.7" cy="79.4" r="4.5" fill="#6b7180"/>
<circle id="head" cx="64.3" cy="67.5" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="56.6" y1="73.8" x2="51.2" y2="78.3" 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