fix(animation): correct Korean martial arts terminology and foot biomechanics#1931
Merged
Conversation
โฆechanics
Terminology corrections (Revised Romanization):
- Jeongwon Jireugi โ Jeongkwon Jireugi (์ ๊ถ์ง๋ฅด๊ธฐ) in StanceGuardPoses, PunchAnimations
- Yeokwon Jireugi โ Yeokkwon Jireugi (์ญ๊ถ์ง๋ฅด๊ธฐ) in MartialArtsConstants
- Dollyo Chagi โ Dollyeo Chagi (๋๋ ค์ฐจ๊ธฐ) in StanceGuardPoses (matches rest of codebase)
- Gwanjari Tagyeok โ Gwanjanori Tagyeok (๊ด์๋์ด ํ๊ฒฉ) โ temple is ๊ด์๋์ด
- Jeonggangyi โ Jeonggangi (์ ๊ฐ์ด) in KickAnimations
- Pumbalbgi โ Pumbalpgi (ํ๋ฐ๊ธฐ) in StanceGuardPoses (ร2)
Biomechanical corrections:
- Roundhouse kick (๋๋ ค์ฐจ๊ธฐ) extend: FOOT_R ankle X +0.4 โ -0.3 so foot is
PLANTARFLEXED (toes pointed) for ๋ฐ๋ฑ (instep) strike โ matches existing
docstring at KickAnimations.ts line 169.
- Back kick (๋ค์ฐจ๊ธฐ) thrust: FOOT_R ankle X -0.4 โ +0.4 so foot is
DORSIFLEXED (toes pulled back) presenting ๋ค๊ฟ์น (heel) as the leading
striking surface โ matches docstring intent ("presenting heel").
- Fixed self-contradicting docstring at MartialArtsAnimationBuilder.ts:860
(said "dorsiflexes (-0.4 rad)" โ sign now matches dorsiflexion semantics).
Documentation polish:
- KickAnimations.ts:284: leading `*` restored in JSDoc bullet (was `-`).
- KoreanGuardPositions.ts: HIGH/MIDDLE/LOW guard elbow & shoulder angles
in docstrings updated to match actual radian values used in code
(110ยฐโ120ยฐ, 90ยฐโ100ยฐ, 70ยฐโ75ยฐ/20ยฐโ15ยฐ).
All 11,848 tests pass. ESLint clean. tsc -b clean.
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Contributor
Dependency Reviewโ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Copilot created this pull request from a session on behalf of
pethers
May 14, 2026 13:14
View session
Contributor
๐ธ Automated UI Screenshots๐ Screenshots Captured (8)
๐ฆ Download Screenshots๐ฅ Download all screenshots from workflow artifacts
๐ค Generated by Playwright automation |
Korean martial arts authenticity pass: - Clamp guard poses to ANATOMICAL_LIMITS (elbow MAX_BEND_GUARD=2.09, ankle MAX_DORSIFLEXION=0.44, knee MAX_FLEXION=1.57) - PUNCH_PHASES: fix WINDUP elbow.z sign bug (left-arm convention), deepen hikite (์ค๋ฅธ์ฃผ๋จน ํ์) to 1.55 rad, strengthen hip drive (pelvisY EXTENSION 0.45, PEAK 0.49 - within test envelope) - KICK_PHASES: clamp HIGH_PEAK hip to MAX_FLEXION 1.92, deepen chambers, plant supporting knee firmly (-0.45) - GEON peekaboo guard: clamp elbow.z 2.3/2.4 -> 2.05/2.08 - LI/JIN/GAN peekaboo guards: clamp elbow.z 2.5 -> 2.10 (still passes |z|>1.5 test for JIN/GAN) - JIN horse stance (์ฃผ์ถค์๊ธฐ): knee 1.57 -> 1.40 (sustainable 100\u00b0 flexion, away from MAX_FLEXION) - SON crane-leg chamber: knee 2.10 -> 2.05, ankle -0.45 -> -0.42 - GEON front-leg fighting stance: knee 1.22 -> 1.31 for stronger spring-loaded pose Tests: 11,848 passed (0 failed). Lint clean. Typecheck clean. Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Contributor
๐ธ Automated UI Screenshots๐ Screenshots Captured (8)
๐ฆ Download Screenshots๐ฅ Download all screenshots from workflow artifacts
๐ค Generated by Playwright automation |
โฆtening Surgical Round 2 improvements to animation builders for instructor-correct Korean martial arts biomechanics. KickPhaseApplicator.ts - Add sideMirror logic: when side === 'left', negate pelvis Y (support-hip pivot / ์ถ๋ฐํ์ Chukbal Hoejeon), pelvis Z (lateral tilt), spine Y, and spineLean so left-leg kicks pivot the support foot and lean the torso in the correct opposite direction relative to right-leg kicks. - Applied to all four applicators: basic, roundhouse, side-kick, high-peak. - Promote pelvisY to a typed optional field on BasicKickPhase (was a runtime ad-hoc check), documenting its EXTENSION-phase role. MartialArtsAnimationBuilder.uppercutPunch - Fix knee hyperextension: KNEE_L/R rotated from +0.05 (slight hyperextension) to -0.05 (slight retained bend) at the peak of the rise, preserving ์ค์ฌ (Jungsim, base-of-support) and avoiding a locked-knee posture at the moment of upward power delivery. MartialArtsConstants.HAND_POSES - FIST (์ฃผ๋จน): DIP curl 0.8 โ 1.1 rad (~63ยฐ), so fingertips press into the distal palmar crease and the second-row knuckles (์ ๊ถ) form a clean striking surface. - KNIFE_HAND (์๋, Sudo): finger PIP/MCP 0.1/0.05 โ 0/0 rad, fully extended for a rigid medial ridge as taught in Taekwondo/Tang Soo Do. - HAMMER_FIST (์ฒ ํด): DIP curl 1.0 โ 1.2 rad (~69ยฐ) so the rolled fingers form a single rounded ridge on the ulnar striking surface. - BACKFIST (๋ฑ์ฃผ๋จน, Deungjumeok): tightened to FIST-equivalent values (1.55/1.55/1.05) โ the fist must be a single rigid mass on impact. Korean MA principles enforced: - ์ถ๋ฐํ์ (Chukbal Hoejeon) โ support-foot pivot mirrors with kicking leg - ์ค์ฌ (Jungsim) โ knees retain bend, no hyperextension at peak - ์ ๊ถ / ์๋ / ์ฒ ํด / ๋ฑ์ฃผ๋จน โ striking-surface integrity Validation: tsc โ | eslint โ | vitest 11,848 passed / 22 skipped โ | build โ Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Contributor
๐ธ Automated UI Screenshots๐ Screenshots Captured (8)
๐ฆ Download Screenshots๐ฅ Download all screenshots from workflow artifacts
๐ค Generated by Playwright automation |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Round 1 + Round 2: Martial-Arts Expert Pass on
src/systems/animation/builders/Two surgical rounds drilling the animation-builder layer to instructor-correct Korean martial arts biomechanics.
Round 1 โ Constants & guard data (commit
a685431)AnatomicalLimits(Geon/Li/Jin/Son/Gan elbow z, Jin ์ฃผ์ถค์๊ธฐ knee 1.57 โ 1.40, Son crane ankle/knee)PUNCH_PHASES: sign bug fix at WINDUP elbow.z (+1.8 โ โ1.75 left-arm convention), deeper hikite (๋น๊ธฐ๊ธฐ)oppositeElbow 1.4 โ 1.6, stronger hip drive (pelvisY0.25 โ 0.45 EXT / 0.49 PEAK โ 26โ28ยฐ), corkscrew wrist 0.2 โ 0.45, chin-level chamber guardKICK_PHASES: clamp HIGH_PEAK hip 2.5 โ 1.92 rad (MAX_FLEXION), plant support knee at โ0.45, tighter chamber knee โ2.0 โ โ2.15, ankle clamped to MAX_DORSIFLEXION, roundhouse pivotpelvisYโ0.5 โ โ0.78 (~45ยฐ), side-kick spineY clamped โ1.2 โ โ1.0Round 2 โ Builder logic (commit
8125e02)KickPhaseApplicator.ts: side-mirror for left-leg kicks โ negatepelvisY(์ถ๋ฐํ์ Chukbal Hoejeon support-foot pivot),pelvisZ(lateral tilt),spineY,spineLeanacross all four applicators (basic / roundhouse / side / high-peak). Left & right kicks now pivot the support foot in correct opposite directions.KickPhaseApplicator.ts: promotepelvisYto a typed optional field onBasicKickPhase(replaces runtime ad-hoc check).MartialArtsAnimationBuilder.uppercutPunch: knee+0.05 โ โ0.05at peak โ fixes hyperextension, preserves ์ค์ฌ Jungsim base of support during upward power delivery.MartialArtsConstants.HAND_POSES:Validation
tsc -bcleaneslint .cleannpm run buildsuccessKorean MA principles enforced