Skip to content

Latest commit

 

History

History
71 lines (60 loc) · 3.05 KB

File metadata and controls

71 lines (60 loc) · 3.05 KB

poses/ — pose definitions

Each NN_name.json file is one target pose. The game loads the files sorted by filename and plays all of them — one pose per round — taking the target joint angles to compare players against. Edit them by hand or record them with the camera via run_recorder.sh (see tools/).

Pose pool

# File Name Difficulty Tolerance Multiplier
01 01_tpose.json T-Pose easy ±25° ×1.0
02 02_lshape.json L-Shape easy ±25° ×1.0
03 03_warrior.json Warrior II medium ±50° ×1.3
04 04_sprinter.json Sprinter hard ±50° ×1.6
05 05_star.json Star hard ±50° ×1.6
06 06_cactus.json Cactus easy ±35° ×1.0
07 07_ypose.json Y-Pose easy ±25° ×1.0
08 08_squat.json Wall-sit medium ±30° ×1.3
09 09_flamingo.json Flamingo medium ±40° ×1.3
10 10_crossed.json Mummy easy ±35° ×1.0

The game plays every file in this folder, so dropping in an 11th JSON adds an 11th round automatically.

File format

{
  "name": "T-Pose",
  "difficulty": "easy",       // easy / medium / hard
  "tolerance_deg": 25,         // allowed angle spread
  "multiplier": 1.0,           // score multiplier (1.0 / 1.3 / 1.6)
  "mirror": false,             // optional: flip the rendered reference only (see below)
  "joints": [
    {
      "name": "left_elbow",
      "points": [5, 7, 9],            // COCO indices: shoulder, elbow, wrist
      "target_angle": 180.0,          // desired angle in degrees
      "weight": 1.0                   // weight (arms/elbows 1.2, the rest 1.0)
    }
    // ...
  ],
  "reference_keypoints": [   // 17×2 normalised to [0,1] — preview skeleton only
    [0.50, 0.16], [0.485, 0.15] /* ... */
  ]
}

Keypoint indices (COCO 17)

0 nose    1 left eye    2 right eye    3 left ear    4 right ear
5 left shoulder   6 right shoulder   7 left elbow   8 right elbow
9 left wrist  10 right wrist
11 left hip  12 right hip  13 left knee  14 right knee
15 left ankle  16 right ankle

A joint angle is computed from the triple of keypoints in points (e.g. elbow = shoulder-elbow-wrist angle). reference_keypoints are used only to draw the skeleton on the Memorize screen — they do not affect scoring.

mirror

Optional, defaults to false. When true, the rendered reference skeleton is flipped horizontally (left/right keypoints swapped) so the player sees it as in a mirror and intuitively raises the matching limb — but scoring stays on the original anatomical sides, because the camera is not flipped. Used by asymmetric poses: 04_sprinter.json and 09_flamingo.json.