Black Trigram (흑괘) - Korean Martial Arts Combat Simulator API - v0.7.65
    Preparing search index...

    Variable HAND_POSESConst

    HAND_POSES: {
        BACKFIST: {
            index_dist: readonly [1.05, 0, 0];
            index_inter: readonly [1.55, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [1.55, 0, 0];
            middle_dist: readonly [1.05, 0, 0];
            middle_inter: readonly [1.55, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [1.55, 0, 0];
            pinky_dist: readonly [1.05, 0, 0];
            pinky_inter: readonly [1.55, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [1.55, 0, 0];
            ring_dist: readonly [1.05, 0, 0];
            ring_inter: readonly [1.55, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [1.55, 0, 0];
            thumb_dist: readonly [0.2, 0, 0];
            thumb_meta: readonly [0.3, 0.5, 0.2];
            thumb_prox: readonly [0.3, 0, 0];
        };
        FIST: {
            index_dist: readonly [1.1, 0, 0];
            index_inter: readonly [1.57, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [1.57, 0, 0];
            middle_dist: readonly [1.1, 0, 0];
            middle_inter: readonly [1.57, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [1.57, 0, 0];
            pinky_dist: readonly [1.1, 0, 0];
            pinky_inter: readonly [1.57, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [1.57, 0, 0];
            ring_dist: readonly [1.1, 0, 0];
            ring_inter: readonly [1.57, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [1.57, 0, 0];
            thumb_dist: readonly [0.3, 0, 0];
            thumb_meta: readonly [0.3, 0.5, 0.2];
            thumb_prox: readonly [0.4, 0, 0];
        };
        GRAB: {
            index_dist: readonly [0.6, 0, 0];
            index_inter: readonly [1, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [1.2, 0, 0];
            middle_dist: readonly [0.7, 0, 0];
            middle_inter: readonly [1.1, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [1.3, 0, 0];
            pinky_dist: readonly [0.6, 0, 0];
            pinky_inter: readonly [1, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [1.2, 0, 0];
            ring_dist: readonly [0.7, 0, 0];
            ring_inter: readonly [1.1, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [1.3, 0, 0];
            thumb_dist: readonly [0.2, 0, 0];
            thumb_meta: readonly [0.2, 0.3, 0.1];
            thumb_prox: readonly [0.3, 0, 0];
        };
        HAMMER_FIST: {
            index_dist: readonly [1.2, 0, 0];
            index_inter: readonly [1.7, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [1.7, 0, 0];
            middle_dist: readonly [1.2, 0, 0];
            middle_inter: readonly [1.7, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [1.7, 0, 0];
            pinky_dist: readonly [1.2, 0, 0];
            pinky_inter: readonly [1.7, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [1.7, 0, 0];
            ring_dist: readonly [1.2, 0, 0];
            ring_inter: readonly [1.7, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [1.7, 0, 0];
            thumb_dist: readonly [0.4, 0, 0];
            thumb_meta: readonly [0.4, 0.6, 0.3];
            thumb_prox: readonly [0.5, 0, 0];
        };
        KNIFE_HAND: {
            index_dist: readonly [0, 0, 0];
            index_inter: readonly [0, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [0, 0, 0];
            middle_dist: readonly [0, 0, 0];
            middle_inter: readonly [0, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [0, 0, 0];
            pinky_dist: readonly [0, 0, 0];
            pinky_inter: readonly [0, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [0, 0, 0];
            ring_dist: readonly [0, 0, 0];
            ring_inter: readonly [0, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [0, 0, 0];
            thumb_dist: readonly [0.2, 0, 0];
            thumb_meta: readonly [0.5, 0.8, 0.4];
            thumb_prox: readonly [0.4, 0, 0];
        };
        OPEN_PALM: {
            index_dist: readonly [0, 0, 0];
            index_inter: readonly [0, 0, 0];
            index_meta: readonly [0, 0, -0.1];
            index_prox: readonly [0, 0, 0];
            middle_dist: readonly [0, 0, 0];
            middle_inter: readonly [0, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [0, 0, 0];
            pinky_dist: readonly [0, 0, 0];
            pinky_inter: readonly [0, 0, 0];
            pinky_meta: readonly [0, 0, 0.2];
            pinky_prox: readonly [0, 0, 0];
            ring_dist: readonly [0, 0, 0];
            ring_inter: readonly [0, 0, 0];
            ring_meta: readonly [0, 0, 0.1];
            ring_prox: readonly [0, 0, 0];
            thumb_dist: readonly [0, 0, 0];
            thumb_meta: readonly [0, 0.4, -0.3];
            thumb_prox: readonly [0.1, 0, 0];
        };
        RELAXED: {
            index_dist: readonly [0.1, 0, 0];
            index_inter: readonly [0.2, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [0.3, 0, 0];
            middle_dist: readonly [0.15, 0, 0];
            middle_inter: readonly [0.25, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [0.35, 0, 0];
            pinky_dist: readonly [0.1, 0, 0];
            pinky_inter: readonly [0.2, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [0.3, 0, 0];
            ring_dist: readonly [0.15, 0, 0];
            ring_inter: readonly [0.25, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [0.35, 0, 0];
            thumb_dist: readonly [0.05, 0, 0];
            thumb_meta: readonly [0.1, 0.2, 0.1];
            thumb_prox: readonly [0.1, 0, 0];
        };
        SPEAR_HAND: {
            index_dist: readonly [0, 0, 0];
            index_inter: readonly [0, 0, 0];
            index_meta: readonly [0, 0, 0];
            index_prox: readonly [0, 0, 0];
            middle_dist: readonly [0, 0, 0];
            middle_inter: readonly [0, 0, 0];
            middle_meta: readonly [0, 0, 0];
            middle_prox: readonly [0, 0, 0];
            pinky_dist: readonly [0, 0, 0];
            pinky_inter: readonly [0, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [0, 0, 0];
            ring_dist: readonly [0, 0, 0];
            ring_inter: readonly [0, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [0, 0, 0];
            thumb_dist: readonly [0.1, 0, 0];
            thumb_meta: readonly [0.4, 0.6, 0.3];
            thumb_prox: readonly [0.2, 0, 0];
        };
        TWO_FINGER: {
            index_dist: readonly [0, 0, 0];
            index_inter: readonly [0, 0, 0];
            index_meta: readonly [0, 0, -0.1];
            index_prox: readonly [0, 0, 0];
            middle_dist: readonly [0, 0, 0];
            middle_inter: readonly [0, 0, 0];
            middle_meta: readonly [0, 0, 0.1];
            middle_prox: readonly [0, 0, 0];
            pinky_dist: readonly [0.8, 0, 0];
            pinky_inter: readonly [1.57, 0, 0];
            pinky_meta: readonly [0, 0, 0];
            pinky_prox: readonly [1.57, 0, 0];
            ring_dist: readonly [0.8, 0, 0];
            ring_inter: readonly [1.57, 0, 0];
            ring_meta: readonly [0, 0, 0];
            ring_prox: readonly [1.57, 0, 0];
            thumb_dist: readonly [0.2, 0, 0];
            thumb_meta: readonly [0.4, 0.6, 0.3];
            thumb_prox: readonly [0.3, 0, 0];
        };
    } = ...

    Hand poses for different strike types 타격 유형별 손 자세

    Each pose defines rotations for all 19 finger joints (per hand):

    • thumb_meta, thumb_prox, thumb_dist (3 joints)
    • index_meta, index_prox, index_inter, index_dist (4 joints)
    • middle_meta, middle_prox, middle_inter, middle_dist (4 joints)
    • ring_meta, ring_prox, ring_inter, ring_dist (4 joints)
    • pinky_meta, pinky_prox, pinky_inter, pinky_dist (4 joints)

    Type Declaration

    • ReadonlyBACKFIST: {
          index_dist: readonly [1.05, 0, 0];
          index_inter: readonly [1.55, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [1.55, 0, 0];
          middle_dist: readonly [1.05, 0, 0];
          middle_inter: readonly [1.55, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [1.55, 0, 0];
          pinky_dist: readonly [1.05, 0, 0];
          pinky_inter: readonly [1.55, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [1.55, 0, 0];
          ring_dist: readonly [1.05, 0, 0];
          ring_inter: readonly [1.55, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [1.55, 0, 0];
          thumb_dist: readonly [0.2, 0, 0];
          thumb_meta: readonly [0.3, 0.5, 0.2];
          thumb_prox: readonly [0.3, 0, 0];
      }

      Backfist - Knuckle strikes (등주먹, Deungjumeok)

      Korean 등주먹치기 (Deungjumeok Chigi): the fist is closed exactly as for a forward punch — only the wrist orientation changes so that the dorsal surface of the second-row knuckles is the impact face. The previous values left the fist noticeably loose (1.4 / 1.4 / 0.7), which is biomechanically inconsistent with a 등주먹 strike where the fist must be a single rigid mass on impact. Now matches FIST tightness.

    • ReadonlyFIST: {
          index_dist: readonly [1.1, 0, 0];
          index_inter: readonly [1.57, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [1.57, 0, 0];
          middle_dist: readonly [1.1, 0, 0];
          middle_inter: readonly [1.57, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [1.57, 0, 0];
          pinky_dist: readonly [1.1, 0, 0];
          pinky_inter: readonly [1.57, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [1.57, 0, 0];
          ring_dist: readonly [1.1, 0, 0];
          ring_inter: readonly [1.57, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [1.57, 0, 0];
          thumb_dist: readonly [0.3, 0, 0];
          thumb_meta: readonly [0.3, 0.5, 0.2];
          thumb_prox: readonly [0.4, 0, 0];
      }

      Closed Fist - Standard punch (주먹) Fingers curled tight, thumb wrapped outside over index/middle PIPs.

      Korean martial arts (Taekwondo / Tang Soo Do / Hapkido) fist:

      • MCP (prox) flexed ~90° (1.57 rad)
      • PIP (inter) flexed ~90° (1.57 rad)
      • DIP (dist) flexed ~63° (1.1 rad) — fingertips pressed firmly into the distal palmar crease so the striking surface is the front of the second-row knuckles (정권). Previous value of 0.8 rad (~46°) left the fingertips visibly slack and reduced impact-surface integrity.
    • ReadonlyGRAB: {
          index_dist: readonly [0.6, 0, 0];
          index_inter: readonly [1, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [1.2, 0, 0];
          middle_dist: readonly [0.7, 0, 0];
          middle_inter: readonly [1.1, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [1.3, 0, 0];
          pinky_dist: readonly [0.6, 0, 0];
          pinky_inter: readonly [1, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [1.2, 0, 0];
          ring_dist: readonly [0.7, 0, 0];
          ring_inter: readonly [1.1, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [1.3, 0, 0];
          thumb_dist: readonly [0.2, 0, 0];
          thumb_meta: readonly [0.2, 0.3, 0.1];
          thumb_prox: readonly [0.3, 0, 0];
      }

      Grab - Grappling and holds (잡기) Fingers curled for grabbing

    • ReadonlyHAMMER_FIST: {
          index_dist: readonly [1.2, 0, 0];
          index_inter: readonly [1.7, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [1.7, 0, 0];
          middle_dist: readonly [1.2, 0, 0];
          middle_inter: readonly [1.7, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [1.7, 0, 0];
          pinky_dist: readonly [1.2, 0, 0];
          pinky_inter: readonly [1.7, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [1.7, 0, 0];
          ring_dist: readonly [1.2, 0, 0];
          ring_inter: readonly [1.7, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [1.7, 0, 0];
          thumb_dist: readonly [0.4, 0, 0];
          thumb_meta: readonly [0.4, 0.6, 0.3];
          thumb_prox: readonly [0.5, 0, 0];
      }

      Hammer Fist - Bottom fist strikes (철퇴, Cheoltoe)

      Korean martial arts hammer-fist (망치주먹): the fist is clenched tighter than a standard punching fist because the striking surface is the bottom (ulnar-side) of the rolled fingers, which must be a hard, compact mass with no give. PIP/MCP are at the upper end of voluntary flexion (~97° / 1.7 rad) and DIP is now ~69° (1.2 rad) so the fingertips bury deep into the palmar crease and present a single, rounded striking ridge along the pinky side.

    • ReadonlyKNIFE_HAND: {
          index_dist: readonly [0, 0, 0];
          index_inter: readonly [0, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [0, 0, 0];
          middle_dist: readonly [0, 0, 0];
          middle_inter: readonly [0, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [0, 0, 0];
          pinky_dist: readonly [0, 0, 0];
          pinky_inter: readonly [0, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [0, 0, 0];
          ring_dist: readonly [0, 0, 0];
          ring_inter: readonly [0, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [0, 0, 0];
          thumb_dist: readonly [0.2, 0, 0];
          thumb_meta: readonly [0.5, 0.8, 0.4];
          thumb_prox: readonly [0.4, 0, 0];
      }

      Knife Hand - Ridge hand strikes (수도, Sudo)

      Korean 수도치기 (Sudo Chigi): all four fingers fully extended and pressed tightly together so the medial edge of the hand (pinky-side fascia overlying the fifth metacarpal) forms a rigid striking ridge. The thumb is firmly adducted and flexed across the palm so it cannot be hooked or broken by the target.

      Previous values held the fingers at a slight 0.1 rad bend, which softens the ridge and is anatomically incorrect for 수도. Fingers are now strictly 0 rad (fully straight); thumb wrap is unchanged.

    • ReadonlyOPEN_PALM: {
          index_dist: readonly [0, 0, 0];
          index_inter: readonly [0, 0, 0];
          index_meta: readonly [0, 0, -0.1];
          index_prox: readonly [0, 0, 0];
          middle_dist: readonly [0, 0, 0];
          middle_inter: readonly [0, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [0, 0, 0];
          pinky_dist: readonly [0, 0, 0];
          pinky_inter: readonly [0, 0, 0];
          pinky_meta: readonly [0, 0, 0.2];
          pinky_prox: readonly [0, 0, 0];
          ring_dist: readonly [0, 0, 0];
          ring_inter: readonly [0, 0, 0];
          ring_meta: readonly [0, 0, 0.1];
          ring_prox: readonly [0, 0, 0];
          thumb_dist: readonly [0, 0, 0];
          thumb_meta: readonly [0, 0.4, -0.3];
          thumb_prox: readonly [0.1, 0, 0];
      }

      Open Palm - Palm strikes, blocks (장권) Fingers extended, slight spread

    • ReadonlyRELAXED: {
          index_dist: readonly [0.1, 0, 0];
          index_inter: readonly [0.2, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [0.3, 0, 0];
          middle_dist: readonly [0.15, 0, 0];
          middle_inter: readonly [0.25, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [0.35, 0, 0];
          pinky_dist: readonly [0.1, 0, 0];
          pinky_inter: readonly [0.2, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [0.3, 0, 0];
          ring_dist: readonly [0.15, 0, 0];
          ring_inter: readonly [0.25, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [0.35, 0, 0];
          thumb_dist: readonly [0.05, 0, 0];
          thumb_meta: readonly [0.1, 0.2, 0.1];
          thumb_prox: readonly [0.1, 0, 0];
      }

      Relaxed - Natural/idle hands (자연) Fingers in natural slight curl

    • ReadonlySPEAR_HAND: {
          index_dist: readonly [0, 0, 0];
          index_inter: readonly [0, 0, 0];
          index_meta: readonly [0, 0, 0];
          index_prox: readonly [0, 0, 0];
          middle_dist: readonly [0, 0, 0];
          middle_inter: readonly [0, 0, 0];
          middle_meta: readonly [0, 0, 0];
          middle_prox: readonly [0, 0, 0];
          pinky_dist: readonly [0, 0, 0];
          pinky_inter: readonly [0, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [0, 0, 0];
          ring_dist: readonly [0, 0, 0];
          ring_inter: readonly [0, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [0, 0, 0];
          thumb_dist: readonly [0.1, 0, 0];
          thumb_meta: readonly [0.4, 0.6, 0.3];
          thumb_prox: readonly [0.2, 0, 0];
      }

      Spear Hand - Finger strikes (관수) Fingers together, extended straight

    • ReadonlyTWO_FINGER: {
          index_dist: readonly [0, 0, 0];
          index_inter: readonly [0, 0, 0];
          index_meta: readonly [0, 0, -0.1];
          index_prox: readonly [0, 0, 0];
          middle_dist: readonly [0, 0, 0];
          middle_inter: readonly [0, 0, 0];
          middle_meta: readonly [0, 0, 0.1];
          middle_prox: readonly [0, 0, 0];
          pinky_dist: readonly [0.8, 0, 0];
          pinky_inter: readonly [1.57, 0, 0];
          pinky_meta: readonly [0, 0, 0];
          pinky_prox: readonly [1.57, 0, 0];
          ring_dist: readonly [0.8, 0, 0];
          ring_inter: readonly [1.57, 0, 0];
          ring_meta: readonly [0, 0, 0];
          ring_prox: readonly [1.57, 0, 0];
          thumb_dist: readonly [0.2, 0, 0];
          thumb_meta: readonly [0.4, 0.6, 0.3];
          thumb_prox: readonly [0.3, 0, 0];
      }

      Two Finger - Eye strikes (이지권) Index and middle extended, others curled

    손자세