Author the machine exercise circuit with props and corrected hip machine motions
Fourteen Planet Fitness machine exercises join the rig library, each with authored motion, info page, and schematic equipment via the new props layer (scene shapes, cables, bars, pads) rendered in lockstep by render.py and the in-app figure renderer. Abductor and Adductor are authored face-on with the real seated machine motion — knees-bent legs swinging apart/together against knee pads — replacing the earlier middle-split depiction. The watch target now bundles the figure renderer and motion rigs too. Claude-Session: https://claude.ai/code/session_01LEoff8bXGBS83tK1c55Mf7
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
|
||||
<title>Rotary</title>
|
||||
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M 138.0 130.0 L 182.0 130.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 160.0 132.0 L 160.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 144.0 150.0 L 176.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_l" d="M 141.9 42.6 L 147.9 72.0 L 118.0 74.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_l" d="M 166.0 124.0 L 164.7 170.0 L 130.0 150.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="spine" d="M 160.0 122.0 Q 151.2 79.3 135.9 40.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_r" d="M 135.9 40.6 L 141.9 70.0 L 112.0 72.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_r" d="M 160.0 122.0 L 154.1 167.6 L 190.0 150.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 115.0 87.0 L 115.0 59.0" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle id="head" cx="129.4" cy="21.7" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
|
||||
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
|
||||
<line x1="242" y1="16" x2="258" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="264" y="20">R</text>
|
||||
<line x1="282" y1="16" x2="298" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="304" y="20">L</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
|
||||
<title>Rotary</title>
|
||||
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M 138.0 130.0 L 182.0 130.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 160.0 132.0 L 160.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 144.0 150.0 L 176.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_l" d="M 190.1 42.6 L 172.8 67.1 L 202.0 74.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_l" d="M 166.0 124.0 L 164.7 170.0 L 130.0 150.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="spine" d="M 160.0 122.0 Q 168.8 79.3 184.1 40.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_r" d="M 184.1 40.6 L 178.1 70.0 L 208.0 72.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_r" d="M 160.0 122.0 L 154.1 167.6 L 190.0 150.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 205.0 87.0 L 205.0 59.0" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle id="head" cx="190.6" cy="21.7" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
|
||||
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
|
||||
<line x1="242" y1="16" x2="258" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="264" y="20">R</text>
|
||||
<line x1="282" y1="16" x2="298" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="304" y="20">L</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,39 @@
|
||||
# Rotary
|
||||
|
||||
The rotary torso machine — controlled trunk rotation that isolates the
|
||||
obliques.
|
||||
|
||||
- **Category:** Main circuit
|
||||
- **Type:** Machine-based trunk rotation
|
||||
- **Targets:** Obliques, deep core
|
||||
- **Prescription:** 4 × 10
|
||||
|
||||
## Setup
|
||||
|
||||
Sit tall with your hips squared and locked against the pads. Rest your
|
||||
forearms on the pads and grip the handle in front of your chest so the trunk,
|
||||
not the arms, drives the machine.
|
||||
|
||||
## Execution
|
||||
|
||||
1. Rotate your torso to one side in a smooth, controlled arc, keeping your hips
|
||||
still.
|
||||
2. Pause at the end of the range without letting the weight pull you further.
|
||||
3. Return through center and rotate to the other side with the same control.
|
||||
|
||||
## Cues
|
||||
|
||||
- Twist from the waist — the obliques generate the movement, not the arms.
|
||||
- Keep the hips and pelvis pinned; only the trunk turns.
|
||||
- Move slowly; momentum steals the work from the obliques.
|
||||
|
||||
## Common Mistakes
|
||||
|
||||
- Throwing the weight with momentum instead of controlling the twist.
|
||||
- Pushing with the arms rather than rotating the trunk.
|
||||
- Letting the hips swing along with the torso.
|
||||
|
||||
## Progression
|
||||
|
||||
Add weight once both sides move with equal control; pause two seconds at full
|
||||
rotation to kill any momentum.
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Rotary",
|
||||
"primary": 1,
|
||||
"working": ["spine"],
|
||||
"hide": [],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[138, 130], [182, 130]], "w": 8},
|
||||
{"kind": "line", "pts": [[160, 132], [160, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[144, 150], [176, 150]], "w": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 14}
|
||||
],
|
||||
"frames": [
|
||||
{
|
||||
"hold": 0.4, "tween": 1.0,
|
||||
"root": [160, 122],
|
||||
"spine": [104, 109], "neck": 109,
|
||||
"arm_r": [-50, -85], "arm_l": [-55, -90],
|
||||
"leg_r": [-62, -82], "leg_l": [-118, -98],
|
||||
"pins": {"hand_r": [112, 72], "hand_l": [118, 74], "foot_r": [190, 150], "foot_l": [130, 150]}
|
||||
},
|
||||
{
|
||||
"hold": 0.4, "tween": 1.0,
|
||||
"root": [160, 122],
|
||||
"spine": [76, 71], "neck": 71,
|
||||
"arm_r": [-125, -95], "arm_l": [-130, -90],
|
||||
"leg_r": [-62, -82], "leg_l": [-118, -98],
|
||||
"pins": {"hand_r": [208, 72], "hand_l": [202, 74], "foot_r": [190, 150], "foot_l": [130, 150]}
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 172 KiB |
@@ -0,0 +1,20 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
|
||||
<title>Rotary</title>
|
||||
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
|
||||
<path d="M 138.0 130.0 L 182.0 130.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 160.0 132.0 L 160.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 144.0 150.0 L 176.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_l" d="M 141.9 42.6 L 147.9 72.0 L 118.0 74.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_l" d="M 166.0 124.0 L 164.7 170.0 L 130.0 150.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="spine" d="M 160.0 122.0 Q 151.2 79.3 135.9 40.6" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="arm_r" d="M 135.9 40.6 L 141.9 70.0 L 112.0 72.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path id="leg_r" d="M 160.0 122.0 L 154.1 167.6 L 190.0 150.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 115.0 87.0 L 115.0 59.0" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle id="head" cx="129.4" cy="21.7" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
|
||||
<g font-family="-apple-system, Helvetica, sans-serif" font-size="11" fill="#6b7180">
|
||||
<line x1="242" y1="16" x2="258" y2="16" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="264" y="20">R</text>
|
||||
<line x1="282" y1="16" x2="298" y2="16" stroke="#a9afba" stroke-width="4" stroke-linecap="round"/>
|
||||
<text x="304" y="20">L</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
Reference in New Issue
Block a user