Skip to content

UCM Poster Analysis — Project Plan

Created 2026-05-05
Tags scienceconferenceNeuro2026UCManalysismethod

Related: Neuro 2026 Abstract


Develop a quantitative methodology — grounded in the Uncontrolled Manifold framework (Scholz & Schöner, 1999) — to numerically distinguish correct from failure movement strategies across three representative Baseworks tasks. Output: a Constraint Violation Index (CVI) for each task, visualized as a bar chart beside each movement panel on the Neuro 2026 poster.

The three tasks are representative of three recurring constraint classes that appear throughout Baseworks training. The methodology is meant to suggest that this approach is generalizable, not limited to these specific tasks.


In UCM theory, a task defines one or more controlled variables — quantities the nervous system stabilizes. All joint configurations that preserve the controlled variable form the uncontrolled manifold (UCM). Configurations that disturb the controlled variable lie in the complementary subspace (⊥UCM).

The core Baseworks observation: most healthy adults systematically lack certain UCMs. They cannot maintain specific controlled variables — not because they are generally uncoordinated, but because those particular degrees of freedom have never been trained. Furthermore, they typically cannot perceive when the controlled variable has been violated (insufficient proprioceptive acuity in the ⊥UCM direction).

ClassDescriptionRepresentative task
Foundation invarianceProximal segments stay fixed while distal segments moveLunge
Rectangle integrityA 4-point shape constraint on the trunk moves without deformingIsolate
Multi-segment coordinationRelationship between two segment groups is preserved through overall movementTilt (Star)

Each class appears in multiple Baseworks tasks. The three tasks on the poster are examples, not exhaustive.


Task 1 — Lunge (sagittal plane, side view)

Section titled “Task 1 — Lunge (sagittal plane, side view)”

Movement: From a deep lunge, lift the upper body while the legs remain as a fixed foundation.

Controlled variable: The leg triangle — three landmarks that must not displace.

Markers (3 total, lime green):

  • Front toe
  • Front knee
  • Back knee

Geometric constraint: These three points form a triangle with approximately a 90° angle at the front knee (knee over toe). All three must stay fixed in space as the trunk rises.

UCM: Trunk joint angles — these can change freely as the upper body rises.

Failure pattern: The front shin becomes more vertical (front knee tracks backward over the foot), and/or the back knee shifts — the legs accommodate the trunk movement rather than serving as an anchor.

Metric — Shin Angle Delta:

  • Measure: absolute change in front shin angle (front_toe → front_knee line from vertical) between pos1 and pos2
  • Unit: degrees
  • Ideal (correct): ≈ 0° (shin stays at same angle — foundation held)
  • Failure: noticeably > 0° (shin rotated — front knee shifted)
  • Rationale: captures the key controlled variable (shin orientation) directly; body-proportional without an arbitrary normalization reference

Task 2 — Isolate (frontal plane, front view)

Section titled “Task 2 — Isolate (frontal plane, front view)”

Movement: Shift center of gravity laterally (pelvis slides parallel to the floor), then lift the unloaded leg. The trunk must remain upright throughout.

Controlled variable (two components):

  1. Vertical orientation of the trunk (no tilt)
  2. Rectangular shape of the trunk (no deformation)

Horizontal translation of the entire trunk is allowed (this is in the UCM — it is the mechanism of the weight shift itself).

Markers (4 total, lime green):

  • Left shoulder
  • Right shoulder
  • Left hip
  • Right hip

Geometric constraints:

  1. The midline (midpoint-of-shoulders → midpoint-of-hips) must remain vertical
  2. The shoulder line and hip line must remain parallel and horizontal (no shear)

UCM: Horizontal position of the trunk centroid — free to translate.

Failure patterns:

  • Trunk tilts laterally (upper body tips to one side)
  • Rectangle deforms: shoulders and hips move independently (shear)
  • Often both occur together when the leg lifts

Metrics (two separate CVIs):

CVI-1 — Trunk Tilt Angle:

  • Angle of trunk midline from true vertical (degrees)
  • Ideal: 0°
  • Failure: noticeably > 0°

CVI-2 — Shear Angle:

  • Angle of shoulder line from horizontal, minus angle of hip line from horizontal
  • If both tilt equally (rigid rectangle), this difference = 0°
  • If top and bottom move independently (shear), difference > 0°
  • Unit: degrees
  • Ideal: 0°
  • Failure: noticeably > 0°

Task 3 — Tilt / Star (frontal plane, front view)

Section titled “Task 3 — Tilt / Star (frontal plane, front view)”

Movement: From a star position (arms horizontal, trunk vertical), perform a lateral tilt of the whole body. Trunk and arms should move as a coordinated unit.

Controlled variable (two components):

  1. Rectangular shape of the trunk (must not deform as the body tilts)
  2. Arm-trunk coordination (the arm line and trunk axis must maintain their relative angle)

Markers (6 total, lime green):

  • Left wrist
  • Right wrist
  • Left shoulder
  • Right shoulder
  • Left hip
  • Right hip

The 4 trunk markers (shoulders + hips) define the rectangle. The 2 wrist markers define the arm line.

Geometric constraints:

  1. Trunk rectangle: shoulder line and hip line must remain parallel (no shear deformation)
  2. Arm coordination: the wrist–wrist line must remain parallel to the shoulder–shoulder line
    • Using parallelism (rather than an absolute angle) compensates for 3D-to-2D projection artifacts — the two lines undergo the same projection distortion, so relative angle is more robust than either absolute angle

UCM: Overall body tilt angle — free to vary.

Failure patterns:

  • Trunk only: pelvis stays relatively vertical, chest flexes forward or leads, creating rectangle deformation
  • Arms only: shoulder-arm alignment is lost — one arm drops or stays while the trunk tilts
  • Mixed: both trunk deformation and arm decoupling

Metrics (two separate CVIs):

CVI-1 — Trunk Deformation (Shear Angle):

  • Same computation as isolate CVI-2: angle of shoulder line minus angle of hip line from horizontal
  • Ideal: 0° (both tilt by same amount → parallel lines maintained)
  • Failure: > 0°

CVI-2 — Arm Decoupling Angle:

  • |angle(wrist–wrist line from horizontal) − angle(shoulder–shoulder line from horizontal)|
  • Ideal: 0° (arm line tracks shoulder line exactly)
  • Failure: > 0°
  • Note: both lines undergo the same camera projection, so the difference is projection-invariant

Lime green (#00FF00, HSV hue ≈ 60°) is recommended as the standard marker color:

  • Single clean HSV range (no wraparound, unlike red)
  • Not present in skin, hair, or typical clothing
  • High contrast against neutral grey/white backgrounds
  • Trivially detectable via standard HSV thresholding

If lime green markers are unavailable, cyan (#00FFFF) is a reliable second choice.

TaskMarkersPlacement notes
LungeFront toe, front knee, back kneeToe = base of big toe or tip of foot; knees = lateral knee joint line
IsolateLeft shoulder, right shoulder, left hip, right hipShoulders = acromioclavicular joint or top of shoulder; hips = ASIS or top of iliac crest
TiltSame as Isolate, plus left wrist and right wristWrists = dorsal wrist crease
  • Neutral, single-color background (grey preferred)
  • Subject photographed from the side (lunge) or front (isolate, tilt)
  • Markers visible and unobstructed
  • Images per analysis run:
    • Lunge: 2 images — reference/starting position (pos1) + final position (pos2)
    • Isolate: 1 image — final position only
    • Tilt: 1 image — final position only
  • To compare correct vs. failure execution, run the script twice with separate images and collect both outputs

Three analysis scripts, one per task. A shared utility handles marker detection.

detect_markers(image_path, color='green') → np.array of (x, y) centers
  • HSV thresholding for the chosen marker color
  • Morphological cleanup to handle partial occlusion
  • Returns sorted list of detected centroids
  • Diagnostic output: number of markers detected, with visual confirmation image
Input: pos1.png pos2.png (reference position, final position)
Output: Printed CSV row — task, image filename, shin_angle_delta_deg
Example: lunge,lunge_2.png,3.55

Logic:

  1. Detect 3 markers in each image
  2. Sort by spatial position (consistent ordering: front-toe, front-knee, back-knee — sort by x then y)
  3. Compute angle of front_toe → front_knee line from vertical in each image
  4. Report absolute difference (degrees)
  5. Print result
Input: pos2.png (final position only)
pos2.png --pos1 pos1.png (optional: camera-tilt calibration)
Output: Printed CSV row — task, image filename, trunk_tilt_deg, shear_angle_deg
Example: isolate,isolate_2.png,3.2,1.1

If --pos1 is provided, the trunk tilt measured in pos1 is subtracted as a camera-level offset from pos2. Shear angle is always computed from pos2 only.

Logic:

  1. Detect 4 markers, sort as rectangle (TL, TR, BL, BR)
  2. Compute:
    • Tilt: angle of (midpoint_top → midpoint_bottom) vector from vertical
    • Shear: angle(shoulder line from horizontal) − angle(hip line from horizontal)
  3. Print result
Input: pos2.png (final position only — starting position not needed for computation)
Output: Printed CSV row — task, image filename, shear_angle_deg, arm_decoupling_deg
Example: tilt,tilt_2.png,2.8,4.1

Logic:

  1. Detect 6 markers; identify wrists as the 2 outermost by x-coordinate; inner 4 = trunk rectangle
  2. Compute:
    • Trunk shear: angle(shoulder line) − angle(hip line) from horizontal
    • Arm decoupling: |angle(wrist line) − angle(shoulder line)| from horizontal
  3. Print result

Run each script once per image. Paste the CSV rows into a spreadsheet for analysis and visualization. For poster bar charts: run the script on the correct-execution image and the failure-execution image separately, then plot both values side by side.


Three movement panels, each containing:

  • Photos with markers overlaid (starting position + correct + failure)
  • One bar chart to the right showing CVI values, built from spreadsheet data
    • Lunge: single bar pair (correct vs failure FDI)
    • Isolate: two bar pairs (tilt angle + shear angle)
    • Tilt: two bar pairs (shear angle + arm decoupling angle)

Each bar chart uses consistent color coding:

  • Correct condition: green
  • Failure condition: red

The three panels are titled by constraint class:

  • Foundation Invariance (Lunge)
  • Rectangle Integrity (Isolate)
  • Multi-Segment Coordination (Tilt)

  • Diagnostic mode: Each script should include a --diagnostic flag that saves an annotated image (detected markers circled and numbered) before computing any metric. This lets you confirm correct detection visually — especially important if lighting or clothing color varies between sessions. The flag would output <filename>_diagnostic.png alongside the numeric result.

  • Shear angle / Rectangle Integrity: The shear angle metric is identical across Isolate and Tilt, and could eventually become a standalone analyze_rectangle_integrity.py module usable across any task where the trunk rectangle appears — not named after a specific task. Deferred for now; metrics remain separated in task-specific scripts.

  • Arm decoupling for twists: The wrist-line vs shoulder-line parallelism approach is specific to frontal-plane tasks with arms extended. Twist tasks would require a different 2D approach (TBD) — while failure patterns are perceptually obvious to an instructor, 2D quantification is non-trivial. Deferred.

  • If future tasks involve 3D motion capture, the same conceptual framework applies; the CVI metrics would be computed in 3D joint space rather than from 2D images