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:
2026-07-06 16:29:31 -04:00
parent 888852cc2e
commit fce8fa4c17
130 changed files with 4116 additions and 82 deletions
+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Calfs</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 124.0 126.0 L 158.0 124.0" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 138.0 128.0 L 138.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 120.0 150.0 L 156.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="198" y="147" width="34" height="6" rx="1" fill="#c5cad4"/>
<path d="M 183.0 62.0 L 183.0 124.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="170" y="121" width="27" height="7" rx="2" fill="#c5cad4"/>
<path d="M 164.0 76.0 L 183.0 76.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 134.1 35.9 L 162.0 47.1 L 170.0 76.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 146.0 120.0 L 192.0 118.0 L 216.0 150.0" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 140.0 118.0 Q 131.0 75.4 128.1 33.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 128.1 33.9 L 155.7 45.8 L 166.0 74.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 140.0 118.0 L 186.0 117.6 L 212.0 148.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 207.2 150.8 L 220.8 147.2" stroke="#6b7180" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="131.6" cy="14.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="141.5" y1="15.9" x2="148.4" y2="17.1" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<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: 2.3 KiB

+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Calfs</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 124.0 126.0 L 158.0 124.0" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 138.0 128.0 L 138.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 120.0 150.0 L 156.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="198" y="147" width="34" height="6" rx="1" fill="#c5cad4"/>
<path d="M 183.0 62.0 L 183.0 124.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="170" y="121" width="27" height="7" rx="2" fill="#c5cad4"/>
<path d="M 164.0 76.0 L 183.0 76.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 134.1 35.9 L 162.0 47.1 L 170.0 76.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 146.0 120.0 L 190.9 109.9 L 216.0 141.0" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 140.0 118.0 Q 131.0 75.4 128.1 33.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 128.1 33.9 L 155.7 45.8 L 166.0 74.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 140.0 118.0 L 185.2 109.3 L 212.0 139.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 207.2 141.8 L 220.8 138.2" stroke="#6b7180" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="131.6" cy="14.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="141.5" y1="15.9" x2="148.4" y2="17.1" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<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: 2.3 KiB

+40
View File
@@ -0,0 +1,40 @@
# Calfs
Seated heel raises through a full range — a deep stretch below the platform and
a hard squeeze at the top.
- **Category:** Main circuit
- **Type:** Machine-based calf raise
- **Targets:** Soleus, gastrocnemius
- **Prescription:** 4 × 10
## Setup
Sit with the balls of your feet on the platform, heels hanging off the back
edge, and the pad snug on your lower thighs just above the knees. Hold the pad
handles lightly.
## Execution
1. Raise your heels by contracting your calves, pressing up onto the balls of
your feet against the pad.
2. Pause at the top with the calves fully shortened.
3. Slowly lower your heels below the platform level for a full stretch.
## Cues
- Chase the full range — a hard squeeze up top, a deep stretch at the bottom.
- Drive through the balls of the feet, not the toes.
- Control the tempo; the stretch under the platform is where the work is.
## Common Mistakes
- Bouncing through short, choppy reps instead of the full range.
- Rocking the weight up with the hips instead of the calves.
- Rushing the lowering and skipping the bottom stretch.
## Progression
Add weight in small increments once all four sets of ten are controlled;
single-leg raises and paused reps at the stretched bottom build the hardest end
of the range.
+36
View File
@@ -0,0 +1,36 @@
{
"name": "Calfs",
"primary": 2,
"working": ["leg_r", "leg_l"],
"hide": [],
"props": [
{"type": "scene", "shapes": [
{"kind": "line", "pts": [[124, 126], [158, 124]], "w": 9},
{"kind": "line", "pts": [[138, 128], [138, 150]], "w": 5},
{"kind": "line", "pts": [[120, 150], [156, 150]], "w": 5},
{"kind": "rect", "x": 198, "y": 147, "w": 34, "h": 6, "r": 1},
{"kind": "line", "pts": [[183, 62], [183, 124]], "w": 4},
{"kind": "rect", "x": 170, "y": 121, "w": 27, "h": 7, "r": 2},
{"kind": "line", "pts": [[164, 76], [183, 76]], "w": 3, "color": "prop"}
]},
{"type": "pad", "at": ["foot_r", "foot_l"], "angle": 15, "halfLen": 7, "w": 5}
],
"frames": [
{
"hold": 0.4, "tween": 0.9,
"root": [140, 118],
"spine": [100, 96], "neck": 80, "gaze": -10,
"arm_r": [-40, -15], "arm_l": [-40, -15],
"leg_r": [-18, -8], "leg_l": [-18, -8],
"pins": {"hand_r": [166, 74], "hand_l": [170, 76], "foot_r": [212, 148], "foot_l": [216, 150]}
},
{
"hold": 0.4, "tween": 1.2,
"root": [140, 118],
"spine": [100, 96], "neck": 80, "gaze": -10,
"arm_r": [-40, -15], "arm_l": [-40, -15],
"leg_r": [-14, 4], "leg_l": [-14, 4],
"pins": {"hand_r": [166, 74], "hand_l": [170, 76], "foot_r": [212, 139], "foot_l": [216, 141]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Calfs</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 124.0 126.0 L 158.0 124.0" stroke="#c5cad4" stroke-width="9" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 138.0 128.0 L 138.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 120.0 150.0 L 156.0 150.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="198" y="147" width="34" height="6" rx="1" fill="#c5cad4"/>
<path d="M 183.0 62.0 L 183.0 124.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="170" y="121" width="27" height="7" rx="2" fill="#c5cad4"/>
<path d="M 164.0 76.0 L 183.0 76.0" stroke="#6b7180" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 134.1 35.9 L 162.0 47.1 L 170.0 76.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 146.0 120.0 L 190.9 109.9 L 216.0 141.0" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 140.0 118.0 Q 131.0 75.4 128.1 33.9" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 128.1 33.9 L 155.7 45.8 L 166.0 74.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 140.0 118.0 L 185.2 109.3 L 212.0 139.0" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 207.2 141.8 L 220.8 138.2" stroke="#6b7180" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="131.6" cy="14.2" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="141.5" y1="15.9" x2="148.4" y2="17.1" stroke="#3a3f4b" stroke-width="4" stroke-linecap="round"/>
<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: 2.3 KiB