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 Fly</title>
<path d="M 130.0 141.4 L 130.0 169.4 L 190.0 169.4 L 190.0 141.4 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 148.0 124.0 L 172.0 124.0 L 172.0 124.0 L 148.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 154.0 129.0 L 154.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 166.0 129.0 L 166.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 171.0 101.2 L 171.0 71.9 L 171.0 41.9" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 149.0 101.2 L 149.0 71.9 L 149.0 41.9" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 171.0 101.2 L 160.0 101.2 L 149.0 101.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 167.0 116.0 L 160.0 116.0 L 153.0 116.0" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 116.0 Q 160.0 108.4 160.0 101.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 167.0 116.0 L 180.8 118.2 L 178.0 158.0 L 181.4 157.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 153.0 116.0 L 139.2 116.2 L 142.0 156.1 L 138.7 155.6" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 142.0 41.9 L 156.0 41.9" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="142.0" cy="41.9" r="4.5" fill="#6b7180"/>
<circle cx="156.0" cy="41.9" r="4.5" fill="#6b7180"/>
<path d="M 164.0 41.9 L 178.0 41.9" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="164.0" cy="41.9" r="4.5" fill="#6b7180"/>
<circle cx="178.0" cy="41.9" r="4.5" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="95.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="160.0" y1="85.1" x2="160.0" y2="78.4" 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 Fly</title>
<path d="M 130.0 141.4 L 130.0 169.4 L 190.0 169.4 L 190.0 141.4 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 148.0 124.0 L 172.0 124.0 L 172.0 124.0 L 148.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 154.0 129.0 L 154.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 166.0 129.0 L 166.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 171.0 101.2 L 200.8 100.9 L 228.5 89.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 149.0 101.2 L 119.2 100.9 L 91.5 89.4" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 171.0 101.2 L 160.0 101.2 L 149.0 101.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 167.0 116.0 L 160.0 116.0 L 153.0 116.0" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 116.0 Q 160.0 108.4 160.0 101.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 167.0 116.0 L 180.8 118.2 L 178.0 158.0 L 181.4 157.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 153.0 116.0 L 139.2 116.2 L 142.0 156.1 L 138.7 155.6" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 88.8 95.9 L 94.2 83.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="88.8" cy="95.9" r="4.5" fill="#6b7180"/>
<circle cx="94.2" cy="83.0" r="4.5" fill="#6b7180"/>
<path d="M 225.8 83.0 L 231.2 95.9" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="225.8" cy="83.0" r="4.5" fill="#6b7180"/>
<circle cx="231.2" cy="95.9" r="4.5" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="95.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="160.0" y1="85.1" x2="160.0" y2="78.4" 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

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

After

Width:  |  Height:  |  Size: 141 KiB

+28
View File
@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Fly</title>
<path d="M 130.0 141.4 L 130.0 169.4 L 190.0 169.4 L 190.0 141.4 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path d="M 148.0 124.0 L 172.0 124.0 L 172.0 124.0 L 148.0 124.0 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 154.0 129.0 L 154.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 166.0 129.0 L 166.0 150.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 171.0 101.2 L 200.8 100.9 L 228.5 89.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 149.0 101.2 L 119.2 100.9 L 91.5 89.4" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 171.0 101.2 L 160.0 101.2 L 149.0 101.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 167.0 116.0 L 160.0 116.0 L 153.0 116.0" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 116.0 Q 160.0 108.4 160.0 101.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 167.0 116.0 L 180.8 118.2 L 178.0 158.0 L 181.4 157.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 153.0 116.0 L 139.2 116.2 L 142.0 156.1 L 138.7 155.6" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 88.8 95.9 L 94.2 83.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="88.8" cy="95.9" r="4.5" fill="#6b7180"/>
<circle cx="94.2" cy="83.0" r="4.5" fill="#6b7180"/>
<path d="M 225.8 83.0 L 231.2 95.9" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="225.8" cy="83.0" r="4.5" fill="#6b7180"/>
<circle cx="231.2" cy="95.9" r="4.5" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="95.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="160.0" y1="85.1" x2="160.0" y2="78.4" 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