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,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Barbell Squat</title>
<path d="M 121.5 157.5 L 193.9 157.5 L 193.9 150.2 L 121.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 90.9 L 169.8 122.1 L 162.8 148.9 L 170.3 150.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.3 L 153.6 122.3 L 160.0 149.2 L 152.5 150.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 170.4 32.2 L 183.1 48.6 L 167.0 35.3" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 170.4 32.2 L 166.2 32.1 L 166.2 33.5" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 90.9 L 160.0 90.4 L 160.0 91.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 163.2 60.6 166.2 32.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 166.2 33.5 L 182.9 46.1 L 164.2 36.6" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 147.4 36.0 L 183.8 36.0" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="147.4" cy="36.0" r="9.799999999999999" fill="#6b7180"/>
<circle cx="183.8" cy="36.0" r="9.799999999999999" fill="#6b7180"/>
<circle id="head" cx="168.2" cy="18.5" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="175.2" y1="18.7" x2="180.1" y2="18.9" stroke="#3a3f4b" stroke-width="2.8" 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.1 KiB

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Barbell Squat</title>
<path d="M 121.5 157.9 L 193.9 157.9 L 193.9 150.6 L 121.5 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 134.0 121.7 L 166.2 122.0 L 162.8 149.3 L 170.2 147.4" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.4 72.1 L 185.5 63.4 L 164.9 67.5" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 129.9 122.1 L 162.1 122.1 L 160.0 149.6 L 167.3 147.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.4 72.1 L 162.3 72.1 L 162.3 73.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 134.0 121.7 L 129.9 121.2 L 129.9 122.1" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 129.9 121.2 Q 148.2 97.2 162.3 72.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.3 73.4 L 183.0 70.2 L 162.1 68.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 145.3 68.1 L 181.7 68.1" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="145.3" cy="68.1" r="9.799999999999999" fill="#6b7180"/>
<circle cx="181.7" cy="68.1" r="9.799999999999999" fill="#6b7180"/>
<circle id="head" cx="170.5" cy="60.9" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.5" y1="61.9" x2="182.3" y2="62.6" stroke="#3a3f4b" stroke-width="2.8" 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.1 KiB

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

After

Width:  |  Height:  |  Size: 173 KiB

+22
View File
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Barbell Squat</title>
<path d="M 121.5 157.9 L 193.9 157.9 L 193.9 150.6 L 121.5 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 134.0 121.7 L 166.2 122.0 L 162.8 149.3 L 170.2 147.4" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.4 72.1 L 185.5 63.4 L 164.9 67.5" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 129.9 122.1 L 162.1 122.1 L 160.0 149.6 L 167.3 147.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.4 72.1 L 162.3 72.1 L 162.3 73.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 134.0 121.7 L 129.9 121.2 L 129.9 122.1" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 129.9 121.2 Q 148.2 97.2 162.3 72.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.3 73.4 L 183.0 70.2 L 162.1 68.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 145.3 68.1 L 181.7 68.1" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="145.3" cy="68.1" r="9.799999999999999" fill="#6b7180"/>
<circle cx="181.7" cy="68.1" r="9.799999999999999" fill="#6b7180"/>
<circle id="head" cx="170.5" cy="60.9" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.5" y1="61.9" x2="182.3" y2="62.6" stroke="#3a3f4b" stroke-width="2.8" 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.1 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="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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bodyweight Squat</title>
<path d="M 141.8 157.5 L 232.3 157.5 L 232.3 150.2 L 141.8 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 90.9 L 169.8 122.1 L 162.8 148.9 L 170.3 150.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 32.0 L 169.0 52.7 L 171.6 73.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.3 L 160.0 123.4 L 160.0 149.2 L 160.0 152.2" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 168.3 32.0 L 164.2 31.9 L 164.2 33.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 90.9 L 160.0 90.4 L 160.0 91.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 162.1 60.5 164.2 31.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 164.2 33.3 L 164.9 54.0 L 167.4 74.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="165.6" cy="18.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="172.6" y1="18.2" x2="177.5" y2="18.2" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bodyweight Squat</title>
<path d="M 141.8 157.9 L 232.3 157.9 L 232.3 150.6 L 141.8 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 154.3 120.3 L 184.4 131.7 L 162.8 149.3 L 169.6 152.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 182.3 68.1 L 203.3 67.4 L 223.9 63.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.2 120.7 L 180.6 131.0 L 160.0 149.6 L 166.9 152.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 182.3 68.1 L 178.1 68.1 L 178.1 69.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 154.3 120.3 L 150.2 119.8 L 150.2 120.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.2 119.8 Q 166.3 94.3 178.1 68.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 178.1 69.4 L 199.1 68.7 L 219.8 65.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="185.3" cy="56.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="192.3" y1="57.1" x2="197.2" y2="57.7" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

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

After

Width:  |  Height:  |  Size: 132 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Bodyweight Squat</title>
<path d="M 141.8 157.9 L 232.3 157.9 L 232.3 150.6 L 141.8 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 154.3 120.3 L 184.4 131.7 L 162.8 149.3 L 169.6 152.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 182.3 68.1 L 203.3 67.4 L 223.9 63.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.2 120.7 L 180.6 131.0 L 160.0 149.6 L 166.9 152.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 182.3 68.1 L 178.1 68.1 L 178.1 69.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 154.3 120.3 L 150.2 119.8 L 150.2 120.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.2 119.8 Q 166.3 94.3 178.1 68.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 178.1 69.4 L 199.1 68.7 L 219.8 65.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="185.3" cy="56.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="192.3" y1="57.1" x2="197.2" y2="57.7" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Crunch</title>
<path d="M 39.4 161.1 L 231.6 161.1 L 231.6 150.6 L 39.4 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_l" d="M 86.9 146.1 L 59.7 133.6 L 72.4 160.3" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 171.9 146.8 L 199.5 110.5 L 209.0 148.8 L 219.4 145.3" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 86.9 146.1 L 81.0 146.0 L 81.0 147.9" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 171.9 146.8 L 166.0 146.0 L 166.0 147.2" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 166.0 146.0 Q 122.5 146.0 81.0 146.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 166.0 147.2 L 194.0 111.3 L 205.0 149.2 L 215.3 145.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 81.0 147.9 L 53.8 135.4 L 66.5 162.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="61.4" cy="141.9" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="63.5" y1="132.1" x2="65.0" y2="125.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: 1.8 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Crunch</title>
<path d="M 39.4 161.0 L 231.6 161.0 L 231.6 150.6 L 39.4 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 171.9 144.8 L 201.5 110.0 L 209.0 148.7 L 219.6 145.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 102.1 103.1 L 95.8 74.2 L 81.8 100.3" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 102.1 103.1 L 96.2 103.0 L 96.2 104.9" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 171.9 144.8 L 166.0 144.0 L 166.0 145.2" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 166.0 144.0 Q 117.5 144.0 96.2 103.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 166.0 145.2 L 195.9 110.8 L 205.0 149.2 L 215.5 145.8" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 96.2 104.9 L 89.9 76.0 L 75.9 102.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="92.0" cy="83.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="101.8" y1="81.7" x2="108.7" y2="80.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: 1.8 KiB

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

After

Width:  |  Height:  |  Size: 147 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Crunch</title>
<path d="M 39.4 161.0 L 231.6 161.0 L 231.6 150.6 L 39.4 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 171.9 144.8 L 201.5 110.0 L 209.0 148.7 L 219.6 145.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 102.1 103.1 L 95.8 74.2 L 81.8 100.3" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 102.1 103.1 L 96.2 103.0 L 96.2 104.9" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 171.9 144.8 L 166.0 144.0 L 166.0 145.2" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 166.0 144.0 Q 117.5 144.0 96.2 103.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 166.0 145.2 L 195.9 110.8 L 205.0 149.2 L 215.5 145.8" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 96.2 104.9 L 89.9 76.0 L 75.9 102.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="92.0" cy="83.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="101.8" y1="81.7" x2="108.7" y2="80.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: 1.8 KiB

+21
View File
@@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dip</title>
<path d="M 137.7 158.4 L 207.6 158.4 L 207.6 150.2 L 137.7 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.34" stroke-linejoin="round"/>
<path d="M 172.5 84.9 L 172.5 150.4" stroke="#c5cad4" stroke-width="3.9000000000000004" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="172.5" cy="81.0" r="2.73" fill="#6b7180"/>
<path id="leg_l" d="M 164.6 101.1 L 186.2 129.3 L 155.0 127.7 L 151.7 135.5" stroke="#a9afba" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 173.8 35.9 L 168.3 58.3 L 174.0 80.6" stroke="#86cfc5" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 101.5 L 181.6 129.7 L 150.4 128.1 L 147.1 135.9" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 173.8 35.9 L 169.2 35.9 L 169.2 37.4" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.6 101.1 L 160.0 100.5 L 160.0 101.5" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.5 Q 164.7 67.4 169.2 35.9" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 169.2 37.4 L 164.4 59.9 L 170.9 82.0" stroke="#0d9488" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="172.7" cy="20.9" r="7.800000000000001" fill="white" stroke="#3a3f4b" stroke-width="4.68"/>
<line id="nose" x1="180.5" y1="21.3" x2="186.0" y2="21.6" stroke="#3a3f4b" stroke-width="3.12" 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.1 KiB

+21
View File
@@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dip</title>
<path d="M 137.7 158.7 L 207.6 158.7 L 207.6 150.6 L 137.7 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.34" stroke-linejoin="round"/>
<path d="M 172.5 84.9 L 172.5 150.4" stroke="#c5cad4" stroke-width="3.9000000000000004" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="172.5" cy="81.0" r="2.73" fill="#6b7180"/>
<path id="leg_l" d="M 164.6 124.5 L 195.7 142.2 L 164.5 143.2 L 161.8 151.3" stroke="#a9afba" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 187.2 62.6 L 164.0 60.2 L 174.0 81.0" stroke="#86cfc5" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 124.9 L 191.1 142.5 L 159.9 143.6 L 157.2 151.6" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 187.2 62.6 L 182.6 62.6 L 182.6 64.1" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.6 124.5 L 160.0 123.9 L 160.0 124.9" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 123.9 Q 169.4 91.8 182.6 62.6" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 182.6 64.1 L 159.3 62.4 L 170.9 82.4" stroke="#0d9488" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="190.4" cy="49.3" r="7.800000000000001" fill="white" stroke="#3a3f4b" stroke-width="4.68"/>
<line id="nose" x1="198.0" y1="51.3" x2="203.3" y2="52.7" stroke="#3a3f4b" stroke-width="3.12" 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.1 KiB

+37
View File
@@ -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 × 612
## 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.
+36
View File
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

+21
View File
@@ -0,0 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dip</title>
<path d="M 137.7 158.7 L 207.6 158.7 L 207.6 150.6 L 137.7 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.34" stroke-linejoin="round"/>
<path d="M 172.5 84.9 L 172.5 150.4" stroke="#c5cad4" stroke-width="3.9000000000000004" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="172.5" cy="81.0" r="2.73" fill="#6b7180"/>
<path id="leg_l" d="M 164.6 124.5 L 195.7 142.2 L 164.5 143.2 L 161.8 151.3" stroke="#a9afba" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 187.2 62.6 L 164.0 60.2 L 174.0 81.0" stroke="#86cfc5" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 124.9 L 191.1 142.5 L 159.9 143.6 L 157.2 151.6" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 187.2 62.6 L 182.6 62.6 L 182.6 64.1" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.6 124.5 L 160.0 123.9 L 160.0 124.9" stroke="#3a3f4b" stroke-width="3.9" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 123.9 Q 169.4 91.8 182.6 62.6" stroke="#3a3f4b" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 182.6 64.1 L 159.3 62.4 L 170.9 82.4" stroke="#0d9488" stroke-width="4.68" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="190.4" cy="49.3" r="7.800000000000001" fill="white" stroke="#3a3f4b" stroke-width="4.68"/>
<line id="nose" x1="198.0" y1="51.3" x2="203.3" y2="52.7" stroke="#3a3f4b" stroke-width="3.12" 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.1 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

@@ -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

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Curl</title>
<path d="M 148.9 157.5 L 192.6 157.5 L 192.6 150.2 L 148.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 90.9 L 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.3 L 165.6 122.5 L 158.6 149.2 L 166.1 151.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.3 31.9 L 167.3 52.6 L 170.9 73.0" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.3 31.9 L 163.1 31.9 L 163.1 33.2" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 90.9 L 160.0 90.4 L 160.0 91.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 161.6 60.5 163.1 31.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 163.1 33.2 L 163.1 53.9 L 166.8 74.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 171.6 73.4 L 161.9 75.1" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="171.6" cy="73.4" r="3.15" fill="#6b7180"/>
<circle cx="161.9" cy="75.1" r="3.15" fill="#6b7180"/>
<path d="M 175.7 72.1 L 166.1 73.8" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="175.7" cy="72.1" r="3.15" fill="#6b7180"/>
<circle cx="166.1" cy="73.8" r="3.15" fill="#6b7180"/>
<circle id="head" cx="164.3" cy="18.1" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.3" y1="18.3" x2="176.2" y2="18.4" stroke="#3a3f4b" stroke-width="2.8" 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.4 KiB

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Curl</title>
<path d="M 148.9 157.5 L 192.6 157.5 L 192.6 150.2 L 148.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 90.9 L 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.3 L 165.6 122.5 L 158.6 149.2 L 166.1 151.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.3 31.9 L 168.3 52.6 L 184.2 39.0" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.3 31.9 L 163.1 31.9 L 163.1 33.2" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 90.9 L 160.0 90.4 L 160.0 91.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 161.6 60.5 163.1 31.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 163.1 33.2 L 164.2 53.9 L 180.1 40.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 176.9 36.6 L 183.2 44.0" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="176.9" cy="36.6" r="3.15" fill="#6b7180"/>
<circle cx="183.2" cy="44.0" r="3.15" fill="#6b7180"/>
<path d="M 181.0 35.3 L 187.4 42.7" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="181.0" cy="35.3" r="3.15" fill="#6b7180"/>
<circle cx="187.4" cy="42.7" r="3.15" fill="#6b7180"/>
<circle id="head" cx="164.3" cy="18.1" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.3" y1="18.3" x2="176.2" y2="18.4" stroke="#3a3f4b" stroke-width="2.8" 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.4 KiB

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

After

Width:  |  Height:  |  Size: 110 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 Curl</title>
<path d="M 148.9 157.5 L 192.6 157.5 L 192.6 150.2 L 148.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 90.9 L 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.3 L 165.6 122.5 L 158.6 149.2 L 166.1 151.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.3 31.9 L 168.3 52.6 L 184.2 39.0" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.3 31.9 L 163.1 31.9 L 163.1 33.2" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 90.9 L 160.0 90.4 L 160.0 91.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 161.6 60.5 163.1 31.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 163.1 33.2 L 164.2 53.9 L 180.1 40.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 176.9 36.6 L 183.2 44.0" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="176.9" cy="36.6" r="3.15" fill="#6b7180"/>
<circle cx="183.2" cy="44.0" r="3.15" fill="#6b7180"/>
<path d="M 181.0 35.3 L 187.4 42.7" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="181.0" cy="35.3" r="3.15" fill="#6b7180"/>
<circle cx="187.4" cy="42.7" r="3.15" fill="#6b7180"/>
<circle id="head" cx="164.3" cy="18.1" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.3" y1="18.3" x2="176.2" y2="18.4" stroke="#3a3f4b" stroke-width="2.8" 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.4 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 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

@@ -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

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Shoulder Press</title>
<path d="M 123.3 159.2 L 195.3 159.2 L 195.3 150.6 L 123.3 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.46" stroke-linejoin="round"/>
<path d="M 124.7 132.3 L 121.5 74.9 L 121.5 74.9 L 124.7 132.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 122.3 137.2 L 151.8 137.2 L 151.8 137.2 L 122.3 137.2 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 137.0 138.9 L 137.0 150.4" stroke="#c5cad4" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 140.2 129.7 L 175.9 117.6 L 176.4 149.9 L 185.4 149.7" stroke="#a9afba" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 143.9 60.6 L 164.3 74.1 L 151.8 53.2" stroke="#86cfc5" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 143.9 60.6 L 139.0 60.5 L 139.0 62.1" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 140.2 129.7 L 135.4 129.0 L 135.4 130.0" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 135.4 129.0 Q 136.0 93.9 139.0 60.5" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 135.4 130.0 L 171.3 118.8 L 173.1 151.0 L 182.1 150.6" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 139.0 62.1 L 158.5 76.8 L 148.5 54.7" stroke="#0d9488" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 143.3 57.1 L 153.7 52.3" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="143.3" cy="57.1" r="3.69" fill="#6b7180"/>
<circle cx="153.7" cy="52.3" r="3.69" fill="#6b7180"/>
<path d="M 146.9 56.2 L 156.7 50.3" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="146.9" cy="56.2" r="3.69" fill="#6b7180"/>
<circle cx="156.7" cy="50.3" r="3.69" fill="#6b7180"/>
<circle id="head" cx="141.3" cy="44.5" r="8.2" fill="white" stroke="#3a3f4b" stroke-width="4.92"/>
<line id="nose" x1="149.5" y1="44.8" x2="155.2" y2="45.0" stroke="#3a3f4b" stroke-width="3.28" 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.8 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Shoulder Press</title>
<path d="M 123.3 159.2 L 195.3 159.2 L 195.3 150.6 L 123.3 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.46" stroke-linejoin="round"/>
<path d="M 124.7 132.3 L 121.5 74.9 L 121.5 74.9 L 124.7 132.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 122.3 137.2 L 151.8 137.2 L 151.8 137.2 L 122.3 137.2 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 137.0 138.9 L 137.0 150.4" stroke="#c5cad4" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 140.2 129.7 L 175.9 117.6 L 176.4 149.9 L 185.4 149.7" stroke="#a9afba" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 143.9 60.6 L 139.0 60.5 L 139.0 62.1" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 140.2 129.7 L 135.4 129.0 L 135.4 130.0" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 135.4 129.0 Q 136.0 93.9 139.0 60.5" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 135.4 130.0 L 171.3 118.8 L 173.1 151.0 L 182.1 150.6" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 143.9 60.6 L 150.7 37.3 L 145.2 13.6" stroke="#86cfc5" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 139.0 62.1 L 146.4 39.0 L 142.0 15.1" stroke="#0d9488" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 136.3 16.2 L 147.6 14.1" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="136.3" cy="16.2" r="3.69" fill="#6b7180"/>
<circle cx="147.6" cy="14.1" r="3.69" fill="#6b7180"/>
<path d="M 139.6 14.9 L 150.8 12.4" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="139.6" cy="14.9" r="3.69" fill="#6b7180"/>
<circle cx="150.8" cy="12.4" r="3.69" fill="#6b7180"/>
<circle id="head" cx="141.3" cy="44.5" r="8.2" fill="white" stroke="#3a3f4b" stroke-width="4.92"/>
<line id="nose" x1="149.5" y1="44.8" x2="155.2" y2="45.0" stroke="#3a3f4b" stroke-width="3.28" 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.8 KiB

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

After

Width:  |  Height:  |  Size: 133 KiB

@@ -0,0 +1,28 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Dumbbell Shoulder Press</title>
<path d="M 123.3 159.2 L 195.3 159.2 L 195.3 150.6 L 123.3 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.46" stroke-linejoin="round"/>
<path d="M 124.7 132.3 L 121.5 74.9 L 121.5 74.9 L 124.7 132.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 122.3 137.2 L 151.8 137.2 L 151.8 137.2 L 122.3 137.2 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.56" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 137.0 138.9 L 137.0 150.4" stroke="#c5cad4" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 140.2 129.7 L 175.9 117.6 L 176.4 149.9 L 185.4 149.7" stroke="#a9afba" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 143.9 60.6 L 139.0 60.5 L 139.0 62.1" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 140.2 129.7 L 135.4 129.0 L 135.4 130.0" stroke="#3a3f4b" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 135.4 129.0 Q 136.0 93.9 139.0 60.5" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 135.4 130.0 L 171.3 118.8 L 173.1 151.0 L 182.1 150.6" stroke="#3a3f4b" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 143.9 60.6 L 150.7 37.3 L 145.2 13.6" stroke="#86cfc5" stroke-width="4.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 139.0 62.1 L 146.4 39.0 L 142.0 15.1" stroke="#0d9488" stroke-width="4.92" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 136.3 16.2 L 147.6 14.1" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="136.3" cy="16.2" r="3.69" fill="#6b7180"/>
<circle cx="147.6" cy="14.1" r="3.69" fill="#6b7180"/>
<path d="M 139.6 14.9 L 150.8 12.4" stroke="#6b7180" stroke-width="2.46" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="139.6" cy="14.9" r="3.69" fill="#6b7180"/>
<circle cx="150.8" cy="12.4" r="3.69" fill="#6b7180"/>
<circle id="head" cx="141.3" cy="44.5" r="8.2" fill="white" stroke="#3a3f4b" stroke-width="4.92"/>
<line id="nose" x1="149.5" y1="44.8" x2="155.2" y2="45.0" stroke="#3a3f4b" stroke-width="3.28" 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.8 KiB

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Goblet Squat</title>
<path d="M 142.9 157.6 L 199.8 157.6 L 199.8 150.1 L 142.9 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="2.16" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.3 90.6 L 155.0 121.9 L 164.3 148.8 L 156.8 151.3" stroke="#86cfc5" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 91.0 L 151.5 122.5 L 161.4 149.1 L 154.0 151.8" stroke="#0d9488" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 169.6 30.1 L 191.1 28.5 L 174.4 41.9" stroke="#a9afba" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 169.6 30.1 L 165.3 30.0 L 165.3 31.4" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.3 90.6 L 160.0 90.1 L 160.0 91.0" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.1 Q 162.7 59.4 165.3 30.0" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 165.3 31.4 L 186.7 28.1 L 171.5 43.2" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 173.0 48.3 L 173.0 36.8" stroke="#6b7180" stroke-width="2.16" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="173.0" cy="48.3" r="3.5999999999999996" fill="#6b7180"/>
<circle cx="173.0" cy="36.8" r="3.5999999999999996" fill="#6b7180"/>
<circle id="head" cx="167.1" cy="16.0" r="7.199999999999999" fill="white" stroke="#3a3f4b" stroke-width="4.32"/>
<line id="nose" x1="174.3" y1="16.1" x2="179.3" y2="16.2" stroke="#3a3f4b" stroke-width="2.88" 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.1 KiB

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Goblet Squat</title>
<path d="M 142.9 158.1 L 199.8 158.1 L 199.8 150.6 L 142.9 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.16" stroke-linejoin="round"/>
<path id="leg_l" d="M 157.1 118.0 L 187.1 131.8 L 164.3 149.2 L 171.0 153.4" stroke="#86cfc5" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 178.0 60.9 L 163.3 76.5 L 184.5 72.1" stroke="#a9afba" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 152.8 118.3 L 183.3 131.0 L 161.4 149.5 L 168.3 153.3" stroke="#0d9488" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 178.0 60.9 L 173.7 60.8 L 173.7 62.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 157.1 118.0 L 152.8 117.4 L 152.8 118.3" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 152.8 117.4 Q 165.5 89.2 173.7 60.8" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 173.7 62.2 L 160.8 79.3 L 181.6 73.4" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 183.0 78.5 L 183.0 67.0" stroke="#6b7180" stroke-width="2.16" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="183.0" cy="78.5" r="3.5999999999999996" fill="#6b7180"/>
<circle cx="183.0" cy="67.0" r="3.5999999999999996" fill="#6b7180"/>
<circle id="head" cx="179.1" cy="47.7" r="7.199999999999999" fill="white" stroke="#3a3f4b" stroke-width="4.32"/>
<line id="nose" x1="186.3" y1="48.2" x2="191.3" y2="48.5" stroke="#3a3f4b" stroke-width="2.88" 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.2 KiB

+37
View File
@@ -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 × 1012
## 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.
+35
View File
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

+22
View File
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Goblet Squat</title>
<path d="M 142.9 158.1 L 199.8 158.1 L 199.8 150.6 L 142.9 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.16" stroke-linejoin="round"/>
<path id="leg_l" d="M 157.1 118.0 L 187.1 131.8 L 164.3 149.2 L 171.0 153.4" stroke="#86cfc5" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 178.0 60.9 L 163.3 76.5 L 184.5 72.1" stroke="#a9afba" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 152.8 118.3 L 183.3 131.0 L 161.4 149.5 L 168.3 153.3" stroke="#0d9488" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 178.0 60.9 L 173.7 60.8 L 173.7 62.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 157.1 118.0 L 152.8 117.4 L 152.8 118.3" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 152.8 117.4 Q 165.5 89.2 173.7 60.8" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 173.7 62.2 L 160.8 79.3 L 181.6 73.4" stroke="#3a3f4b" stroke-width="4.32" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 183.0 78.5 L 183.0 67.0" stroke="#6b7180" stroke-width="2.16" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="183.0" cy="78.5" r="3.5999999999999996" fill="#6b7180"/>
<circle cx="183.0" cy="67.0" r="3.5999999999999996" fill="#6b7180"/>
<circle id="head" cx="179.1" cy="47.7" r="7.199999999999999" fill="white" stroke="#3a3f4b" stroke-width="4.32"/>
<line id="nose" x1="186.3" y1="48.2" x2="191.3" y2="48.5" stroke="#3a3f4b" stroke-width="2.88" 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.2 KiB

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Incline Bench Press</title>
<path d="M 80.8 159.4 L 215.1 159.4 L 215.1 150.5 L 80.8 150.5 Z" fill="none" stroke="#b9bec9" stroke-width="2.55" stroke-linejoin="round"/>
<path d="M 144.7 130.8 L 97.1 73.8 L 97.1 73.8 L 144.7 130.8 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="7.6499999999999995" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 143.0 133.3 L 165.1 130.8 L 165.1 130.8 L 143.0 133.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 153.2 135.8 L 153.2 150.3" stroke="#c5cad4" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 154.8 127.1 L 192.1 115.6 L 195.7 148.9 L 204.9 147.2" stroke="#a9afba" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.3 70.5 L 135.6 74.0 L 117.5 56.3" stroke="#86cfc5" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 110.3 70.5 L 105.3 70.4 L 105.3 72.1" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 154.8 127.1 L 149.8 126.5 L 149.8 127.5" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 149.8 126.5 Q 127.0 97.8 105.3 70.4" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 149.8 127.5 L 187.2 116.2 L 192.3 149.3 L 201.4 147.1" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 105.3 72.1 L 130.3 77.2 L 114.1 57.8" stroke="#0d9488" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 93.7 57.0 L 137.9 57.0" stroke="#6b7180" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="93.7" cy="57.0" r="10.2" fill="#6b7180"/>
<circle cx="137.9" cy="57.0" r="10.2" fill="#6b7180"/>
<circle id="head" cx="99.5" cy="54.7" r="8.5" fill="white" stroke="#3a3f4b" stroke-width="5.1"/>
<line id="nose" x1="107.3" y1="51.3" x2="112.7" y2="48.9" stroke="#3a3f4b" stroke-width="3.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.6 KiB

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Incline Bench Press</title>
<path d="M 80.8 159.4 L 215.1 159.4 L 215.1 150.5 L 80.8 150.5 Z" fill="none" stroke="#b9bec9" stroke-width="2.55" stroke-linejoin="round"/>
<path d="M 144.7 130.8 L 97.1 73.8 L 97.1 73.8 L 144.7 130.8 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="7.6499999999999995" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 143.0 133.3 L 165.1 130.8 L 165.1 130.8 L 143.0 133.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 153.2 135.8 L 153.2 150.3" stroke="#c5cad4" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 154.8 127.1 L 192.1 115.6 L 195.7 148.9 L 204.9 147.2" stroke="#a9afba" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.3 70.5 L 117.1 46.3 L 110.7 21.9" stroke="#86cfc5" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 110.3 70.5 L 105.3 70.4 L 105.3 72.1" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 154.8 127.1 L 149.8 126.5 L 149.8 127.5" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 149.8 126.5 Q 127.0 97.8 105.3 70.4" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 149.8 127.5 L 187.2 116.2 L 192.3 149.3 L 201.4 147.1" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 105.3 72.1 L 112.7 48.0 L 107.3 23.5" stroke="#0d9488" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 86.9 22.7 L 131.1 22.7" stroke="#6b7180" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="86.9" cy="22.7" r="10.2" fill="#6b7180"/>
<circle cx="131.1" cy="22.7" r="10.2" fill="#6b7180"/>
<circle id="head" cx="99.5" cy="54.7" r="8.5" fill="white" stroke="#3a3f4b" stroke-width="5.1"/>
<line id="nose" x1="107.3" y1="51.3" x2="112.7" y2="48.9" stroke="#3a3f4b" stroke-width="3.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.6 KiB

@@ -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 × 810
## Setup
Set the bench to a moderate incline (around 3045°). 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.
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Incline Bench Press</title>
<path d="M 80.8 159.4 L 215.1 159.4 L 215.1 150.5 L 80.8 150.5 Z" fill="none" stroke="#b9bec9" stroke-width="2.55" stroke-linejoin="round"/>
<path d="M 144.7 130.8 L 97.1 73.8 L 97.1 73.8 L 144.7 130.8 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="7.6499999999999995" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 143.0 133.3 L 165.1 130.8 L 165.1 130.8 L 143.0 133.3 Z" fill="#c5cad4" stroke="#c5cad4" stroke-width="6.8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 153.2 135.8 L 153.2 150.3" stroke="#c5cad4" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 154.8 127.1 L 192.1 115.6 L 195.7 148.9 L 204.9 147.2" stroke="#a9afba" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.3 70.5 L 135.6 74.0 L 117.5 56.3" stroke="#86cfc5" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 110.3 70.5 L 105.3 70.4 L 105.3 72.1" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 154.8 127.1 L 149.8 126.5 L 149.8 127.5" stroke="#3a3f4b" stroke-width="4.25" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 149.8 126.5 Q 127.0 97.8 105.3 70.4" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 149.8 127.5 L 187.2 116.2 L 192.3 149.3 L 201.4 147.1" stroke="#3a3f4b" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 105.3 72.1 L 130.3 77.2 L 114.1 57.8" stroke="#0d9488" stroke-width="5.1" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 93.7 57.0 L 137.9 57.0" stroke="#6b7180" stroke-width="3.4" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="93.7" cy="57.0" r="10.2" fill="#6b7180"/>
<circle cx="137.9" cy="57.0" r="10.2" fill="#6b7180"/>
<circle id="head" cx="99.5" cy="54.7" r="8.5" fill="white" stroke="#3a3f4b" stroke-width="5.1"/>
<line id="nose" x1="107.3" y1="51.3" x2="112.7" y2="48.9" stroke="#3a3f4b" stroke-width="3.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.6 KiB

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lateral Raise</title>
<path d="M 139.0 143.8 L 139.0 163.8 L 181.0 163.8 L 181.0 143.8 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.9 90.4 L 168.3 121.9 L 171.2 149.4 L 171.2 150.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 155.1 90.4 L 151.7 121.9 L 148.8 149.4 L 148.8 150.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.7 31.8 L 160.0 31.8 L 152.3 31.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.9 90.4 L 160.0 90.4 L 155.1 90.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 160.0 60.4 160.0 31.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.7 31.8 L 170.6 52.5 L 173.5 73.2" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.3 31.8 L 149.4 52.5 L 146.5 73.2" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 151.4 73.9 L 141.6 72.6" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="151.4" cy="73.9" r="3.15" fill="#6b7180"/>
<circle cx="141.6" cy="72.6" r="3.15" fill="#6b7180"/>
<path d="M 178.4 72.6 L 168.6 73.9" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="178.4" cy="72.6" r="3.15" fill="#6b7180"/>
<circle cx="168.6" cy="73.9" r="3.15" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="18.0" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<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.2 KiB

@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lateral Raise</title>
<path d="M 139.0 143.8 L 139.0 163.8 L 181.0 163.8 L 181.0 143.8 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.9 90.4 L 168.3 121.9 L 171.2 149.4 L 171.2 150.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 155.1 90.4 L 151.7 121.9 L 148.8 149.4 L 148.8 150.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.7 31.8 L 160.0 31.8 L 152.3 31.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.9 90.4 L 160.0 90.4 L 155.1 90.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 160.0 60.4 160.0 31.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.7 31.8 L 188.7 32.5 L 209.2 33.7" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.3 31.8 L 131.3 32.5 L 110.8 33.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 111.1 38.6 L 110.5 28.8" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="111.1" cy="38.6" r="3.15" fill="#6b7180"/>
<circle cx="110.5" cy="28.8" r="3.15" fill="#6b7180"/>
<path d="M 209.5 28.8 L 208.9 38.6" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="209.5" cy="28.8" r="3.15" fill="#6b7180"/>
<circle cx="208.9" cy="38.6" r="3.15" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="18.0" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<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.2 KiB

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

After

Width:  |  Height:  |  Size: 121 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lateral Raise</title>
<path d="M 139.0 143.8 L 139.0 163.8 L 181.0 163.8 L 181.0 143.8 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.9 90.4 L 168.3 121.9 L 171.2 149.4 L 171.2 150.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 155.1 90.4 L 151.7 121.9 L 148.8 149.4 L 148.8 150.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.7 31.8 L 160.0 31.8 L 152.3 31.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.9 90.4 L 160.0 90.4 L 155.1 90.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 160.0 60.4 160.0 31.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.7 31.8 L 188.7 32.5 L 209.2 33.7" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.3 31.8 L 131.3 32.5 L 110.8 33.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 111.1 38.6 L 110.5 28.8" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="111.1" cy="38.6" r="3.15" fill="#6b7180"/>
<circle cx="110.5" cy="28.8" r="3.15" fill="#6b7180"/>
<path d="M 209.5 28.8 L 208.9 38.6" stroke="#6b7180" stroke-width="2.0999999999999996" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="209.5" cy="28.8" r="3.15" fill="#6b7180"/>
<circle cx="208.9" cy="38.6" r="3.15" fill="#6b7180"/>
<circle id="head" cx="160.0" cy="18.0" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<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.2 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lunge</title>
<path d="M 119.5 157.5 L 201.3 157.5 L 201.3 150.2 L 119.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 93.7 L 148.3 121.4 L 135.4 145.8 L 127.9 143.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 94.1 L 172.8 123.2 L 184.7 148.1 L 177.5 150.7" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 170.4 35.0 L 170.0 55.6 L 172.5 76.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 170.4 35.0 L 166.2 34.9 L 166.2 36.3" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 93.7 L 160.0 93.2 L 160.0 94.1" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.2 Q 163.2 63.4 166.2 34.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 166.2 36.3 L 165.9 56.9 L 168.4 77.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="168.2" cy="21.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="175.2" y1="21.5" x2="180.1" y2="21.7" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lunge</title>
<path d="M 119.5 157.9 L 201.3 157.9 L 201.3 150.6 L 119.5 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 120.3 L 162.4 152.0 L 134.8 147.2 L 128.7 151.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 172.4 61.8 L 171.3 82.5 L 173.1 103.1" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 120.7 L 192.1 122.9 L 185.2 149.6 L 192.9 149.5" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 172.4 61.8 L 168.3 61.8 L 168.3 63.1" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 120.3 L 160.0 119.8 L 160.0 120.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 119.8 Q 164.2 90.1 168.3 61.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 168.3 63.1 L 167.2 83.8 L 169.0 104.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="170.7" cy="48.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.7" y1="48.7" x2="182.6" y2="49.0" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

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

After

Width:  |  Height:  |  Size: 146 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Lunge</title>
<path d="M 119.5 157.9 L 201.3 157.9 L 201.3 150.6 L 119.5 150.6 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 120.3 L 162.4 152.0 L 134.8 147.2 L 128.7 151.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 172.4 61.8 L 171.3 82.5 L 173.1 103.1" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 120.7 L 192.1 122.9 L 185.2 149.6 L 192.9 149.5" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 172.4 61.8 L 168.3 61.8 L 168.3 63.1" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 120.3 L 160.0 119.8 L 160.0 120.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 119.8 Q 164.2 90.1 168.3 61.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 168.3 63.1 L 167.2 83.8 L 169.0 104.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="170.7" cy="48.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.7" y1="48.7" x2="182.6" y2="49.0" stroke="#3a3f4b" stroke-width="2.8" 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: 1.9 KiB

@@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Pull-Up</title>
<path d="M 136.1 157.8 L 188.2 157.8 L 188.2 150.5 L 136.1 150.5 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 115.4 L 179.8 141.4 L 151.9 143.8 L 148.7 150.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 115.8 L 175.7 141.7 L 147.8 144.1 L 144.5 151.0" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 161.3 56.3 L 157.2 56.3 L 157.2 57.6" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 115.4 L 157.2 114.9 L 157.2 115.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 114.9 Q 157.2 84.9 157.2 56.3" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 161.3 56.3 L 160.4 35.7 L 158.6 15.1" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 157.2 57.6 L 156.1 37.0 L 155.8 16.3" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 140.4 15.7 L 174.0 15.7" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="157.7" cy="42.5" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="164.7" y1="42.0" x2="169.6" y2="41.7" stroke="#3a3f4b" stroke-width="2.8" 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.0 KiB

@@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Pull-Up</title>
<path d="M 136.1 157.5 L 188.2 157.5 L 188.2 150.2 L 136.1 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 93.0 L 179.8 119.0 L 151.9 121.4 L 148.7 128.3" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 93.4 L 175.7 119.3 L 147.8 121.7 L 144.5 128.6" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 161.3 33.9 L 178.3 21.8 L 158.6 14.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 161.3 33.9 L 157.2 33.9 L 157.2 35.2" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 93.0 L 157.2 92.5 L 157.2 93.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 92.5 Q 157.2 62.5 157.2 33.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 157.2 35.2 L 175.0 24.3 L 155.8 15.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 140.4 15.3 L 174.0 15.3" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="158.2" cy="20.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="165.1" y1="19.4" x2="170.0" y2="18.9" stroke="#3a3f4b" stroke-width="2.8" 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.0 KiB

+37
View File
@@ -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.
+33
View File
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

+20
View File
@@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Pull-Up</title>
<path d="M 136.1 157.5 L 188.2 157.5 L 188.2 150.2 L 136.1 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 93.0 L 179.8 119.0 L 151.9 121.4 L 148.7 128.3" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 93.4 L 175.7 119.3 L 147.8 121.7 L 144.5 128.6" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 161.3 33.9 L 178.3 21.8 L 158.6 14.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 161.3 33.9 L 157.2 33.9 L 157.2 35.2" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 93.0 L 157.2 92.5 L 157.2 93.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 92.5 Q 157.2 62.5 157.2 33.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 157.2 35.2 L 175.0 24.3 L 155.8 15.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 140.4 15.3 L 174.0 15.3" stroke="#6b7180" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="158.2" cy="20.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="165.1" y1="19.4" x2="170.0" y2="18.9" stroke="#3a3f4b" stroke-width="2.8" 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.0 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Push-Up</title>
<path d="M 53.4 160.6 L 272.0 160.6 L 272.0 150.2 L 53.4 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 104.6 90.6 L 90.7 116.7 L 97.0 145.6" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 185.9 115.8 L 216.8 149.3 L 256.0 141.4 L 253.4 151.9" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 180.0 116.2 L 221.1 136.5 L 260.0 145.8 L 253.1 154.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 98.7 92.4 L 98.7 90.5 L 104.6 90.6" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 180.0 116.2 L 180.0 115.0 L 185.9 115.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 180.0 115.0 Q 138.4 102.5 98.7 90.5" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 98.7 92.4 L 98.1 122.0 L 101.0 151.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="79.6" cy="84.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="69.8" y1="87.0" x2="63.0" y2="88.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: 1.8 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Push-Up</title>
<path d="M 53.4 160.8 L 272.0 160.8 L 272.0 150.4 L 53.4 150.4 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 101.2 124.8 L 126.5 140.6 L 97.0 145.9" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 185.9 132.8 L 221.5 161.5 L 256.0 141.6 L 257.0 152.4" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 95.3 126.6 L 95.3 124.7 L 101.2 124.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 180.0 133.2 L 180.0 132.0 L 185.9 132.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 180.0 132.0 Q 136.7 128.3 95.3 124.7" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 180.0 133.2 L 220.8 154.1 L 260.0 146.0 L 257.5 156.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 95.3 126.6 L 124.5 133.3 L 101.0 151.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="75.4" cy="123.0" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="66.7" y1="127.9" x2="60.6" y2="131.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: 1.9 KiB

+38
View File
@@ -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 × 815
## 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.
+31
View File
@@ -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]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Push-Up</title>
<path d="M 53.4 160.6 L 272.0 160.6 L 272.0 150.2 L 53.4 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 104.6 90.6 L 90.7 116.7 L 97.0 145.6" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 185.9 115.8 L 216.8 149.3 L 256.0 141.4 L 253.4 151.9" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 180.0 116.2 L 221.1 136.5 L 260.0 145.8 L 253.1 154.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 98.7 92.4 L 98.7 90.5 L 104.6 90.6" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 180.0 116.2 L 180.0 115.0 L 185.9 115.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 180.0 115.0 Q 138.4 102.5 98.7 90.5" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 98.7 92.4 L 98.1 122.0 L 101.0 151.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="79.6" cy="84.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="69.8" y1="87.0" x2="63.0" y2="88.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: 1.8 KiB