Purpose snapshot (first read) · ← Bundle index

Pendulum Squat (plate-loaded) — Project Documentation

Overview

This package matches the layout used for shoulders lateral raise, triceps overhead extension, and pelvic floor: a script/ matplotlib generator using shared/v4_engine.py, output/ HTML + GIF, and statistics/ CSV / calculator / optional workbook.

This page is part of the ICD notes bundle under pendulum-squat/: interactive HTML and anatomy diagrams live next to each other. Links in the Related section point at those sibling files.


Folder structure (this bundle)

pendulum-squat/ ├── index.html # hub page listing all bundle assets ├── pendulum_squat_v7.html # v7 matplotlib frame player ├── pendulum_squat_fbd_v6.html # experimental v6 live FBD canvas (JS vectors) ├── pendulum_squat_athlete_metrics_dashboard.html ├── pendulum-squat-documentation.html (this file) ├── pendulum-squat-animation-guide.html ├── pendulum-squat-purpose-snapshot.html └── diagrams/ ├── thigh_muscles_anatomy_reference.html └── anatomy_references/ ├── SOURCES.txt ├── Thigh_cross_section.svg ├── 1122_Gluteal_Muscles_that_Move_the_Femur_a.png └── Anterior_view_of_the_thigh.png

Upstream generator tree (not duplicated here): animated_gif_script/pendulum_squat/ with script/, output/ (including pendulum_squat_fbd_v7.html and GIF), and statistics/.


Animation scripts

v7 (recommended): script/pendulum_squat_gif_v7.py

Same matplotlib pipeline as v5 (movement / forces / coaching) plus a small canvas output/pendulum_squat_fbd_v7.html that uses the identical _custom_rep() angle list and phase labels — no Google Fonts, no second angle definition.

cd animated_gif_script/pendulum_squat/script
python pendulum_squat_gif_v7.py
python pendulum_squat_gif_v7.py --mode movement

v5 (legacy): pendulum_squat_gif_v5.py

Still available; outputs pendulum_squat_v5.* only.

Modes: movement — geometry + arc; forcesF_load, F_quads, moment arm, shear proxy; coaching — cues + joint story.

Rep direction: custom rep = eccentric (lockout→bottom) → isometric bottom → concentric → 1f lockout; knee proxy higher ° = deeper.

Requires matplotlib, numpy, Pillow; optional ImageMagick magick for GIF encoding (else Pillow).


Statistics

FileRole
input_sheet.csvPer-set loads, lever estimate, ROM bounds, tempo
load_calc.pyReads CSV → stats_report.txt (simple T = m g L sin θ scaffold)
generate_xlsx_v4.pySmall workbook: inputs + ROM normalized demand curve
measurement_guide.htmlHow to fill lever / ROM columns

← Bundle index · Exercise notes index