Skip to content

Commit d2b4d31

Browse files
Merge pull request #12 from posecode-dev/feat/fidelity-and-launch-prep
2 parents 83dbd92 + 9f7e861 commit d2b4d31

23 files changed

Lines changed: 1532 additions & 715 deletions

File tree

README.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,21 @@
44
Posecode gives them a way to <i>show movement</i> — exercises, physiotherapy, posture —<br/>
55
as 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
5065
npm install
5166
npm 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

5571
In the playground: pick an example, watch it animate, edit the text live, and
5672
hit **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

6999
The protocol and both libraries are **MIT-licensed** — the open core. See

docs/media/deadlift.gif

994 KB
Loading

docs/media/lateral-raise.gif

259 KB
Loading

docs/media/squat.gif

660 KB
Loading

0 commit comments

Comments
 (0)