Add 17 warm-up, stretch, and mobility exercises with new starter splits

The library grows to 64 exercises: arm circles, torso twist, leg
swings, hip and neck mobility, marching, calf raises, and a full
stretching set (forward fold, quad, calf, chest, triceps, hip flexor,
butterfly, cobra, child's pose), each with an authored motion rig and
reference page. Eight new starter splits join the catalog — Upper and
Lower Body Warm-Up, Morning Wake-Up, Morning Mobility, Full Body
Stretch, Evening Stretch, Free Weight Basics, and Full Body Machines —
regenerated deterministically at split schema v3 with fixed ULIDs.

Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
2026-07-08 12:49:18 -04:00
parent 394ec0989e
commit 60927b5d1f
170 changed files with 4502 additions and 15 deletions
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Arm Circles</title>
<path d="M 121.2 152.0 L 183.6 161.1 L 206.7 156.3 L 144.4 147.2 Z" fill="none" stroke="#b9bec9" stroke-width="1.8" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.4 100.7 L 170.8 127.6 L 162.4 149.6 L 168.5 152.0" stroke="#a9afba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.3 101.0 L 162.4 128.0 L 157.6 150.7 L 163.4 152.6" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.0 50.2 L 160.0 50.2 L 155.8 51.1" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.4 100.7 L 160.0 100.4 L 157.3 101.0" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.4 Q 160.0 74.7 160.0 50.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.0 50.2 L 182.9 51.7 L 198.7 51.6" stroke="#86cfc5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 51.1 L 166.8 53.5 L 177.9 54.4" stroke="#0d9488" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.3" cy="38.4" r="6.0" fill="white" stroke="#3a3f4b" stroke-width="3.6"/>
<line id="nose" x1="166.3" y1="39.0" x2="169.5" y2="39.3" stroke="#3a3f4b" stroke-width="2.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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Arm Circles</title>
<path d="M 121.2 152.0 L 183.6 161.1 L 206.7 156.3 L 144.4 147.2 Z" fill="none" stroke="#b9bec9" stroke-width="1.8" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.4 100.7 L 170.8 127.6 L 162.4 149.6 L 168.5 152.0" stroke="#a9afba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.0 50.2 L 174.4 34.0 L 180.6 17.6" stroke="#86cfc5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.3 101.0 L 162.4 128.0 L 157.6 150.7 L 163.4 152.6" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.0 50.2 L 160.0 50.2 L 155.8 51.1" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.4 100.7 L 160.0 100.4 L 157.3 101.0" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.4 Q 160.0 74.7 160.0 50.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 51.1 L 151.6 37.3 L 146.3 23.2" stroke="#0d9488" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.3" cy="38.4" r="6.0" fill="white" stroke="#3a3f4b" stroke-width="3.6"/>
<line id="nose" x1="166.3" y1="39.0" x2="169.5" y2="39.3" stroke="#3a3f4b" stroke-width="2.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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Arm Circles</title>
<path d="M 121.2 152.0 L 183.6 161.1 L 206.7 156.3 L 144.4 147.2 Z" fill="none" stroke="#b9bec9" stroke-width="1.8" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.0 50.2 L 178.0 47.7 L 189.1 43.7" stroke="#86cfc5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.4 100.7 L 170.8 127.6 L 162.4 149.6 L 168.5 152.0" stroke="#a9afba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.3 101.0 L 162.4 128.0 L 157.6 150.7 L 163.4 152.6" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.0 50.2 L 160.0 50.2 L 155.8 51.1" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.4 100.7 L 160.0 100.4 L 157.3 101.0" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.4 Q 160.0 74.7 160.0 50.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 51.1 L 143.7 53.4 L 131.7 54.1" stroke="#0d9488" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.3" cy="38.4" r="6.0" fill="white" stroke="#3a3f4b" stroke-width="3.6"/>
<line id="nose" x1="166.3" y1="39.0" x2="169.5" y2="39.3" stroke="#3a3f4b" stroke-width="2.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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Arm Circles</title>
<path d="M 121.2 152.0 L 183.6 161.1 L 206.7 156.3 L 144.4 147.2 Z" fill="none" stroke="#b9bec9" stroke-width="1.8" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.4 100.7 L 170.8 127.6 L 162.4 149.6 L 168.5 152.0" stroke="#a9afba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.0 50.2 L 173.1 65.8 L 180.4 81.4" stroke="#86cfc5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.3 101.0 L 162.4 128.0 L 157.6 150.7 L 163.4 152.6" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.0 50.2 L 160.0 50.2 L 155.8 51.1" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.4 100.7 L 160.0 100.4 L 157.3 101.0" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.4 Q 160.0 74.7 160.0 50.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 51.1 L 153.2 68.5 L 151.8 85.8" stroke="#0d9488" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.3" cy="38.4" r="6.0" fill="white" stroke="#3a3f4b" stroke-width="3.6"/>
<line id="nose" x1="166.3" y1="39.0" x2="169.5" y2="39.3" stroke="#3a3f4b" stroke-width="2.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 @@
# Arm Circles
Big, slow circles of both arms together to warm the shoulders, wake up the
rotator cuff, and open the chest before pressing or pulling.
- **Category:** Mobility / warm-up
- **Type:** Shoulder mobility
- **Targets:** Deltoids, rotator cuff, upper back
- **Prescription:** 10 slow backward circles, then 10 forward
- **Defaults:** 2 × 10 bodyweight
## Setup
Stand tall, feet shoulder-width, arms relaxed at your sides.
## Execution
1. Reach both arms forward and up until they pass overhead.
2. Carry them back and down behind you, tracing the biggest circle you can.
3. Sweep them low and forward again to begin the next circle.
4. Complete the set, then circle in the opposite direction.
## Cues
- Keep the arms long — draw the circle from the shoulder, not the elbow.
- Stand tall; don't let the low back arch as the arms pass overhead.
- Keep the tempo slow and even, breathing throughout.
## Common Mistakes
- Tiny, rushed circles instead of full, slow ones.
- Shrugging the shoulders toward the ears at the top.
- Arching the low back to force the arms higher.
## Progression
Small circles → full-range circles → slow both directions → pause briefly with
the arms overhead each rep.
+48
View File
@@ -0,0 +1,48 @@
{
"name": "Arm Circles",
"primary": 2,
"camera": {"yaw": 40, "zoom": 0.6},
"working": ["arm_r", "arm_l"],
"frames": [
{
"hold": 0.15, "tween": 0.8,
"root": {"pos": [160, 66]},
"spine": [0, 0], "neck": 2, "head": -4,
"shoulder_r": {"flexion": 90, "abduction": 12}, "elbow_r": 5,
"shoulder_l": {"flexion": 90, "abduction": 12}, "elbow_l": 5,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.15, "tween": 0.8,
"root": {"pos": [160, 66]},
"spine": [0, 0], "neck": 2, "head": -4,
"shoulder_r": {"flexion": 172, "abduction": 30}, "elbow_r": 5,
"shoulder_l": {"flexion": 172, "abduction": 30}, "elbow_l": 5,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.15, "tween": 0.8,
"root": {"pos": [160, 66]},
"spine": [0, 0], "neck": 2, "head": -4,
"shoulder_r": {"flexion": 90, "abduction": 92}, "elbow_r": 5,
"shoulder_l": {"flexion": 90, "abduction": 92}, "elbow_l": 5,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.15, "tween": 0.8,
"root": {"pos": [160, 66]},
"spine": [0, 0], "neck": 2, "head": -4,
"shoulder_r": {"flexion": 8, "abduction": 22}, "elbow_r": 5,
"shoulder_l": {"flexion": 8, "abduction": 22}, "elbow_l": 5,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Arm Circles</title>
<path d="M 121.2 152.0 L 183.6 161.1 L 206.7 156.3 L 144.4 147.2 Z" fill="none" stroke="#b9bec9" stroke-width="1.8" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.4 100.7 L 170.8 127.6 L 162.4 149.6 L 168.5 152.0" stroke="#a9afba" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.0 50.2 L 174.4 34.0 L 180.6 17.6" stroke="#86cfc5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.3 101.0 L 162.4 128.0 L 157.6 150.7 L 163.4 152.6" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.0 50.2 L 160.0 50.2 L 155.8 51.1" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.4 100.7 L 160.0 100.4 L 157.3 101.0" stroke="#3a3f4b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 100.4 Q 160.0 74.7 160.0 50.2" stroke="#3a3f4b" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 51.1 L 151.6 37.3 L 146.3 23.2" stroke="#0d9488" stroke-width="3.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.3" cy="38.4" r="6.0" fill="white" stroke="#3a3f4b" stroke-width="3.6"/>
<line id="nose" x1="166.3" y1="39.0" x2="169.5" y2="39.3" stroke="#3a3f4b" stroke-width="2.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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Butterfly Stretch</title>
<path d="M 122.3 155.5 L 178.0 167.9 L 225.2 161.5 L 169.6 149.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 169.2 118.5 L 213.3 127.7 L 191.3 158.5 L 200.5 163.6" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 200.4 54.9 L 188.1 54.8 L 179.4 56.0" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 169.2 118.5 L 160.0 118.0 L 154.5 118.7" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 118.0 Q 167.5 77.0 188.1 54.8" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 154.5 118.7 L 154.0 134.0 L 176.8 158.8 L 178.7 164.9" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 200.4 54.9 L 200.3 84.6 L 199.5 114.3" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 179.4 56.0 L 179.4 85.0 L 178.9 114.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="198.0" cy="45.5" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="203.4" y1="53.9" x2="206.7" y2="59.0" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Butterfly Stretch</title>
<path d="M 122.3 155.5 L 178.0 167.9 L 225.2 161.5 L 169.6 149.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 169.2 118.5 L 214.3 126.3 L 193.5 156.8 L 202.9 161.8" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 206.5 64.6 L 194.2 64.6 L 185.5 65.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 169.2 118.5 L 160.0 118.0 L 154.5 118.7" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 118.0 Q 169.4 77.2 194.2 64.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 154.5 118.7 L 149.2 133.4 L 174.1 157.7 L 175.2 163.9" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 206.5 64.6 L 205.2 94.4 L 203.2 124.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 185.5 65.8 L 183.4 94.7 L 180.7 123.7" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="205.6" cy="59.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="209.6" y1="68.9" x2="212.3" y2="74.9" 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

@@ -0,0 +1,40 @@
# Butterfly Stretch
Sit tall, press the soles of the feet together, and let the knees fall open to
release the inner thighs and hips. A gentle seated opener for tight groins
after squatting, running, or a long day in a chair.
- **Category:** Stretching
- **Type:** Static stretch (isometric hold)
- **Targets:** Inner thighs (adductors, groin), hips
- **Prescription:** Hold 45 s, letting the knees settle a little lower with each breath
- **Defaults:** 1 × 45 s
## Setup
Sit on the floor with a tall spine. Bring the soles of the feet together and
draw the heels in toward the pelvis, letting the knees drop out to the sides.
## Execution
1. Hold the feet or ankles and lengthen up through the crown of the head.
2. Let the knees relax open and down toward the floor under their own weight.
3. Hinge gently forward from the hips to deepen the stretch.
4. Breathe slowly, easing a little lower on each exhale.
## Cues
- Lead the forward lean from the hips, keeping the chest open and the back long.
- Let gravity lower the knees — don't force them down with the hands.
- Draw the heels closer to the pelvis for more inner-thigh, further away for less.
## Common Mistakes
- Rounding the back to reach the feet instead of hinging at the hips.
- Bouncing the knees to push the range.
- Pulling hard on the feet and yanking the knees toward the floor.
## Progression
Heels further from the pelvis → heels drawn closer for a deeper groin stretch →
gentle forward fold over the legs, resting the forearms toward the floor.
@@ -0,0 +1,30 @@
{
"name": "Butterfly Stretch",
"primary": 2,
"camera": {"yaw": 52},
"working": ["leg_r", "leg_l"],
"frames": [
{
"hold": 2.2, "tween": 1.8,
"root": {"pos": [160, 118], "pitch": 4},
"spine": [20, 18],
"neck": 12, "head": -14,
"shoulder_r": {"flexion": 94, "abduction": 12}, "elbow_r": 40,
"shoulder_l": {"flexion": 94, "abduction": 12}, "elbow_l": 40,
"hip_r": {"flexion": 82, "abduction": 38, "rotation": 44}, "knee_r": 108,
"hip_l": {"flexion": 82, "abduction": 38, "rotation": 44}, "knee_l": 108,
"pins": {"hand_r": [178, 158], "hand_l": [198, 159]}
},
{
"hold": 2.4, "tween": 1.8,
"root": {"pos": [160, 118], "pitch": 4},
"spine": [26, 24],
"neck": 14, "head": -16,
"shoulder_r": {"flexion": 98, "abduction": 12}, "elbow_r": 34,
"shoulder_l": {"flexion": 98, "abduction": 12}, "elbow_l": 34,
"hip_r": {"flexion": 82, "abduction": 44, "rotation": 46}, "knee_r": 110,
"hip_l": {"flexion": 82, "abduction": 44, "rotation": 46}, "knee_l": 110,
"pins": {"hand_r": [176, 159], "hand_l": [200, 160]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Butterfly Stretch</title>
<path d="M 122.3 155.5 L 178.0 167.9 L 225.2 161.5 L 169.6 149.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 169.2 118.5 L 214.3 126.3 L 193.5 156.8 L 202.9 161.8" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 206.5 64.6 L 194.2 64.6 L 185.5 65.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 169.2 118.5 L 160.0 118.0 L 154.5 118.7" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 118.0 Q 169.4 77.2 194.2 64.6" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 154.5 118.7 L 149.2 133.4 L 174.1 157.7 L 175.2 163.9" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 206.5 64.6 L 205.2 94.4 L 203.2 124.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 185.5 65.8 L 183.4 94.7 L 180.7 123.7" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="205.6" cy="59.8" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="209.6" y1="68.9" x2="212.3" y2="74.9" 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

+12 -4
View File
@@ -33,12 +33,13 @@ it is a considered exclusion, not a gap.
| Elbow extension | Tricep Press, Triceps Pushdown | — | Dip |
| Shoulder raise (lateral/rear) | Rear Delt Fly | Lateral Raise | — |
| Hip abduction / adduction | Abductor, Adductor | — | — |
| Calf | Calfs | — | |
| Calf | Calfs | — | Standing Calf Raise |
| Core anti-extension | — | — | Plank, Dead Bug, Hollow Body Hold |
| Core rotation / anti-rotation | Rotary | — | Bird Dog |
| Core lateral | — | — | Side Plank |
| Core flexion | Abdominal | — | Crunch, Reverse Crunch, Leg Raises |
| Mobility / warm-up | — | — | Cat-Cow *(morning wake-up set: next phase)* |
| Mobility / warm-up | — | — | Cat-Cow, March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist, Standing Side Bend, Hip Circles |
| Static stretch | — | — | Standing Forward Fold, Standing Quad Stretch, Standing Calf Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch, Butterfly Stretch, Cobra Stretch, Child's Pose |
## Gym-floor census
@@ -57,6 +58,8 @@ entries) a user logging by that station's name will find.
| Pull-up / dip station (incl. assisted machine) | Pull-Up, Dip |
| Dumbbell rack | Dumbbell Bench Press, Dumbbell Fly, Dumbbell Row, Dumbbell Shoulder Press, Dumbbell Curl, Lateral Raise, Goblet Squat, Lunge |
| Floor / mat | Bodyweight Squat, Push-Up, Crunch, Glute Bridge, Plank, Side Plank, Bird Dog, Dead Bug, Hollow Body Hold, Leg Raises, Reverse Crunch, Cat-Cow |
| Open floor (warm-up / mobility) | March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist, Standing Side Bend, Hip Circles, Standing Calf Raise |
| Stretching mat (cool-down) | Standing Forward Fold, Standing Quad Stretch, Standing Calf Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch, Butterfly Stretch, Cobra Stretch, Child's Pose |
## Considered exclusions (the "most gyms" line)
@@ -73,8 +76,13 @@ entries) a user logging by that station's name will find.
("barbell or dumbbells" in their pages), not separate entries.
- **Kettlebells, T-bar row, pullover machine, cardio equipment** — out; not
strength stations found in most gyms (cardio is out of the app's scope).
- **Morning wake-up mobility set** (neck rolls, arm circles, …) — deliberately
deferred to the next library phase; Cat-Cow holds the mobility row today.
- **Morning wake-up mobility & stretching set** — landed. Dynamic warm-up
drills (March in Place, Leg Swings, Neck Rolls, Arm Circles, Torso Twist,
Standing Side Bend, Hip Circles) now fill the mobility row alongside Cat-Cow,
and a static-stretch group (Standing Forward Fold, Standing Quad/Calf
Stretch, Chest Opener, Overhead Triceps Stretch, Kneeling Hip Flexor Stretch,
Butterfly Stretch, Cobra Stretch, Child's Pose) covers the cool-down mat.
Standing Calf Raise adds the bodyweight calf cell.
## Standing exercises and `camera.zoom`
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Chest Opener</title>
<path d="M 124.9 157.5 L 180.0 157.5 L 180.0 150.2 L 124.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 92.3 L 171.6 123.2 L 161.4 148.9 L 168.6 151.6" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 92.7 L 165.6 123.9 L 158.6 150.6 L 166.1 152.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 164.7 33.3 L 155.5 51.8 L 158.4 72.3" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 164.7 33.3 L 160.5 33.2 L 160.5 34.5" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 92.3 L 160.0 91.8 L 160.0 92.7" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 91.8 Q 160.8 61.8 160.5 33.2" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 160.5 34.5 L 151.3 53.1 L 154.2 73.6" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="160.0" cy="19.4" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="167.0" y1="18.5" x2="171.8" y2="17.8" 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>Chest Opener</title>
<path d="M 124.9 157.5 L 180.0 157.5 L 180.0 150.2 L 124.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 92.3 L 171.6 123.2 L 161.4 148.9 L 168.6 151.6" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 92.7 L 165.6 123.9 L 158.6 150.6 L 166.1 152.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 150.8 34.8 L 147.0 55.2 L 155.8 73.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 150.8 34.8 L 146.7 34.8 L 146.7 36.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 92.3 L 160.0 91.8 L 160.0 92.7" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 91.8 Q 156.2 61.9 146.7 34.8" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 146.7 36.1 L 145.1 56.7 L 153.0 75.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="140.3" cy="22.5" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="145.6" y1="17.8" x2="149.2" y2="14.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: 1.9 KiB

+44
View File
@@ -0,0 +1,44 @@
# Chest Opener
Stand tall, clasp the hands behind the back, and lift the chest to peel open
the front of the shoulders and pecs — the antidote to a day rounded over a
desk or a phone.
- **Category:** Stretching
- **Type:** Static stretch (isometric hold)
- **Targets:** Chest (pectorals), front of the shoulders, biceps
- **Prescription:** Hold 30 s, breathing wide into the chest, then release and repeat once
- **Defaults:** 2 × 30 s
## Setup
Stand tall with the feet hip-width and the knees soft. Reach both arms behind
the low back and interlace the fingers, palms together.
## Execution
1. Draw the shoulder blades down and together and straighten the elbows as far
as is comfortable.
2. Lift the clasped hands gently away from the body until you feel the chest
open.
3. Raise the breastbone and let the gaze drift slightly upward.
4. Hold and breathe wide into the front of the chest, then release slowly.
## Cues
- Lead with the chest, not the chin — length before lift.
- Keep the shoulders drawing down away from the ears.
- Squeeze the shoulder blades together to deepen the stretch instead of
cranking the arms up.
## Common Mistakes
- Shrugging the shoulders up toward the ears.
- Arching hard through the low back instead of opening the chest.
- Yanking the hands higher than the shoulders can comfortably allow.
## Progression
Hands lower on the back with straighter elbows → clasp a strap and walk the
hands closer → hinge forward with the arms rising overhead for a deeper pec and
shoulder stretch.
+31
View File
@@ -0,0 +1,31 @@
{
"name": "Chest Opener",
"primary": 2,
"camera": {"zoom": 0.7},
"working": ["arm_r", "arm_l", "spine"],
"frames": [
{
"hold": 2.2, "tween": 1.8,
"root": {"pos": [160, 66], "pitch": 2},
"spine": [-1, -1],
"neck": -2, "head": -6,
"shoulder_r": -26, "elbow_r": 34,
"shoulder_l": -26, "elbow_l": 34,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [158, 150], "foot_l": [162, 150]}
},
{
"hold": 2.4, "tween": 1.8,
"root": {"pos": [160, 66], "pitch": -4},
"spine": [-6, -6],
"neck": -11, "head": -15,
"shoulder_r": -55, "elbow_r": 20,
"shoulder_l": -55, "elbow_l": 20,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [158, 150], "foot_l": [162, 150],
"hand_r": [150, 41], "hand_l": [154, 42]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Chest Opener</title>
<path d="M 124.9 157.5 L 180.0 157.5 L 180.0 150.2 L 124.9 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 92.3 L 171.6 123.2 L 161.4 148.9 L 168.6 151.6" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 92.7 L 165.6 123.9 L 158.6 150.6 L 166.1 152.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 150.8 34.8 L 147.0 55.2 L 155.8 73.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 150.8 34.8 L 146.7 34.8 L 146.7 36.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 92.3 L 160.0 91.8 L 160.0 92.7" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 91.8 Q 156.2 61.9 146.7 34.8" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 146.7 36.1 L 145.1 56.7 L 153.0 75.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="140.3" cy="22.5" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="145.6" y1="17.8" x2="149.2" y2="14.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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Child's Pose</title>
<path d="M 66.0 160.5 L 269.8 160.5 L 269.8 150.1 L 66.0 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 130.4 141.4 L 107.1 160.1 L 80.0 147.5" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 206.9 108.8 L 209.3 154.0 L 247.6 142.5 L 257.8 146.4" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 124.5 143.3 L 124.5 141.4 L 130.4 141.4" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 201.0 109.2 L 201.0 108.0 L 206.9 108.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 201.0 108.0 Q 155.8 111.8 124.5 141.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 124.5 143.3 L 109.0 168.6 L 84.0 152.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 201.0 109.2 L 203.4 154.5 L 241.7 142.9 L 251.9 146.8" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="111.3" cy="156.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="117.3" y1="164.3" x2="121.4" y2="169.9" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Child's Pose</title>
<path d="M 66.0 160.5 L 269.8 160.5 L 269.8 150.1 L 66.0 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 134.8 149.7 L 106.0 158.0 L 78.0 147.5" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 207.9 110.8 L 209.5 156.0 L 247.1 142.6 L 257.6 145.9" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 128.9 151.6 L 128.9 149.7 L 134.8 149.7" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 202.0 111.2 L 202.0 110.0 L 207.9 110.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 202.0 110.0 Q 156.7 116.3 128.9 149.7" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 128.9 151.6 L 105.8 170.3 L 82.0 152.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 202.0 111.2 L 203.6 156.5 L 241.2 143.0 L 251.7 146.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="118.0" cy="166.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="124.8" y1="173.6" x2="129.5" y2="178.7" 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

+40
View File
@@ -0,0 +1,40 @@
# Child's Pose
A restful kneeling fold that decompresses the spine and settles the breath —
the reset between harder efforts, or the quiet close to a morning routine.
- **Category:** Mobility / warm-up
- **Type:** Spinal decompression (timed hold)
- **Targets:** Lower back, hips, thighs, shoulders
- **Prescription:** Hold for 30 s, breathing slowly into the back of the ribs, then repeat once
- **Defaults:** 2 × 30 s
## Setup
Kneel with the knees about hip-width and the big toes together, then sit the
hips back toward the heels.
## Execution
1. Walk the hands forward and fold the chest down over the thighs.
2. Stretch the arms long on the floor overhead and rest the forehead on the mat.
3. Let the weight sink back toward the heels and the hips grow heavy.
4. Breathe slowly into the back of the ribs, lengthening a little with each
exhale.
## Cues
- Reach the fingertips forward and the hips back to grow long through the spine.
- Let the belly rest between the thighs so the breath can slow.
- Keep the forehead heavy and the neck completely relaxed.
## Common Mistakes
- Holding tension in the shoulders instead of letting them melt down.
- Lifting the hips away from the heels and losing the settle.
- Forcing the range and gripping the low back rather than releasing it.
## Progression
Knees together for a deeper fold, or wide knees to let the chest sink lower →
add a side-reach (walk the hands to each side) to open the lats
+29
View File
@@ -0,0 +1,29 @@
{
"name": "Child's Pose",
"primary": 2,
"working": ["spine"],
"frames": [
{
"hold": 2.4, "tween": 2.0,
"root": {"pos": [201, 108], "yaw": 180, "pitch": 89},
"spine": [15, 20],
"neck": 15, "head": -13,
"shoulder_r": 168, "elbow_r": 8,
"shoulder_l": 168, "elbow_l": 8,
"hip_r": 86, "knee_r": 104, "ankle_r": -52,
"hip_l": 86, "knee_l": 104, "ankle_l": -52,
"pins": {"hand_r": [80, 150], "hand_l": [84, 151]}
},
{
"hold": 2.6, "tween": 2.0,
"root": {"pos": [202, 110], "yaw": 180, "pitch": 92},
"spine": [16, 22],
"neck": 17, "head": -15,
"shoulder_r": 172, "elbow_r": 6,
"shoulder_l": 172, "elbow_l": 6,
"hip_r": 90, "knee_r": 108, "ankle_r": -52,
"hip_l": 90, "knee_l": 108, "ankle_l": -52,
"pins": {"hand_r": [78, 150], "hand_l": [82, 151]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 321 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Child's Pose</title>
<path d="M 66.0 160.5 L 269.8 160.5 L 269.8 150.1 L 66.0 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 134.8 149.7 L 106.0 158.0 L 78.0 147.5" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 207.9 110.8 L 209.5 156.0 L 247.1 142.6 L 257.6 145.9" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 128.9 151.6 L 128.9 149.7 L 134.8 149.7" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 202.0 111.2 L 202.0 110.0 L 207.9 110.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 202.0 110.0 Q 156.7 116.3 128.9 149.7" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 128.9 151.6 L 105.8 170.3 L 82.0 152.3" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 202.0 111.2 L 203.6 156.5 L 241.2 143.0 L 251.7 146.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="118.0" cy="166.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="124.8" y1="173.6" x2="129.5" y2="178.7" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Cobra Stretch</title>
<path d="M 62.7 161.1 L 294.1 161.1 L 294.1 150.7 L 62.7 150.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="arm_r" d="M 110.6 131.1 L 134.0 149.6 L 104.0 148.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 193.9 147.8 L 235.1 168.0 L 270.0 148.8 L 280.8 150.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 104.7 132.9 L 104.7 131.0 L 110.6 131.1" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 188.0 148.2 L 188.0 147.0 L 193.9 147.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 188.0 147.0 Q 146.2 134.5 104.7 131.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 188.0 148.2 L 233.9 151.0 L 273.9 152.2 L 282.1 159.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 104.7 132.9 L 78.5 147.4 L 108.0 152.8" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="84.7" cy="130.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="77.2" y1="136.9" x2="72.0" y2="141.6" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Cobra Stretch</title>
<path d="M 62.7 161.1 L 294.1 161.1 L 294.1 150.7 L 62.7 150.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_r" d="M 193.9 147.8 L 235.1 168.0 L 270.0 148.8 L 280.8 150.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 132.3 90.6 L 118.7 117.0 L 106.0 143.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 188.0 148.2 L 233.9 151.0 L 273.9 152.2 L 282.1 159.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 126.3 92.5 L 126.3 90.6 L 132.3 90.6" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 188.0 148.2 L 188.0 147.0 L 193.9 147.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 188.0 147.0 Q 148.4 126.6 126.3 90.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 126.3 92.5 L 117.2 120.6 L 109.1 149.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="116.6" cy="73.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="106.8" y1="75.2" x2="100.0" y2="76.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.9 KiB

+42
View File
@@ -0,0 +1,42 @@
# Cobra Stretch
A gentle prone press-up that opens the front of the body and coaxes the spine
into extension after a night curled up.
- **Category:** Mobility / warm-up
- **Type:** Spinal extension mobility
- **Targets:** Lumbar and thoracic spine, abdominals, chest and hip flexors
- **Prescription:** 2 sets of 8 slow press-ups, pausing a breath at the top of each
- **Defaults:** 2 × 8 bodyweight
## Setup
Lie face down with the legs long and the tops of the feet on the floor. Set the
hands flat under the shoulders, elbows tucked close to the ribs.
## Execution
1. Press the hands lightly into the floor and lengthen the chest forward.
2. Peel the breastbone off the mat, letting the spine extend one segment at a
time.
3. Keep the hips, pubic bone, and legs pinned to the floor throughout.
4. Rise only as far as the low back stays comfortable, then lower slowly back
to flat.
## Cues
- Lead with the chest, not the chin — length before height.
- Draw the shoulders down away from the ears.
- Let the hands share the load; don't hang the whole body weight on the low back.
## Common Mistakes
- Cranking the head back and crunching the neck.
- Pressing to straight arms and lifting the hips off the mat (that's up-dog, not
cobra).
- Shrugging the shoulders up around the ears.
## Progression
Sphinx (forearms down) → low cobra → full cobra with straighter arms →
upward-facing dog with the thighs lifted
@@ -0,0 +1,31 @@
{
"name": "Cobra Stretch",
"primary": 2,
"working": ["spine"],
"frames": [
{
"hold": 0.6, "tween": 1.1,
"root": {"pos": [188, 147], "yaw": 180, "pitch": 76},
"spine": [0, 6],
"neck": 6, "head": -46,
"shoulder_r": 92, "elbow_r": 100,
"shoulder_l": 92, "elbow_l": 100,
"hip_r": 0, "knee_r": 0, "ankle_r": -50,
"hip_l": 0, "knee_l": 0, "ankle_l": -50,
"pins": {"hand_r": [104, 150], "hand_l": [108, 151],
"foot_r": [270, 150], "foot_l": [274, 151]}
},
{
"hold": 1.3, "tween": 1.1,
"root": {"pos": [188, 147], "yaw": 180, "pitch": 68},
"spine": [-13, -16],
"neck": -10, "head": -18,
"shoulder_r": 95, "elbow_r": 14,
"shoulder_l": 95, "elbow_l": 14,
"hip_r": 0, "knee_r": 0, "ankle_r": -50,
"hip_l": 0, "knee_l": 0, "ankle_l": -50,
"pins": {"hand_r": [104, 150], "hand_l": [108, 151],
"foot_r": [270, 150], "foot_l": [274, 151]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Cobra Stretch</title>
<path d="M 62.7 161.1 L 294.1 161.1 L 294.1 150.7 L 62.7 150.7 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_r" d="M 193.9 147.8 L 235.1 168.0 L 270.0 148.8 L 280.8 150.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 132.3 90.6 L 118.7 117.0 L 106.0 143.8" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 188.0 148.2 L 233.9 151.0 L 273.9 152.2 L 282.1 159.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 126.3 92.5 L 126.3 90.6 L 132.3 90.6" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 188.0 148.2 L 188.0 147.0 L 193.9 147.8" stroke="#0d9488" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 188.0 147.0 Q 148.4 126.6 126.3 90.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 126.3 92.5 L 117.2 120.6 L 109.1 149.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="116.6" cy="73.3" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="106.8" y1="75.2" x2="100.0" y2="76.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.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Hip Circles</title>
<path d="M 115.1 151.3 L 180.7 162.7 L 210.4 157.5 L 144.8 146.1 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 166.4 96.4 L 178.0 126.4 L 164.2 149.3 L 170.4 153.6" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.2 37.1 L 176.9 48.3 L 182.9 45.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 156.5 96.6 L 167.2 127.0 L 155.8 150.5 L 161.8 154.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.2 37.1 L 157.8 37.1 L 152.4 38.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 166.4 96.4 L 160.0 96.0 L 156.5 96.6" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 96.0 Q 159.6 65.9 157.8 37.1" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.4 38.1 L 140.3 53.2 L 159.4 47.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="157.1" cy="23.2" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="164.1" y1="23.8" x2="167.6" y2="24.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,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Hip Circles</title>
<path d="M 112.0 152.5 L 177.7 163.9 L 207.4 158.7 L 141.7 147.3 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.9 92.9 L 152.2 124.7 L 164.2 149.2 L 157.5 152.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 146.0 93.1 L 145.3 125.0 L 155.8 150.4 L 148.8 153.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 149.0 34.8 L 140.8 36.8 L 135.6 39.8" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.9 92.9 L 149.5 92.5 L 146.0 93.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 149.5 92.5 Q 147.9 62.7 140.8 36.8" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 149.0 34.8 L 161.2 40.5 L 166.7 41.5" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 135.6 39.8 L 125.9 58.1 L 144.0 51.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="138.1" cy="24.0" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="145.0" y1="25.2" x2="148.4" y2="25.8" 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>Hip Circles</title>
<path d="M 115.1 151.2 L 180.7 162.6 L 210.4 157.4 L 144.8 146.0 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 166.4 90.1 L 167.7 121.9 L 164.2 149.2 L 171.3 150.6" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 156.5 90.3 L 156.5 122.1 L 155.8 149.7 L 162.5 150.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 170.6 31.6 L 180.0 42.3 L 186.5 41.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 170.6 31.6 L 162.2 31.6 L 156.7 32.5" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 166.4 90.1 L 160.0 89.7 L 156.5 90.3" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 89.7 Q 160.4 59.8 162.2 31.6" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 156.7 32.5 L 143.4 47.2 L 162.9 44.3" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="162.9" cy="17.9" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="169.6" y1="19.8" x2="173.1" y2="20.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>Hip Circles</title>
<path d="M 118.2 149.9 L 183.8 161.3 L 213.5 156.2 L 147.9 144.8 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 176.9 92.9 L 176.9 124.8 L 164.2 149.2 L 171.0 152.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 187.4 36.0 L 194.4 51.3 L 201.9 46.9" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 167.0 93.1 L 166.4 125.0 L 155.8 150.4 L 162.9 153.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 187.4 36.0 L 179.2 33.8 L 174.0 32.6" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 176.9 92.9 L 170.5 92.5 L 167.0 93.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 170.5 92.5 Q 172.1 62.1 179.2 33.8" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 174.0 32.6 L 159.1 43.0 L 179.2 41.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="181.9" cy="20.1" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="188.8" y1="21.3" x2="192.3" y2="21.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: 1.9 KiB

+37
View File
@@ -0,0 +1,37 @@
# Hip Circles
Hands on the hips, circle the pelvis slowly like a hula-hoop warm-up to loosen
the hips and low back and prime the whole midsection.
- **Category:** Mobility / warm-up
- **Type:** Hip mobility
- **Targets:** Hips, pelvis, lumbar spine
- **Prescription:** 8 slow circles in each direction
- **Defaults:** 2 × 8 bodyweight
## Setup
Stand with feet shoulder-width, hands resting on the hips, knees soft.
## Execution
1. Push the hips forward, then around to one side.
2. Carry them back, then to the other side, tracing one big smooth circle.
3. Keep the head and shoulders roughly still over the feet as the hips travel.
4. Complete the circles, then reverse the direction.
## Cues
- Draw the circle with the hips, not the whole body.
- Keep both feet flat and planted throughout.
- Let the upper body counter-lean gently so the head stays centered.
## Common Mistakes
- Circling the shoulders instead of the hips.
- Letting a foot lift as the hips swing across.
- Rushing — the circle should be slow and even.
## Progression
Small circles → bigger hula-hoop circles → slow tempo in both directions.
+52
View File
@@ -0,0 +1,52 @@
{
"name": "Hip Circles",
"primary": 2,
"camera": {"yaw": 45, "zoom": 0.7},
"working": ["spine"],
"frames": [
{
"hold": 0.12, "tween": 0.6,
"root": {"pos": [160, 72]},
"spine": [{"lateral": 0, "flexion": -2}, {"lateral": 0, "flexion": -2}],
"neck": 0, "head": 0,
"shoulder_r": {"flexion": -8, "abduction": 50}, "elbow_r": 125,
"shoulder_l": {"flexion": -8, "abduction": 50}, "elbow_l": 125,
"hip_r": 3, "knee_r": 5, "ankle_r": 0,
"hip_l": 3, "knee_l": 5, "ankle_l": 0,
"pins": {"foot_r": [154, 150], "foot_l": [166, 150]}
},
{
"hold": 0.12, "tween": 0.6,
"root": {"pos": [145, 67]},
"spine": [{"lateral": 8, "flexion": 0}, {"lateral": 8, "flexion": 0}],
"neck": 0, "head": 0,
"shoulder_r": {"flexion": -8, "abduction": 50}, "elbow_r": 125,
"shoulder_l": {"flexion": -8, "abduction": 50}, "elbow_l": 125,
"hip_r": 3, "knee_r": 5, "ankle_r": 0,
"hip_l": 3, "knee_l": 5, "ankle_l": 0,
"pins": {"foot_r": [154, 150], "foot_l": [166, 150]}
},
{
"hold": 0.12, "tween": 0.6,
"root": {"pos": [160, 63]},
"spine": [{"lateral": 0, "flexion": 2}, {"lateral": 0, "flexion": 2}],
"neck": 0, "head": 0,
"shoulder_r": {"flexion": -8, "abduction": 50}, "elbow_r": 125,
"shoulder_l": {"flexion": -8, "abduction": 50}, "elbow_l": 125,
"hip_r": 3, "knee_r": 5, "ankle_r": 0,
"hip_l": 3, "knee_l": 5, "ankle_l": 0,
"pins": {"foot_r": [154, 150], "foot_l": [166, 150]}
},
{
"hold": 0.12, "tween": 0.6,
"root": {"pos": [175, 67]},
"spine": [{"lateral": -8, "flexion": 0}, {"lateral": -8, "flexion": 0}],
"neck": 0, "head": 0,
"shoulder_r": {"flexion": -8, "abduction": 50}, "elbow_r": 125,
"shoulder_l": {"flexion": -8, "abduction": 50}, "elbow_l": 125,
"hip_r": 3, "knee_r": 5, "ankle_r": 0,
"hip_l": 3, "knee_l": 5, "ankle_l": 0,
"pins": {"foot_r": [154, 150], "foot_l": [166, 150]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Hip Circles</title>
<path d="M 112.0 152.5 L 177.7 163.9 L 207.4 158.7 L 141.7 147.3 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.9 92.9 L 152.2 124.7 L 164.2 149.2 L 157.5 152.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 146.0 93.1 L 145.3 125.0 L 155.8 150.4 L 148.8 153.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 149.0 34.8 L 140.8 36.8 L 135.6 39.8" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.9 92.9 L 149.5 92.5 L 146.0 93.1" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 149.5 92.5 Q 147.9 62.7 140.8 36.8" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 149.0 34.8 L 161.2 40.5 L 166.7 41.5" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 135.6 39.8 L 125.9 58.1 L 144.0 51.9" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="138.1" cy="24.0" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="145.0" y1="25.2" x2="148.4" y2="25.8" 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>Kneeling Hip Flexor Stretch</title>
<path d="M 81.2 160.5 L 238.2 160.5 L 238.2 150.1 L 81.2 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.9 108.8 L 150.2 151.3 L 110.3 148.6 L 100.8 154.2" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 195.4 30.0 L 199.8 59.2 L 203.2 88.6" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 109.2 L 206.0 111.2 L 206.0 150.6 L 216.9 149.4" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 195.4 30.0 L 189.5 29.9 L 189.5 31.8" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.9 108.8 L 160.0 108.0 L 160.0 109.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 108.0 Q 167.5 65.2 189.5 29.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 189.5 31.8 L 194.5 61.0 L 198.7 90.2" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="200.7" cy="13.6" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="210.0" y1="17.3" x2="216.5" y2="19.9" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Kneeling Hip Flexor Stretch</title>
<path d="M 81.2 160.5 L 238.2 160.5 L 238.2 150.1 L 81.2 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 167.9 110.8 L 142.2 148.3 L 102.2 148.3 L 93.2 154.5" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 208.0 37.1 L 209.4 66.6 L 209.8 96.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 162.0 111.2 L 208.0 111.3 L 210.0 150.6 L 220.9 148.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 208.0 37.1 L 202.1 37.0 L 202.1 38.9" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 167.9 110.8 L 162.0 110.0 L 162.0 111.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 162.0 110.0 Q 172.8 67.4 202.1 37.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 202.1 38.9 L 204.2 68.4 L 205.4 97.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="216.2" cy="23.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="224.8" y1="28.3" x2="230.7" y2="32.0" 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

@@ -0,0 +1,43 @@
# Kneeling Hip Flexor Stretch
Drop into a half-kneel and press the hips forward to open the front of the back
hip. The go-to release for tight hip flexors after long hours of sitting or
heavy squatting.
- **Category:** Stretching
- **Type:** Static stretch (isometric hold)
- **Targets:** Hip flexors, quadriceps, front of the hip
- **Prescription:** Hold 30 s per side, pressing the hips gently forward
- **Defaults:** 2 × 30 s
## Setup
Kneel on one knee with the other foot planted flat in front, the front knee
stacked over the ankle at about ninety degrees. Rest the hands on the front
thigh. Pad the back knee if needed.
## Execution
1. Tuck the tailbone under to flatten the low back.
2. Ease the hips forward until you feel a stretch across the front of the back
hip and thigh.
3. Keep the trunk tall and the front shin vertical.
4. Hold and breathe, then switch sides.
## Cues
- Squeeze the glute of the kneeling leg to deepen the hip-flexor stretch.
- Tuck the tailbone first — don't just arch the low back forward.
- Keep the front knee tracking over the foot, not caving inward.
## Common Mistakes
- Letting the front knee drift far past the toes.
- Arching the low back instead of tucking the pelvis and pressing the hips.
- Leaning the whole torso forward rather than shifting the hips.
## Progression
Hands on the front thigh → reach the same-side arm overhead and lean away for
a deeper stretch → add a gentle back-foot lift toward the glute to bring in the
quad.
@@ -0,0 +1,29 @@
{
"name": "Kneeling Hip Flexor Stretch",
"primary": 2,
"working": ["leg_l"],
"frames": [
{
"hold": 2.2, "tween": 1.8,
"root": {"pos": [160, 108], "pitch": 4},
"spine": [11, 11],
"neck": 8, "head": -12,
"shoulder_r": 54, "elbow_r": 36,
"shoulder_l": 54, "elbow_l": 36,
"hip_r": 86, "knee_r": 90, "ankle_r": 6,
"hip_l": -16, "knee_l": 74, "ankle_l": -55,
"pins": {"foot_r": [206, 150], "hand_r": [202, 112], "hand_l": [206, 114]}
},
{
"hold": 2.4, "tween": 1.8,
"root": {"pos": [162, 110], "pitch": 6},
"spine": [15, 15],
"neck": 9, "head": -13,
"shoulder_r": 58, "elbow_r": 32,
"shoulder_l": 58, "elbow_l": 32,
"hip_r": 90, "knee_r": 90, "ankle_r": 6,
"hip_l": -28, "knee_l": 56, "ankle_l": -55,
"pins": {"foot_r": [210, 150], "hand_r": [206, 110], "hand_l": [210, 112]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Kneeling Hip Flexor Stretch</title>
<path d="M 81.2 160.5 L 238.2 160.5 L 238.2 150.1 L 81.2 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="3" stroke-linejoin="round"/>
<path id="leg_l" d="M 167.9 110.8 L 142.2 148.3 L 102.2 148.3 L 93.2 154.5" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 208.0 37.1 L 209.4 66.6 L 209.8 96.1" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 162.0 111.2 L 208.0 111.3 L 210.0 150.6 L 220.9 148.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 208.0 37.1 L 202.1 37.0 L 202.1 38.9" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 167.9 110.8 L 162.0 110.0 L 162.0 111.2" stroke="#3a3f4b" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 162.0 110.0 Q 172.8 67.4 202.1 37.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 202.1 38.9 L 204.2 68.4 L 205.4 97.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="216.2" cy="23.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="224.8" y1="28.3" x2="230.7" y2="32.0" 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

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Leg Swings</title>
<path d="M 114.0 157.5 L 223.7 157.5 L 223.7 150.2 L 114.0 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 92.3 L 154.9 123.4 L 165.6 148.9 L 158.5 151.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.5 33.5 L 181.9 47.6 L 199.9 58.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 92.7 L 186.8 105.0 L 210.8 119.2 L 215.3 113.0" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.5 33.5 L 162.4 33.4 L 162.4 34.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 92.3 L 157.2 91.8 L 157.2 92.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 91.8 Q 159.9 61.9 162.4 33.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.4 34.8 L 162.8 55.4 L 166.8 75.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="164.1" cy="19.7" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.1" y1="19.9" x2="176.0" y2="19.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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Leg Swings</title>
<path d="M 114.0 157.5 L 223.7 157.5 L 223.7 150.2 L 114.0 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 92.3 L 154.9 123.4 L 165.6 148.9 L 158.5 151.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.5 33.5 L 181.9 47.6 L 199.9 58.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 92.7 L 139.7 119.2 L 122.4 141.0 L 127.0 147.1" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.5 33.5 L 162.4 33.4 L 162.4 34.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 92.3 L 157.2 91.8 L 157.2 92.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 91.8 Q 159.9 61.9 162.4 33.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.4 34.8 L 162.8 55.4 L 166.8 75.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="164.1" cy="19.7" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.1" y1="19.9" x2="176.0" y2="19.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: 1.9 KiB

+42
View File
@@ -0,0 +1,42 @@
# Leg Swings
Stand on one leg and swing the other freely front to back, letting the hip
open and close through a growing range. A dynamic mobility drill that loosens
the hips, hamstrings, and hip flexors before squats, running, or lower-body
work.
- **Category:** Mobility / warm-up
- **Type:** Dynamic mobility
- **Targets:** Hip mobility, hamstrings, hip flexors
- **Prescription:** 1012 swings per leg, building range gradually
- **Defaults:** 2 × 10 bodyweight
## Setup
Balance on one leg, standing tall. Rest a hand on a wall or rail for support
if you need it, and let the working leg hang loose.
## Execution
1. Swing the free leg forward to a comfortable height, keeping it fairly
straight.
2. Let it swing back through under the hip and behind you.
3. Keep the torso upright and quiet — the motion is all at the hip.
4. Swing smoothly for the set, then switch legs.
## Cues
- Move from the hip; don't heave with the low back.
- Start with small swings and let the range grow rep by rep.
- Stay tall — resist the urge to fold forward as the leg swings back.
## Common Mistakes
- Arching and rounding the spine to fling the leg higher.
- Swinging so hard you lose balance and the motion turns jerky.
- Twisting the torso instead of keeping it square and still.
## Progression
Add side-to-side swings across the body once front-to-back feels smooth, and
gradually widen the arc as the hip warms up.
+30
View File
@@ -0,0 +1,30 @@
{
"name": "Leg Swings",
"primary": 1,
"camera": {"zoom": 0.7},
"working": ["leg_r"],
"frames": [
{
"hold": 0.16, "tween": 0.72,
"root": {"pos": [156, 66], "pitch": 5},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 6, "elbow_r": 10,
"shoulder_l": 52, "elbow_l": 12,
"hip_r": 72, "knee_r": 8, "ankle_r": -4,
"hip_l": -2, "knee_l": 3, "ankle_l": 0,
"pins": {"foot_l": [168, 150]}
},
{
"hold": 0.16, "tween": 0.72,
"root": {"pos": [156, 66], "pitch": 5},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 6, "elbow_r": 10,
"shoulder_l": 52, "elbow_l": 12,
"hip_r": -28, "knee_r": 5, "ankle_r": -16,
"hip_l": -2, "knee_l": 3, "ankle_l": 0,
"pins": {"foot_l": [168, 150]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Leg Swings</title>
<path d="M 114.0 157.5 L 223.7 157.5 L 223.7 150.2 L 114.0 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 161.3 92.3 L 154.9 123.4 L 165.6 148.9 L 158.5 151.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.5 33.5 L 181.9 47.6 L 199.9 58.2" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.2 92.7 L 186.8 105.0 L 210.8 119.2 L 215.3 113.0" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.5 33.5 L 162.4 33.4 L 162.4 34.8" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 161.3 92.3 L 157.2 91.8 L 157.2 92.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 157.2 91.8 Q 159.9 61.9 162.4 33.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.4 34.8 L 162.8 55.4 L 166.8 75.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="164.1" cy="19.7" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="171.1" y1="19.9" x2="176.0" y2="19.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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>March in Place</title>
<path d="M 142.5 157.4 L 207.2 157.4 L 207.2 150.2 L 142.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 89.5 L 163.1 121.2 L 161.4 148.7 L 169.1 149.2" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 30.6 L 178.8 48.5 L 198.8 42.1" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 89.9 L 188.9 103.8 L 177.6 128.9 L 184.1 133.0" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 168.3 30.6 L 164.2 30.5 L 164.2 31.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 89.5 L 160.0 89.0 L 160.0 89.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 89.0 Q 162.1 59.1 164.2 30.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 164.2 31.9 L 153.0 49.4 L 169.1 62.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="165.6" cy="16.8" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="172.6" y1="16.8" x2="177.5" y2="16.8" 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>March in Place</title>
<path d="M 142.5 157.5 L 207.2 157.5 L 207.2 150.2 L 142.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 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#86cfc5" 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="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 32.0 L 167.9 52.7 L 186.6 62.1" stroke="#a9afba" stroke-width="3.5" 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 163.8 54.0 L 182.5 63.4" 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>March in Place</title>
<path d="M 142.5 157.4 L 207.2 157.4 L 207.2 150.2 L 142.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 89.5 L 193.1 103.4 L 181.7 128.6 L 188.2 132.6" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 89.9 L 158.8 121.5 L 158.6 149.1 L 150.9 149.1" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 30.6 L 157.2 48.1 L 173.2 61.4" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 168.3 30.6 L 164.2 30.5 L 164.2 31.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 89.5 L 160.0 89.0 L 160.0 89.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 89.0 Q 162.1 59.1 164.2 30.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 164.2 31.9 L 174.7 49.8 L 194.6 43.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="165.6" cy="16.8" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="172.6" y1="16.8" x2="177.5" y2="16.8" 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>March in Place</title>
<path d="M 142.5 157.5 L 207.2 157.5 L 207.2 150.2 L 142.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 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#86cfc5" 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="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 32.0 L 167.9 52.7 L 186.6 62.1" stroke="#a9afba" stroke-width="3.5" 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 163.8 54.0 L 182.5 63.4" 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

+39
View File
@@ -0,0 +1,39 @@
# March in Place
A rhythmic warm-up staple — drive one knee up while the opposite arm swings
through, then switch, marching on the spot. It wakes the hip flexors, primes
the calves and ankles, and lifts the heart rate before the real work.
- **Category:** Mobility / warm-up
- **Type:** Dynamic warm-up
- **Targets:** Hip flexors, calves, coordination
- **Prescription:** 3060 seconds at a steady, controlled cadence
- **Defaults:** 2 × 30 s
## Setup
Stand tall with feet hip-width, arms relaxed at your sides, eyes forward.
## Execution
1. Drive one knee up toward hip height, staying tall through the spine.
2. Swing the opposite arm forward as the knee rises — natural, like walking.
3. Plant that foot and lift the other knee, letting the arms switch.
4. Keep alternating in an even, unhurried rhythm.
## Cues
- Stand tall — no hunching or leaning back to swing the knee up.
- Opposite arm to opposite knee, the same coordination as walking.
- Land softly through the whole foot, not with a hard heel strike.
## Common Mistakes
- Shuffling low, barely lifting the knees.
- Rushing into a stiff, bouncy jog instead of a controlled march.
- Same-side arm and knee moving together, which kills the rhythm.
## Progression
Lift the knees higher, quicken the cadence, or add a light arm reach overhead
to turn it into a fuller-body warm-up.
@@ -0,0 +1,52 @@
{
"name": "March in Place",
"primary": 1,
"camera": {"zoom": 0.7},
"working": ["leg_r", "leg_l"],
"frames": [
{
"hold": 0.18, "tween": 0.42,
"root": {"pos": [160, 62], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": -28, "elbow_r": 82,
"shoulder_l": 34, "elbow_l": 78,
"hip_r": 68, "knee_r": 88, "ankle_r": -8,
"hip_l": 2, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_l": [162, 150]}
},
{
"hold": 0.14, "tween": 0.4,
"root": {"pos": [160, 64], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 3, "elbow_r": 64,
"shoulder_l": 3, "elbow_l": 64,
"hip_r": 4, "knee_r": 4, "ankle_r": 0,
"hip_l": 4, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
},
{
"hold": 0.18, "tween": 0.42,
"root": {"pos": [160, 62], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 34, "elbow_r": 78,
"shoulder_l": -28, "elbow_l": 82,
"hip_r": 2, "knee_r": 4, "ankle_r": 0,
"hip_l": 68, "knee_l": 88, "ankle_l": -8,
"pins": {"foot_r": [158, 148]}
},
{
"hold": 0.14, "tween": 0.4,
"root": {"pos": [160, 64], "pitch": 4},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 3, "elbow_r": 64,
"shoulder_l": 3, "elbow_l": 64,
"hip_r": 4, "knee_r": 4, "ankle_r": 0,
"hip_l": 4, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>March in Place</title>
<path d="M 142.5 157.4 L 207.2 157.4 L 207.2 150.2 L 142.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 89.5 L 163.1 121.2 L 161.4 148.7 L 169.1 149.2" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 168.3 30.6 L 178.8 48.5 L 198.8 42.1" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 89.9 L 188.9 103.8 L 177.6 128.9 L 184.1 133.0" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 168.3 30.6 L 164.2 30.5 L 164.2 31.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 89.5 L 160.0 89.0 L 160.0 89.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 89.0 Q 162.1 59.1 164.2 30.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 164.2 31.9 L 153.0 49.4 L 169.1 62.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="165.6" cy="16.8" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="172.6" y1="16.8" x2="177.5" y2="16.8" 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>Neck Rolls</title>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.4 38.7 L 168.8 58.3 L 171.9 77.8" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.4 38.7 L 160.0 38.7 L 155.8 39.7" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 160.0 65.6 160.0 38.7" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 39.7 L 157.2 59.3 L 160.3 78.8" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="167.5" cy="30.2" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="170.9" y1="35.9" x2="173.2" y2="39.8" stroke="#3a3f4b" stroke-width="2.64" 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>Neck Rolls</title>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 163.4 38.8 L 167.5 57.1 L 173.3 75.4" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 163.4 38.8 L 156.2 40.4 L 152.1 43.2" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 161.9 64.8 156.2 40.4" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 152.1 43.2 L 156.3 61.5 L 162.1 79.8" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="155.5" cy="28.5" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="161.5" y1="31.2" x2="164.4" y2="32.6" stroke="#3a3f4b" stroke-width="2.64" 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>Neck Rolls</title>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.4 38.7 L 168.8 58.3 L 171.9 77.8" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.4 38.7 L 160.0 38.7 L 155.8 39.7" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 160.0 65.6 160.0 38.7" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 39.7 L 157.2 59.3 L 160.3 78.8" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="155.6" cy="26.3" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="160.9" y1="22.3" x2="163.9" y2="20.0" stroke="#3a3f4b" stroke-width="2.64" 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>Neck Rolls</title>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 171.1 40.3 L 169.8 60.0 L 170.2 79.6" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 171.1 40.3 L 163.8 38.5 L 159.8 37.8" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 158.1 65.7 163.8 38.5" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 159.8 37.8 L 158.5 57.5 L 158.9 77.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="166.8" cy="25.7" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="173.2" y1="27.2" x2="177.5" y2="28.2" stroke="#3a3f4b" stroke-width="2.64" 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

+41
View File
@@ -0,0 +1,41 @@
# Neck Rolls
Slow, gentle circles of the head to loosen the neck and upper spine before
training or after a long day at a desk.
- **Category:** Mobility / warm-up
- **Type:** Neck mobility
- **Targets:** Cervical spine, upper trapezius, levator scapulae
- **Prescription:** 35 slow circles in each direction, stopping short of any pinch
- **Defaults:** 2 × 5 bodyweight
## Setup
Stand tall, feet hip-width, shoulders relaxed and down, arms hanging quietly at
your sides.
## Execution
1. Drop the chin toward the chest.
2. Roll one ear down toward that shoulder, then carry the head back into a
gentle look-up.
3. Bring the other ear toward the far shoulder and back down to the chest — one
smooth, continuous circle.
4. Finish the circles, then reverse the direction.
## Cues
- Move slowly — a single circle should take several seconds.
- Keep the shoulders down and still; only the head travels.
- Ease off the moment you feel a pinch, especially at the look-up.
## Common Mistakes
- Whipping the head around quickly.
- Shrugging a shoulder up to meet the ear.
- Forcing the range at the top of the circle.
## Progression
Small pain-free arcs → full slow circles → add a brief pause at each ear and at
the chin tuck.
+52
View File
@@ -0,0 +1,52 @@
{
"name": "Neck Rolls",
"primary": 1,
"camera": {"yaw": 35, "zoom": 0.66},
"working": ["spine"],
"frames": [
{
"hold": 0.2, "tween": 0.9,
"root": {"pos": [160, 64]},
"spine": [0, {"lateral": 0}],
"neck": {"flexion": 44, "rotation": 0}, "head": 8,
"shoulder_r": 5, "elbow_r": 6,
"shoulder_l": 5, "elbow_l": 6,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.2, "tween": 0.9,
"root": {"pos": [160, 64]},
"spine": [0, {"lateral": 14}],
"neck": {"flexion": 6, "rotation": 16}, "head": 0,
"shoulder_r": 5, "elbow_r": 6,
"shoulder_l": 5, "elbow_l": 6,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.2, "tween": 0.9,
"root": {"pos": [160, 64]},
"spine": [0, {"lateral": 0}],
"neck": {"flexion": -24, "rotation": 0}, "head": -12,
"shoulder_r": 5, "elbow_r": 6,
"shoulder_l": 5, "elbow_l": 6,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
},
{
"hold": 0.2, "tween": 0.9,
"root": {"pos": [160, 64]},
"spine": [0, {"lateral": -14}],
"neck": {"flexion": 6, "rotation": -16}, "head": 0,
"shoulder_r": 5, "elbow_r": 6,
"shoulder_l": 5, "elbow_l": 6,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [156, 150], "foot_l": [164, 150]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Neck Rolls</title>
<path d="M 133.0 154.6 L 166.7 158.7 L 189.4 153.1 L 155.7 149.0 Z" fill="none" stroke="#b9bec9" stroke-width="1.98" stroke-linejoin="round"/>
<path id="leg_l" d="M 165.8 94.3 L 169.3 124.2 L 162.6 149.3 L 169.6 151.2" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 157.4 94.6 L 157.8 124.5 L 157.4 150.6 L 164.3 151.1" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 167.4 38.7 L 168.8 58.3 L 171.9 77.8" stroke="#a9afba" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 167.4 38.7 L 160.0 38.7 L 155.8 39.7" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 165.8 94.3 L 160.0 93.9 L 157.4 94.6" stroke="#0d9488" stroke-width="3.3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 93.9 Q 160.0 65.6 160.0 38.7" stroke="#0d9488" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 155.8 39.7 L 157.2 59.3 L 160.3 78.8" stroke="#3a3f4b" stroke-width="3.96" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="167.5" cy="30.2" r="6.6000000000000005" fill="white" stroke="#3a3f4b" stroke-width="3.96"/>
<line id="nose" x1="170.9" y1="35.9" x2="173.2" y2="39.8" stroke="#3a3f4b" stroke-width="2.64" 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>Overhead Triceps Stretch</title>
<path d="M 131.9 154.8 L 174.1 160.9 L 202.3 155.1 L 160.0 148.9 Z" fill="none" stroke="#b9bec9" stroke-width="2.19" stroke-linejoin="round"/>
<path id="leg_l" d="M 166.6 88.2 L 169.0 121.2 L 161.5 148.8 L 169.1 151.0" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 156.7 88.4 L 157.2 121.5 L 158.5 150.1 L 151.0 151.0" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 170.1 27.0 L 161.7 26.9 L 156.5 28.0" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 166.6 88.2 L 160.0 87.8 L 156.7 88.4" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 87.8 Q 160.8 56.6 161.7 26.9" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 170.1 27.0 L 184.7 15.4 L 188.1 -5.8" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 156.5 28.0 L 164.5 13.5 L 150.4 0.2" stroke="#0d9488" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="163.6" cy="13.1" r="7.3" fill="white" stroke="#3a3f4b" stroke-width="4.38"/>
<line id="nose" x1="170.7" y1="14.7" x2="174.6" y2="15.6" stroke="#3a3f4b" stroke-width="2.92" 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>Overhead Triceps Stretch</title>
<path d="M 131.9 154.8 L 174.1 160.9 L 202.3 155.1 L 160.0 148.9 Z" fill="none" stroke="#b9bec9" stroke-width="2.19" stroke-linejoin="round"/>
<path id="leg_l" d="M 166.6 88.2 L 169.0 121.2 L 161.5 148.8 L 169.1 151.0" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 156.7 88.4 L 157.2 121.5 L 158.5 150.1 L 151.0 151.0" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 175.2 27.8 L 181.5 8.3 L 162.9 2.0" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 175.2 27.8 L 166.8 26.4 L 161.8 26.1" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 166.6 88.2 L 160.0 87.8 L 156.7 88.4" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 87.8 Q 161.8 56.4 166.8 26.4" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 161.8 26.1 L 164.6 5.3 L 154.1 20.2" stroke="#0d9488" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="171.5" cy="12.9" r="7.3" fill="white" stroke="#3a3f4b" stroke-width="4.38"/>
<line id="nose" x1="178.3" y1="15.5" x2="182.1" y2="17.0" stroke="#3a3f4b" stroke-width="2.92" 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,42 @@
# Overhead Triceps Stretch
Reach one arm overhead and let the hand drop behind the neck, then use the
other hand to ease the elbow back. A simple way to lengthen the triceps and
open the underside of the shoulder between pressing sets.
- **Category:** Stretching
- **Type:** Static stretch (isometric hold)
- **Targets:** Triceps (back of the upper arm), lats, shoulder
- **Prescription:** Hold 30 s per side, easing the elbow back gently
- **Defaults:** 2 × 30 s
## Setup
Stand tall with the feet hip-width. Raise one arm overhead and bend the elbow
so the hand drops down behind the neck.
## Execution
1. Reach the free hand up and rest it on the raised elbow.
2. Draw the elbow gently back and toward the midline until the triceps
lengthens.
3. Let the trunk lean a touch away from the raised arm to deepen the stretch.
4. Hold and breathe, then release and switch arms.
## Cues
- Ease the elbow back, not down — coax it, never wrench it.
- Keep the ribs from flaring by drawing them softly down.
- Lengthen tall through the spine before adding the side lean.
## Common Mistakes
- Cranking the head forward to meet the arm instead of dropping the hand behind.
- Flaring the ribs and arching the low back to fake more range.
- Shrugging the working shoulder up toward the ear.
## Progression
Walk the hand further down the spine → add a gentle side bend away from the
raised arm → hold a strap between the top and bottom hands to link both
shoulders.
@@ -0,0 +1,31 @@
{
"name": "Overhead Triceps Stretch",
"primary": 2,
"camera": {"yaw": 40, "zoom": 0.73},
"working": ["arm_r"],
"frames": [
{
"hold": 2.2, "tween": 1.8,
"root": {"pos": [160, 64], "pitch": 2},
"spine": [0, 0],
"neck": 8, "head": -6,
"shoulder_r": {"flexion": 143, "abduction": 10}, "elbow_r": 98,
"shoulder_l": {"flexion": 130, "abduction": 6}, "elbow_l": 44,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [158, 150], "foot_l": [162, 150]}
},
{
"hold": 2.4, "tween": 1.8,
"root": {"pos": [160, 64], "pitch": 2},
"spine": [{"lateral": -5}, {"lateral": -5}],
"neck": 14, "head": -6,
"shoulder_r": {"flexion": 172, "abduction": 10}, "elbow_r": 150,
"shoulder_l": {"flexion": 158, "abduction": -6}, "elbow_l": 70,
"hip_r": 2, "knee_r": 2, "ankle_r": 0,
"hip_l": 2, "knee_l": 2, "ankle_l": 0,
"pins": {"foot_r": [158, 150], "foot_l": [162, 150],
"hand_l": [164, -51]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Overhead Triceps Stretch</title>
<path d="M 131.9 154.8 L 174.1 160.9 L 202.3 155.1 L 160.0 148.9 Z" fill="none" stroke="#b9bec9" stroke-width="2.19" stroke-linejoin="round"/>
<path id="leg_l" d="M 166.6 88.2 L 169.0 121.2 L 161.5 148.8 L 169.1 151.0" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 156.7 88.4 L 157.2 121.5 L 158.5 150.1 L 151.0 151.0" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 175.2 27.8 L 181.5 8.3 L 162.9 2.0" stroke="#a9afba" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 175.2 27.8 L 166.8 26.4 L 161.8 26.1" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 166.6 88.2 L 160.0 87.8 L 156.7 88.4" stroke="#3a3f4b" stroke-width="3.65" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 87.8 Q 161.8 56.4 166.8 26.4" stroke="#3a3f4b" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 161.8 26.1 L 164.6 5.3 L 154.1 20.2" stroke="#0d9488" stroke-width="4.38" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="171.5" cy="12.9" r="7.3" fill="white" stroke="#3a3f4b" stroke-width="4.38"/>
<line id="nose" x1="178.3" y1="15.5" x2="182.1" y2="17.0" stroke="#3a3f4b" stroke-width="2.92" 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>Standing Calf Raise</title>
<path d="M 147.7 157.5 L 178.5 157.5 L 178.5 150.2 L 147.7 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="#86cfc5" 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="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.2 31.9 L 166.9 52.5 L 169.9 73.0" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.2 31.9 L 162.1 31.8 L 162.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.1 60.4 162.1 31.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.1 33.2 L 162.8 53.8 L 165.7 74.3" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="163.1" cy="18.1" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="170.1" y1="18.1" x2="175.0" y2="18.1" 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>Standing Calf Raise</title>
<path d="M 147.7 157.4 L 178.5 157.4 L 178.5 150.1 L 147.7 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 84.6 L 168.9 116.0 L 161.4 142.6 L 164.8 149.3" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 85.0 L 165.6 116.2 L 158.6 142.9 L 162.1 149.6" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.2 25.6 L 166.9 46.2 L 169.9 66.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.2 25.6 L 162.1 25.5 L 162.1 26.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 84.6 L 160.0 84.1 L 160.0 85.0" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 84.1 Q 161.1 54.1 162.1 25.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.1 26.9 L 162.8 47.5 L 165.7 68.0" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="163.1" cy="11.8" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="170.1" y1="11.8" x2="175.0" y2="11.8" 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,40 @@
# Standing Calf Raise
Rise onto the balls of both feet, lifting the heels as high as they'll go,
then lower under control. The simplest way to train the calves and strengthen
the ankles — no equipment, just bodyweight and a slow tempo.
- **Category:** Mobility / warm-up
- **Type:** Bodyweight calf raise
- **Targets:** Gastrocnemius, soleus, ankle stability
- **Prescription:** 23 × 1520, slow up and down with a pause at the top
- **Defaults:** 3 × 15 bodyweight
## Setup
Stand tall with feet hip-width, weight even across both feet. Rest a hand on
a wall for balance if needed.
## Execution
1. Press through the balls of the feet and lift both heels as high as you can.
2. Pause for a beat at the top, standing tall on your toes.
3. Lower the heels slowly back to the floor under control.
4. Repeat for the set without bouncing off the bottom.
## Cues
- Push all the way up to a full stretch at the top of each rep.
- Keep the knees straight but soft, so the calves do the work.
- Lower slowly — the descent builds as much strength as the lift.
## Common Mistakes
- Short, bouncy reps that never reach a full heel lift.
- Rolling the weight to the outside of the feet.
- Bending the knees to bob up instead of driving through the ankles.
## Progression
Pause longer at the top, slow the lowering phase, then progress to single-leg
raises or add load with a dumbbell or a step for extra range.
@@ -0,0 +1,30 @@
{
"name": "Standing Calf Raise",
"primary": 2,
"camera": {"zoom": 0.7},
"working": ["leg_r", "leg_l"],
"frames": [
{
"hold": 0.3, "tween": 0.6,
"root": {"pos": [160, 64], "pitch": 2},
"spine": [0, 0],
"neck": 2, "head": -4,
"shoulder_r": 4, "elbow_r": 6,
"shoulder_l": 4, "elbow_l": 6,
"hip_r": 4, "knee_r": 4, "ankle_r": 0,
"hip_l": 4, "knee_l": 4, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
},
{
"hold": 0.4, "tween": 0.9,
"root": {"pos": [160, 55], "pitch": 2},
"spine": [0, 0],
"neck": 2, "head": -4,
"shoulder_r": 4, "elbow_r": 6,
"shoulder_l": 4, "elbow_l": 6,
"hip_r": 4, "knee_r": 3, "ankle_r": -48,
"hip_l": 4, "knee_l": 3, "ankle_l": -48,
"pins": {"foot_r": [158, 139], "foot_l": [162, 141]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Standing Calf Raise</title>
<path d="M 147.7 157.4 L 178.5 157.4 L 178.5 150.1 L 147.7 150.1 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 84.6 L 168.9 116.0 L 161.4 142.6 L 164.8 149.3" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 85.0 L 165.6 116.2 L 158.6 142.9 L 162.1 149.6" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 166.2 25.6 L 166.9 46.2 L 169.9 66.7" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 166.2 25.6 L 162.1 25.5 L 162.1 26.9" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 84.6 L 160.0 84.1 L 160.0 85.0" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 84.1 Q 161.1 54.1 162.1 25.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 162.1 26.9 L 162.8 47.5 L 165.7 68.0" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="163.1" cy="11.8" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="170.1" y1="11.8" x2="175.0" y2="11.8" 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>Standing Calf Stretch</title>
<path d="M 132.3 157.5 L 214.4 157.5 L 214.4 150.2 L 132.3 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="leg_l" d="M 164.1 92.3 L 158.5 123.5 L 147.4 148.9 L 154.9 150.6" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 92.7 L 169.7 122.9 L 179.0 148.9 L 171.5 150.6" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 182.5 36.1 L 184.0 56.8 L 199.1 71.1" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 182.5 36.1 L 178.4 36.1 L 178.4 37.4" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 164.1 92.3 L 160.0 91.8 L 160.0 92.7" stroke="#3a3f4b" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 91.8 Q 167.4 62.7 178.4 36.1" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 178.4 37.4 L 179.8 58.1 L 194.9 72.4" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="184.5" cy="23.7" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="191.2" y1="25.6" x2="195.9" y2="26.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: 1.9 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Standing Calf Stretch</title>
<path d="M 132.3 157.5 L 214.4 157.5 L 214.4 150.2 L 132.3 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 152.0 123.1 L 140.7 148.3 L 148.2 149.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 193.8 42.5 L 190.9 63.0 L 187.5 83.4" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 94.1 L 173.1 123.0 L 185.3 147.9 L 177.9 150.2" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 193.8 42.5 L 189.7 42.5 L 189.7 43.8" 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 172.5 65.7 189.7 42.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 189.7 43.8 L 187.1 64.4 L 184.0 84.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="199.0" cy="32.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="205.4" y1="35.2" x2="209.8" y2="37.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,41 @@
# Standing Calf Stretch
A staggered-stance lean that lengthens the back calf: press the rear heel into
the floor with the leg long while the front knee bends and the hips travel
forward. The classic wall or curb stretch, done anywhere.
- **Category:** Stretching
- **Type:** Static stretch (isometric hold)
- **Targets:** Calf (gastrocnemius, soleus), Achilles tendon
- **Prescription:** Hold 30 s per side, keeping the back heel pinned down
- **Defaults:** 2 × 30 s
## Setup
Stand in a split stance, one foot a stride behind the other, both toes pointing
forward. Rest the hands on the front thigh.
## Execution
1. Straighten the back leg and press its heel flat into the floor.
2. Bend the front knee and ease the hips forward until the back calf lengthens.
3. Keep the back knee straight and the rear foot pointing straight ahead.
4. Hold, breathing easily, then switch sides.
## Cues
- Drive the back heel down — the stretch lives in keeping it planted.
- Point the back toes forward, not turned out, to load the calf evenly.
- Move the hips forward for more; don't collapse the back knee.
## Common Mistakes
- Letting the back heel lift, which cuts off the stretch.
- Turning the back foot out to cheat more range.
- Rounding the back instead of hinging the hips forward.
## Progression
Bend the back knee slightly to shift the stretch to the lower soleus →
drop the back heel off a step or curb for a deeper range → hold longer as the
ankle mobility improves.
@@ -0,0 +1,31 @@
{
"name": "Standing Calf Stretch",
"primary": 2,
"camera": {"zoom": 0.7},
"working": ["leg_l"],
"frames": [
{
"hold": 2.2, "tween": 1.8,
"root": {"pos": [160, 66], "pitch": 12},
"spine": [4, 4],
"neck": 6, "head": -10,
"shoulder_r": 24, "elbow_r": 42,
"shoulder_l": 24, "elbow_l": 42,
"hip_r": 22, "knee_r": 22, "ankle_r": 6,
"knee_l": 2, "ankle_l": 10,
"pins": {"foot_r": [188, 150], "foot_l": [142, 150]}
},
{
"hold": 2.4, "tween": 1.8,
"root": {"pos": [160, 68], "pitch": 21},
"spine": [6, 6],
"neck": 9, "head": -17,
"shoulder_r": 40, "elbow_r": 34,
"shoulder_l": 40, "elbow_l": 34,
"hip_r": 44, "knee_r": 46, "ankle_r": 8,
"knee_l": 2, "ankle_l": 12,
"pins": {"foot_r": [198, 150], "foot_l": [132, 150],
"hand_r": [186, 110], "hand_l": [190, 112]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Standing Calf Stretch</title>
<path d="M 132.3 157.5 L 214.4 157.5 L 214.4 150.2 L 132.3 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 152.0 123.1 L 140.7 148.3 L 148.2 149.9" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 193.8 42.5 L 190.9 63.0 L 187.5 83.4" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 160.0 94.1 L 173.1 123.0 L 185.3 147.9 L 177.9 150.2" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 193.8 42.5 L 189.7 42.5 L 189.7 43.8" 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 172.5 65.7 189.7 42.5" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 189.7 43.8 L 187.1 64.4 L 184.0 84.8" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="199.0" cy="32.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="205.4" y1="35.2" x2="209.8" y2="37.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>Standing Forward Fold</title>
<path d="M 138.5 157.5 L 196.0 157.5 L 196.0 150.2 L 138.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 168.9 122.3 L 161.4 148.9 L 168.8 150.9" stroke="#86cfc5" 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="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 169.3 32.1 L 169.3 52.7 L 171.2 73.4" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 169.3 32.1 L 165.2 32.0 L 165.2 33.4" stroke="#0d9488" 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="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 160.0 90.4 Q 162.7 60.5 165.2 32.0" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 165.2 33.4 L 165.2 54.0 L 167.0 74.6" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="166.9" cy="18.3" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="173.9" y1="18.5" x2="178.8" y2="18.5" 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>Standing Forward Fold</title>
<path d="M 138.5 157.5 L 196.0 157.5 L 196.0 150.2 L 138.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="arm_l" d="M 183.3 143.0 L 178.2 163.0 L 162.1 149.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.0 92.3 L 150.1 123.7 L 161.4 148.9 L 153.9 150.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 183.3 143.0 L 179.2 142.9 L 179.2 144.3" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.0 92.3 L 150.9 91.8 L 150.9 92.7" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.9 91.8 Q 171.3 114.8 179.2 142.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 179.2 144.3 L 175.7 164.7 L 159.3 151.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.9 92.7 L 146.9 124.1 L 158.6 149.2 L 151.2 151.1" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="180.6" cy="156.6" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.3" y1="162.8" x2="175.0" y2="167.1" 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,39 @@
# Standing Forward Fold
Hinge at the hips and round down toward the toes, letting the head and arms
hang heavy while the back of the legs lengthens. A calming mobility drill that
decompresses the spine and opens the hamstrings and posterior chain.
- **Category:** Mobility / warm-up
- **Type:** Standing mobility
- **Targets:** Hamstrings, low back, posterior chain
- **Prescription:** 58 slow roll-downs, or hold the bottom 2030 seconds
- **Defaults:** 2 × 8 bodyweight
## Setup
Stand tall with feet hip-width, knees soft, arms relaxed at your sides.
## Execution
1. Hinge at the hips and begin folding forward, chin tucking toward the chest.
2. Round down one segment at a time, letting the arms and head hang heavy.
3. Fold as far as the hamstrings allow — hands drifting toward the floor.
4. Reverse slowly, stacking the spine back up to standing.
## Cues
- Let gravity do the work; keep the neck and shoulders loose.
- Soften the knees if the hamstrings clamp down.
- Feel a stretch, never a sharp pull in the low back.
## Common Mistakes
- Bouncing at the bottom to force more range.
- Locking the knees hard and straining the low back.
- Snapping back up instead of rolling through the spine.
## Progression
Deepen the fold as the hamstrings loosen, pause and breathe at the bottom, or
walk the hands toward the shins for a gentle assisted stretch.
@@ -0,0 +1,31 @@
{
"name": "Standing Forward Fold",
"primary": 2,
"camera": {"zoom": 0.7},
"working": ["leg_r", "leg_l", "spine"],
"frames": [
{
"hold": 0.4, "tween": 1.2,
"root": {"pos": [160, 64], "pitch": 5},
"spine": [0, 0],
"neck": 2, "head": -6,
"shoulder_r": 5, "elbow_r": 5,
"shoulder_l": 5, "elbow_l": 5,
"hip_r": 5, "knee_r": 6, "ankle_r": 0,
"hip_l": 5, "knee_l": 6, "ankle_l": 0,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150]}
},
{
"hold": 0.6, "tween": 1.2,
"root": {"pos": [147, 66], "pitch": 134},
"spine": [11, 13],
"neck": 16, "head": -56,
"shoulder_r": 90, "elbow_r": 6,
"shoulder_l": 90, "elbow_l": 6,
"hip_r": 34, "knee_r": 14, "ankle_r": 10,
"hip_l": 34, "knee_l": 14, "ankle_l": 10,
"pins": {"foot_r": [158, 148], "foot_l": [162, 150],
"hand_r": [159, 151], "hand_l": [163, 152]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Standing Forward Fold</title>
<path d="M 138.5 157.5 L 196.0 157.5 L 196.0 150.2 L 138.5 150.2 Z" fill="none" stroke="#b9bec9" stroke-width="2.1" stroke-linejoin="round"/>
<path id="arm_l" d="M 183.3 143.0 L 178.2 163.0 L 162.1 149.8" stroke="#a9afba" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 155.0 92.3 L 150.1 123.7 L 161.4 148.9 L 153.9 150.7" stroke="#86cfc5" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="girdle" d="M 183.3 143.0 L 179.2 142.9 L 179.2 144.3" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="pelvisBar" d="M 155.0 92.3 L 150.9 91.8 L 150.9 92.7" stroke="#0d9488" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 150.9 91.8 Q 171.3 114.8 179.2 142.9" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 179.2 144.3 L 175.7 164.7 L 159.3 151.7" stroke="#3a3f4b" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 150.9 92.7 L 146.9 124.1 L 158.6 149.2 L 151.2 151.1" stroke="#0d9488" stroke-width="4.2" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="180.6" cy="156.6" r="7.0" fill="white" stroke="#3a3f4b" stroke-width="4.2"/>
<line id="nose" x1="177.3" y1="162.8" x2="175.0" y2="167.1" 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

Some files were not shown because too many files have changed in this diff Show More