44Posecode gives them a way to <i >show movement</i > — exercises, physiotherapy, posture —<br />
55as a tiny human-readable language that renders to an animated 3D figure in the browser.</p >
66
7+ <p align =" center " >
8+ <a href =" https://posecode.org/play " ><b >▶ Live playground</b ></a > ·
9+ <a href =" spec/SPEC.md " >Language spec</a > ·
10+ <a href =" spec/examples " >Examples</a > ·
11+ <a href =" packages/posecode-mcp " >MCP server</a >
12+ </p >
13+
14+ <table align =" center " >
15+ <tr >
16+ <td align="center"><img src="docs/media/deadlift.gif" width="230" alt="Deadlift rendered from .posecode text"/><br/><sub><code>pelvis: hinge</code> — deadlift</sub></td>
17+ <td align="center"><img src="docs/media/squat.gif" width="230" alt="Body-weight squat rendered from .posecode text"/><br/><sub><code>knees: flex 95</code> — squat</sub></td>
18+ <td align="center"><img src="docs/media/lateral-raise.gif" width="230" alt="Lateral raise rendered from .posecode text"/><br/><sub><code>shoulders: abduct 90</code> — lateral raise</sub></td>
19+ </tr >
20+ </table >
21+
722---
823
924## Why
@@ -49,12 +64,26 @@ posecode exercise "Body-weight squat"
4964``` bash
5065npm install
5166npm run dev # opens the playground (Vite) at http://localhost:5173
52- npm test # parser + renderer test suites
67+ npm test # parser + renderer + eval test suites
68+ npm run eval # fidelity scorecard: geometric invariants over every example
5369```
5470
5571In the playground: pick an example, watch it animate, edit the text live, and
5672hit ** Copy LLM prompt** to get a system prompt that teaches ChatGPT/Claude to
57- write Posecode for you.
73+ write Posecode for you — or wire up the [ MCP server] ( packages/posecode-mcp ) so
74+ your agent authors, validates, and renders movements natively.
75+
76+ ## How Posecode stays honest
77+
78+ Two safety layers ship with the language:
79+
80+ - ** ROM clamping** — every angle is hard-clamped to healthy range-of-motion
81+ tables before rendering; a hallucinated ` knee: flex 200 ` renders at its
82+ ceiling with a warning, never an impossible joint.
83+ - ** Fidelity evals** — [ ` posecode-eval ` ] ( packages/posecode-eval ) re-runs the
84+ real parser → FK → ground-lock pipeline headlessly and scores geometric
85+ invariants ("a deadlift pitches the torso ≥ 50° with vertical shins"). Every
86+ example must pass every invariant in CI.
5887
5988## Packages
6089
@@ -64,6 +93,7 @@ write Posecode for you.
6493| [ ` posecode-render ` ] ( packages/posecode-render ) | IR → animated low-poly mannequin (Three.js), forward kinematics + ground-lock CCD IK. |
6594| [ ` posecode-share ` ] ( packages/posecode-share ) | Encode a ` .posecode ` doc to a URL-safe token so a movement travels as a link. Pure, dependency-free. |
6695| [ ` posecode-mcp ` ] ( packages/posecode-mcp ) | MCP server: lets an LLM agent author, ROM-validate, and get a render link for a movement — natively. |
96+ | [ ` posecode-eval ` ] ( packages/posecode-eval ) | Fidelity harness: headless kinematic probing + biomechanical invariant scoring. |
6797| [ ` playground ` ] ( playground ) | Live editor + 3D viewport + warnings + the LLM prompt + shareable links. |
6898
6999The protocol and both libraries are ** MIT-licensed** — the open core. See
0 commit comments