diff --git a/Exercise Library/Face Pull/frames/frame-1.svg b/Exercise Library/Face Pull/frames/frame-1.svg
new file mode 100644
index 0000000..35a28c5
--- /dev/null
+++ b/Exercise Library/Face Pull/frames/frame-1.svg
@@ -0,0 +1,21 @@
+
diff --git a/Exercise Library/Face Pull/frames/frame-2.svg b/Exercise Library/Face Pull/frames/frame-2.svg
new file mode 100644
index 0000000..835b639
--- /dev/null
+++ b/Exercise Library/Face Pull/frames/frame-2.svg
@@ -0,0 +1,21 @@
+
diff --git a/Exercise Library/Face Pull/info.md b/Exercise Library/Face Pull/info.md
new file mode 100644
index 0000000..2faf668
--- /dev/null
+++ b/Exercise Library/Face Pull/info.md
@@ -0,0 +1,39 @@
+# Face Pull
+
+The cable pull to the face — elbows high and wide, rope to the bridge of
+the nose. Small weight, big shoulders-health payoff.
+
+- **Category:** Main circuit
+- **Type:** Machine-based cable pull (rear delts)
+- **Targets:** Rear delts, mid-back, rotator cuff
+- **Prescription:** 3 × 12–15, light
+
+## Setup
+
+Set a rope attachment at face height (or slightly above). Grip with
+thumbs toward you, step back until the arms are straight, and stand
+tall with a slight stagger if needed.
+
+## Execution
+
+1. Pull the rope straight toward the bridge of your nose.
+2. Elbows travel high and wide; at the end the knuckles point back
+ beside the ears.
+3. Pause, then let the arms straighten slowly forward.
+
+## Cues
+
+- Elbows lead and stay at shoulder height the whole pull.
+- Pull the rope apart as it reaches the face.
+- Ribs down; the trunk doesn't lean back to finish the rep.
+
+## Common Mistakes
+
+- Turning it into a row with elbows dropping to the ribs.
+- Too much weight — the shoulders shrug and the trunk sways.
+- Anchor set too low, dragging the pull toward the chest.
+
+## Progression
+
+Add reps and pause length before weight; the Rear Delt Fly machine
+covers the same muscles with chest support.
diff --git a/Exercise Library/Face Pull/motion.json b/Exercise Library/Face Pull/motion.json
new file mode 100644
index 0000000..27aa81a
--- /dev/null
+++ b/Exercise Library/Face Pull/motion.json
@@ -0,0 +1,38 @@
+{
+ "name": "Face Pull",
+ "primary": 2,
+ "camera": {"zoom": 0.7},
+ "working": ["arm_r", "arm_l"],
+ "props": [
+ {"type": "scene", "shapes": [
+ {"kind": "circle", "c": [242, -30], "r": 4, "fill": true, "color": "prop"}
+ ]},
+ {"type": "cable", "from": [242, -30], "to": ["hand_r", "hand_l"], "w": 3}
+ ],
+ "frames": [
+ {
+ "hold": 0.4, "tween": 1.0,
+ "root": {"pos": [150, 66], "pitch": 5},
+ "spine": [0, 2],
+ "neck": 4, "head": -6,
+ "shoulder_r": 95, "elbow_r": 10,
+ "shoulder_l": 95, "elbow_l": 10,
+ "hip_r": 6, "knee_r": 8, "ankle_r": 0,
+ "hip_l": 6, "knee_l": 8, "ankle_l": 0,
+ "pins": {"foot_r": [146, 148], "foot_l": [150, 150],
+ "hand_r": [214, -24], "hand_l": [218, -22]}
+ },
+ {
+ "hold": 0.5, "tween": 1.1,
+ "root": {"pos": [150, 66], "pitch": 5},
+ "spine": [0, 2],
+ "neck": 4, "head": -6,
+ "shoulder_r": {"flexion": 95, "abduction": 15}, "elbow_r": 140,
+ "shoulder_l": {"flexion": 95, "abduction": 15}, "elbow_l": 140,
+ "hip_r": 6, "knee_r": 8, "ankle_r": 0,
+ "hip_l": 6, "knee_l": 8, "ankle_l": 0,
+ "pins": {"foot_r": [146, 148], "foot_l": [150, 150],
+ "hand_r": [170, -26], "hand_l": [174, -24]}
+ }
+ ]
+}
diff --git a/Exercise Library/Face Pull/preview.gif b/Exercise Library/Face Pull/preview.gif
new file mode 100644
index 0000000..0e76e7e
Binary files /dev/null and b/Exercise Library/Face Pull/preview.gif differ
diff --git a/Exercise Library/Face Pull/visual.svg b/Exercise Library/Face Pull/visual.svg
new file mode 100644
index 0000000..835b639
--- /dev/null
+++ b/Exercise Library/Face Pull/visual.svg
@@ -0,0 +1,21 @@
+
diff --git a/Exercise Library/Pec Deck/frames/frame-1.svg b/Exercise Library/Pec Deck/frames/frame-1.svg
new file mode 100644
index 0000000..deffb12
--- /dev/null
+++ b/Exercise Library/Pec Deck/frames/frame-1.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Pec Deck/frames/frame-2.svg b/Exercise Library/Pec Deck/frames/frame-2.svg
new file mode 100644
index 0000000..a73199a
--- /dev/null
+++ b/Exercise Library/Pec Deck/frames/frame-2.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Pec Deck/info.md b/Exercise Library/Pec Deck/info.md
new file mode 100644
index 0000000..20854fa
--- /dev/null
+++ b/Exercise Library/Pec Deck/info.md
@@ -0,0 +1,40 @@
+# Pec Deck
+
+The machine chest fly — arms sweep together in front of the chest along
+the machine's fixed arc.
+
+- **Category:** Main circuit
+- **Type:** Machine-based chest fly
+- **Targets:** Chest, front delts
+- **Prescription:** 4 × 10
+
+## Setup
+
+Adjust the seat so the handles sit at chest height with your upper arms
+level. Back flat on the pad, feet planted, a soft bend fixed in the
+elbows.
+
+## Execution
+
+1. Sweep both arms together in a wide arc until the handles meet in
+ front of the chest.
+2. Squeeze the chest hard for a beat at the middle.
+3. Open back up with control until you feel a full chest stretch.
+
+## Cues
+
+- Elbow angle never changes — the chest swings the arms.
+- Shoulders stay back against the pad; they don't roll forward at the
+ squeeze.
+- Slow the return; the stretch half of the rep counts.
+
+## Common Mistakes
+
+- Setting the seat so low the handles sit at the shoulders.
+- Shoulders rounding forward to chase extra range.
+- Letting the stack yank the arms open.
+
+## Progression
+
+Add a plate once every rep meets in the middle with a one-second
+squeeze; the Dumbbell Fly trades the guided path for free control.
diff --git a/Exercise Library/Pec Deck/motion.json b/Exercise Library/Pec Deck/motion.json
new file mode 100644
index 0000000..014c199
--- /dev/null
+++ b/Exercise Library/Pec Deck/motion.json
@@ -0,0 +1,37 @@
+{
+ "name": "Pec Deck",
+ "primary": 2,
+ "camera": {"yaw": 90},
+ "working": ["arm_r", "arm_l"],
+ "props": [
+ {"type": "scene", "shapes": [
+ {"kind": "line", "pts": [[160, 64], [160, 120]], "w": 16, "z": -14, "depth": 6},
+ {"kind": "line", "pts": [[135, 131], [185, 131]], "w": 10, "depth": 12},
+ {"kind": "line", "pts": [[160, 136], [160, 150]], "w": 6}
+ ]},
+ {"type": "pad", "at": "hand_r", "angle": 90, "halfLen": 9, "w": 5},
+ {"type": "pad", "at": "hand_l", "angle": 90, "halfLen": 9, "w": 5}
+ ],
+ "frames": [
+ {
+ "hold": 0.5, "tween": 1.1,
+ "root": {"pos": [160, 116]},
+ "spine": [0, 0],
+ "neck": 0,
+ "shoulder_r": {"flexion": 18, "abduction": 82}, "elbow_r": 25,
+ "shoulder_l": {"flexion": 18, "abduction": 82}, "elbow_l": 25,
+ "hip_r": 78, "knee_r": 62,
+ "hip_l": 78, "knee_l": 62
+ },
+ {
+ "hold": 0.5, "tween": 1.2,
+ "root": {"pos": [160, 116]},
+ "spine": [0, 0],
+ "neck": 0,
+ "shoulder_r": {"flexion": 86, "abduction": 6}, "elbow_r": 25,
+ "shoulder_l": {"flexion": 86, "abduction": 6}, "elbow_l": 25,
+ "hip_r": 78, "knee_r": 62,
+ "hip_l": 78, "knee_l": 62
+ }
+ ]
+}
diff --git a/Exercise Library/Pec Deck/preview.gif b/Exercise Library/Pec Deck/preview.gif
new file mode 100644
index 0000000..0b7158d
Binary files /dev/null and b/Exercise Library/Pec Deck/preview.gif differ
diff --git a/Exercise Library/Pec Deck/visual.svg b/Exercise Library/Pec Deck/visual.svg
new file mode 100644
index 0000000..a73199a
--- /dev/null
+++ b/Exercise Library/Pec Deck/visual.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Rear Delt Fly/frames/frame-1.svg b/Exercise Library/Rear Delt Fly/frames/frame-1.svg
new file mode 100644
index 0000000..dd01694
--- /dev/null
+++ b/Exercise Library/Rear Delt Fly/frames/frame-1.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Rear Delt Fly/frames/frame-2.svg b/Exercise Library/Rear Delt Fly/frames/frame-2.svg
new file mode 100644
index 0000000..ae8c297
--- /dev/null
+++ b/Exercise Library/Rear Delt Fly/frames/frame-2.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Rear Delt Fly/info.md b/Exercise Library/Rear Delt Fly/info.md
new file mode 100644
index 0000000..38e6ecf
--- /dev/null
+++ b/Exercise Library/Rear Delt Fly/info.md
@@ -0,0 +1,38 @@
+# Rear Delt Fly
+
+The reverse pec deck — facing the pad, arms sweep from the front out
+wide and back, hitting what pressing never touches.
+
+- **Category:** Main circuit
+- **Type:** Machine-based reverse fly
+- **Targets:** Rear delts, mid-back
+- **Prescription:** 3 × 12–15, light
+
+## Setup
+
+Set the handles to the rear-fly position and sit facing the pad, chest
+supported, handles together in front at shoulder height, arms long with
+soft elbows.
+
+## Execution
+
+1. Sweep both arms out and back as far as the shoulder blades allow.
+2. Pause with the arms wide, squeezing between the shoulder blades.
+3. Return forward under control without the stack touching down.
+
+## Cues
+
+- Lead with the knuckles, arms long — it's a sweep, not a row.
+- Chest glued to the pad; no leaning back for leverage.
+- Light weight, full arc — momentum defeats the rear delts instantly.
+
+## Common Mistakes
+
+- Bending the elbows into a rowing motion.
+- Loading too heavy and shortening the arc.
+- Shrugging the traps into the sweep.
+
+## Progression
+
+More reps and a longer pause out wide before more weight; the Face Pull
+covers the same territory from the cable stack.
diff --git a/Exercise Library/Rear Delt Fly/motion.json b/Exercise Library/Rear Delt Fly/motion.json
new file mode 100644
index 0000000..5855500
--- /dev/null
+++ b/Exercise Library/Rear Delt Fly/motion.json
@@ -0,0 +1,37 @@
+{
+ "name": "Rear Delt Fly",
+ "primary": 2,
+ "camera": {"yaw": 270},
+ "working": ["arm_r", "arm_l"],
+ "props": [
+ {"type": "scene", "shapes": [
+ {"kind": "line", "pts": [[160, 64], [160, 120]], "w": 16, "z": -14, "depth": 6},
+ {"kind": "line", "pts": [[135, 131], [185, 131]], "w": 10, "depth": 12},
+ {"kind": "line", "pts": [[160, 136], [160, 150]], "w": 6}
+ ]},
+ {"type": "pad", "at": "hand_r", "angle": 90, "halfLen": 9, "w": 5},
+ {"type": "pad", "at": "hand_l", "angle": 90, "halfLen": 9, "w": 5}
+ ],
+ "frames": [
+ {
+ "hold": 0.5, "tween": 1.1,
+ "root": {"pos": [160, 116]},
+ "spine": [0, 0],
+ "neck": 0,
+ "shoulder_r": {"flexion": 85, "abduction": 6}, "elbow_r": 15,
+ "shoulder_l": {"flexion": 85, "abduction": 6}, "elbow_l": 15,
+ "hip_r": 78, "knee_r": 62,
+ "hip_l": 78, "knee_l": 62
+ },
+ {
+ "hold": 0.5, "tween": 1.2,
+ "root": {"pos": [160, 116]},
+ "spine": [0, 0],
+ "neck": 0,
+ "shoulder_r": {"flexion": 12, "abduction": 84}, "elbow_r": 15,
+ "shoulder_l": {"flexion": 12, "abduction": 84}, "elbow_l": 15,
+ "hip_r": 78, "knee_r": 62,
+ "hip_l": 78, "knee_l": 62
+ }
+ ]
+}
diff --git a/Exercise Library/Rear Delt Fly/preview.gif b/Exercise Library/Rear Delt Fly/preview.gif
new file mode 100644
index 0000000..65cd978
Binary files /dev/null and b/Exercise Library/Rear Delt Fly/preview.gif differ
diff --git a/Exercise Library/Rear Delt Fly/visual.svg b/Exercise Library/Rear Delt Fly/visual.svg
new file mode 100644
index 0000000..ae8c297
--- /dev/null
+++ b/Exercise Library/Rear Delt Fly/visual.svg
@@ -0,0 +1,23 @@
+
diff --git a/Exercise Library/Triceps Pushdown/frames/frame-1.svg b/Exercise Library/Triceps Pushdown/frames/frame-1.svg
new file mode 100644
index 0000000..015af3b
--- /dev/null
+++ b/Exercise Library/Triceps Pushdown/frames/frame-1.svg
@@ -0,0 +1,22 @@
+
diff --git a/Exercise Library/Triceps Pushdown/frames/frame-2.svg b/Exercise Library/Triceps Pushdown/frames/frame-2.svg
new file mode 100644
index 0000000..56a36ca
--- /dev/null
+++ b/Exercise Library/Triceps Pushdown/frames/frame-2.svg
@@ -0,0 +1,22 @@
+
diff --git a/Exercise Library/Triceps Pushdown/info.md b/Exercise Library/Triceps Pushdown/info.md
new file mode 100644
index 0000000..5311ab7
--- /dev/null
+++ b/Exercise Library/Triceps Pushdown/info.md
@@ -0,0 +1,39 @@
+# Triceps Pushdown
+
+The cable triceps staple — elbows pinned to the sides, push the bar from
+chest height down to straight arms.
+
+- **Category:** Main circuit
+- **Type:** Machine-based cable elbow extension
+- **Targets:** Triceps
+- **Prescription:** 3 × 10–12
+
+## Setup
+
+Stand at the high pulley with a bar or rope attachment, feet under the
+hips, slight forward lean. Grip with the elbows bent past 90° and tucked
+to the ribs.
+
+## Execution
+
+1. Push the handle down until the arms are completely straight.
+2. Squeeze the triceps at the bottom for a beat.
+3. Let the forearms ride back up until they pass 90°, elbows never
+ leaving the sides.
+
+## Cues
+
+- Elbows are bolted to the ribs — only the forearms move.
+- Stand tall-ish; don't lean your bodyweight onto the bar.
+- Full lockout every rep; the last few degrees are the exercise.
+
+## Common Mistakes
+
+- Elbows drifting forward and up on the way down.
+- Shoulders and back pressing the weight instead of the triceps.
+- Cutting the top of the rep short.
+
+## Progression
+
+Add a plate when every rep locks out with quiet elbows; a rope
+attachment adds a harder finish at the bottom.
diff --git a/Exercise Library/Triceps Pushdown/motion.json b/Exercise Library/Triceps Pushdown/motion.json
new file mode 100644
index 0000000..4f8f85f
--- /dev/null
+++ b/Exercise Library/Triceps Pushdown/motion.json
@@ -0,0 +1,39 @@
+{
+ "name": "Triceps Pushdown",
+ "primary": 2,
+ "camera": {"zoom": 0.7},
+ "working": ["arm_r", "arm_l"],
+ "props": [
+ {"type": "scene", "shapes": [
+ {"kind": "circle", "c": [186, -58], "r": 4, "fill": true, "color": "prop"}
+ ]},
+ {"type": "cable", "from": [186, -58], "to": ["hand_r", "hand_l"], "w": 3},
+ {"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 10}
+ ],
+ "frames": [
+ {
+ "hold": 0.4, "tween": 1.0,
+ "root": {"pos": [150, 66], "pitch": 8},
+ "spine": [0, 2],
+ "neck": 6, "head": -8,
+ "shoulder_r": 15, "elbow_r": 130,
+ "shoulder_l": 15, "elbow_l": 130,
+ "hip_r": 6, "knee_r": 5, "ankle_r": 0,
+ "hip_l": 6, "knee_l": 5, "ankle_l": 0,
+ "pins": {"foot_r": [146, 148], "foot_l": [150, 150],
+ "hand_r": [172, -10], "hand_l": [176, -8]}
+ },
+ {
+ "hold": 0.4, "tween": 1.1,
+ "root": {"pos": [150, 66], "pitch": 8},
+ "spine": [0, 2],
+ "neck": 6, "head": -8,
+ "shoulder_r": 8, "elbow_r": 10,
+ "shoulder_l": 8, "elbow_l": 10,
+ "hip_r": 6, "knee_r": 5, "ankle_r": 0,
+ "hip_l": 6, "knee_l": 5, "ankle_l": 0,
+ "pins": {"foot_r": [146, 148], "foot_l": [150, 150],
+ "hand_r": [168, 40], "hand_l": [172, 42]}
+ }
+ ]
+}
diff --git a/Exercise Library/Triceps Pushdown/preview.gif b/Exercise Library/Triceps Pushdown/preview.gif
new file mode 100644
index 0000000..7ee7bc8
Binary files /dev/null and b/Exercise Library/Triceps Pushdown/preview.gif differ
diff --git a/Exercise Library/Triceps Pushdown/visual.svg b/Exercise Library/Triceps Pushdown/visual.svg
new file mode 100644
index 0000000..56a36ca
--- /dev/null
+++ b/Exercise Library/Triceps Pushdown/visual.svg
@@ -0,0 +1,22 @@
+