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
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Tricep Press</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 116.0 134.0 L 92.0 42.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 108.0 135.0 L 146.0 135.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 124.0 137.0 L 124.0 151.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 110.0 151.0 L 140.0 151.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.7 42.1 L 116.9 71.4 L 142.9 56.4" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 124.0 126.0 L 168.1 112.8 L 160.0 152.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 118.0 124.0 Q 109.7 81.3 104.7 40.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 104.7 40.1 L 110.9 69.4 L 136.9 54.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 118.0 124.0 L 162.3 111.5 L 156.0 151.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 139.9 61.4 L 139.9 49.4" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="106.1" cy="20.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="116.0" y1="19.1" x2="123.0" y2="18.3" 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.1 KiB

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Tricep Press</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 116.0 134.0 L 92.0 42.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 108.0 135.0 L 146.0 135.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 124.0 137.0 L 124.0 151.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 110.0 151.0 L 140.0 151.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.7 42.1 L 116.9 71.4 L 118.0 101.4" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 124.0 126.0 L 168.1 112.8 L 160.0 152.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 118.0 124.0 Q 109.7 81.3 104.7 40.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 104.7 40.1 L 110.9 69.4 L 112.0 99.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 118.0 124.0 L 162.3 111.5 L 156.0 151.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 115.0 106.4 L 115.0 94.4" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="106.1" cy="20.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="116.0" y1="19.1" x2="123.0" y2="18.3" 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.1 KiB

+39
View File
@@ -0,0 +1,39 @@
# Tricep Press
The seated press-down — elbows pinned to the sides, driving the handles from the
chest to full extension.
- **Category:** Main circuit
- **Type:** Machine-based elbow extension
- **Targets:** Triceps brachii
## Setup
Sit tall with your back on the pad and your upper arms tucked close to your
sides. Take the handles at chest height with your elbows bent to about a right
angle.
## Execution
1. Press the handles down by straightening your elbows, keeping your upper arms
still against your sides.
2. Extend fully without snapping the elbows, pausing briefly at the bottom.
3. Let the handles rise back to chest height under control, elbows staying
tucked.
## Cues
- Only the forearms move — the upper arms stay glued to the torso.
- Keep the motion controlled; don't fling the handles down.
- Squeeze the triceps at the bottom rather than leaning your weight in.
## Common Mistakes
- Flaring the elbows out away from the sides.
- Using the shoulders or bodyweight to drive the handles down.
- Cutting the extension short and never reaching full lockout.
## Progression
Add weight in small increments once all four sets of ten are clean; slow the
lowering phase to three seconds to add time under tension for the triceps.
+33
View File
@@ -0,0 +1,33 @@
{
"name": "Tricep Press",
"primary": 2,
"working": ["arm_r", "arm_l"],
"hide": [],
"props": [
{"type": "scene", "shapes": [
{"kind": "line", "pts": [[116, 134], [92, 42]], "w": 8},
{"kind": "line", "pts": [[108, 135], [146, 135]], "w": 8},
{"kind": "line", "pts": [[124, 137], [124, 151]], "w": 5},
{"kind": "line", "pts": [[110, 151], [140, 151]], "w": 4}
]},
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 6}
],
"frames": [
{
"hold": 0.4, "tween": 1.1,
"root": [118, 124],
"spine": [100, 98], "neck": 86, "gaze": 6,
"arm_r": [-78, 30], "arm_l": [-78, 30],
"leg_r": [-24, -74], "leg_l": [-24, -74],
"pins": {"foot_r": [156, 151], "foot_l": [160, 152]}
},
{
"hold": 0.4, "tween": 1.1,
"root": [118, 124],
"spine": [100, 98], "neck": 86, "gaze": 6,
"arm_r": [-78, -88], "arm_l": [-78, -88],
"leg_r": [-24, -74], "leg_l": [-24, -74],
"pins": {"foot_r": [156, 151], "foot_l": [160, 152]}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

+22
View File
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 180" fill="none">
<title>Tricep Press</title>
<line x1="16" y1="156" x2="304" y2="156" stroke="#b9bec9" stroke-width="3" stroke-linecap="round"/>
<path d="M 116.0 134.0 L 92.0 42.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 108.0 135.0 L 146.0 135.0" stroke="#c5cad4" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 124.0 137.0 L 124.0 151.0" stroke="#c5cad4" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 110.0 151.0 L 140.0 151.0" stroke="#c5cad4" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_l" d="M 110.7 42.1 L 116.9 71.4 L 118.0 101.4" stroke="#86cfc5" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_l" d="M 124.0 126.0 L 168.1 112.8 L 160.0 152.0" stroke="#a9afba" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path id="spine" d="M 118.0 124.0 Q 109.7 81.3 104.7 40.1" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="arm_r" d="M 104.7 40.1 L 110.9 69.4 L 112.0 99.4" stroke="#0d9488" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path id="leg_r" d="M 118.0 124.0 L 162.3 111.5 L 156.0 151.0" stroke="#3a3f4b" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M 115.0 106.4 L 115.0 94.4" stroke="#6b7180" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
<circle id="head" cx="106.1" cy="20.1" r="10" fill="white" stroke="#3a3f4b" stroke-width="6"/>
<line id="nose" x1="116.0" y1="19.1" x2="123.0" y2="18.3" 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.1 KiB