内容
1 align="center">◆ Posecode</h1>
<p align="center"><b>将运动以文本形式呈现。</b> Mermaid 为大型语言模型(LLMs)提供了一种绘制图表的方法。<br/>
Posecode它们能够 <i>展示i>:锻炼、物理治疗势等,<br一种简洁、人类可读的语言,在浏览器中渲染 3D 人物。</p align="center">
<="https://posecode.orgb>▶ 在线体验</a> ·
<a href="https://posecode.org/">动作库</a <a href="https://pos/spec.html">语言规范</ <aspec/examples">示例</a <a href="packages-mcp">MCP 服务器</a>
</p>
="center">
<tr <td align="center"><="docs/media/deadlift.gif" width="230" alt="ecode 文本渲染的硬拉动作"/><br/><sub><pelvis: hinge</code拉</sub></td <td align="center"><="docs/media/squat.gif230" alt="从 .posecode 文本渲染的自蹲动作"/><br/><sub><code>knees:95</code>, 深sub></td>
<center"><img src="ateral-raise.gif"230" alt="从ecode 文本渲染的侧"/><br/><sub><codeers: abduct 90</ 侧举</sub></ </tr>
</table>
---
## 为什么
让模型(LLM)解释撑时,它只能给你一段文字描述或一张静态图片。
模型 <i>知道</i> 生物力学的知识(“肘部弯曲,肩部外展,在下降过程中”它缺乏一种语法来表达这些知识,而这种语法可以被渲染器读取。
基于扩散的文本到运动模型存在,但它们很重,成本高,且对解剖学阶段的控制粒度。
Posecode 采取了、轻量级的方法(参见 [研究背景](#):
- LLM 编写一个小的 **`.posecode`** 文档:阶段,而不是 3D 矩阵。
- 客户端的解析器 + Three.js 渲染器对其进行动画处理。生成成本是文本成本的几分之一;渲染在手机上以 60fps 运行。
- 每个角度都 **严格限制在健康的运动范围内**,因此模型“膝盖弯曲 200°”的幻觉无法产生解剖学上不可能的关节。
```posecode
posecode exercise "自重深蹲"
rig humanoid
pose start = standing
step "下降" 1.6s ease-in-out:
髋部: 弯曲 80
膝盖: 弯曲 95
脚踝: 背屈 14
地面锁定: 脚
提示 "臀部后移,胸部挺直,膝盖跟随脚趾"
step "上升" 1.2s ease-out:
髋部: 弯曲 0
膝盖: 弯曲 0
脚踝: 背屈 0
地面锁定: 脚
提示 "通过脚跟驱动,站直"
repeat 8
```
## 尝试
```bash
npm install
npm run dev # 在 http://localhost:5173 打开 playground(Vite)
npm test # 解析器 + 渲染器 + 评估测试套件
npm run eval # 保真度评分卡:每个示例的几何不变量
```
在 playground 中:选择一个示例,观看动画,实时编辑文本,然后点击 **复制 LLM 提示**,获取一个系统,该系统可以教会 ChatGPT/Claude 编写 Posecode,或者连接 [MCP 服务器](packages/posecode-mcp),让您的代理作者、验证和渲染动作。
## Posecode 如何保持准确
该语言附带两个安全层:
- **ROM 限制**:在渲染之前,每个角度都被严格限制在健康的运动范围表格中;幻觉的“膝盖:弯曲 200”在达到其上限时会渲染并带有警告,而不是不可能的关节。
- **保真度评估**:[`posecode-eval`](packages/posecode-eval) 重新运行实际解析器 → 正向运动学 → 地面锁定管道,并评估几何不变量(“硬拉使躯干 ≥ 50°,垂直胫骨”)。每个示例都必须在 CI 中通过每个不变量。
## 软件包
| 软件包 | 功能 |
| --- | --- |
| [`posecode-parser`](packages/posecode-parser) | `.posecode` 文本 → 验证、ROM 限制的 IR。纯 TypeScript,与框架无关。 |
| [`posecode-render`](packages/posecode-render) | IR → 动画低多边形人体模型(Three.js),正向运动学 + 地面锁定 CCD IK。 |
| [`posecode-share`](packages/posecode-share) | 将 `.posecode` 文档编码为 URL 安全令牌,以便动作以链接形式传播。纯粹、无依赖。 |
| [`posecode-mcp`](packages/posecode-mcp) | MCP 服务器:允许 LLM 代理作者、ROM 验证,并获取动作的渲染链接。 |
| [`posecode-eval`](packages/posecode-eval) | 保真度测试框架:无头运动探测 + 生物力学不变量评分。 |
| [`playground`](playground) | 实时编辑器 + 3D 视口 + 警告 + LLM 提示 + 可分享链接。 |
协议和两个库都采用 **MIT 许可**:开放核心。参见
[`spec/SPEC.md`](spec/SPEC.md) 获取完整语言,[`spec/llm-authoring.md`](spec/llm-authoring.md) 获取作者提示。
关于 Posecode 传播最快的地方和每个领域的市场计划,参见 [`docs/market-research.md`](docs/market-research.md);关于引擎路线图,参见 [`ROADMAP.md`](ROADMAP.md)。
## 范围(v0.1)
✅ 健身、物理治疗、办公、舞蹈、教育和康复等单人运动 ·
Mermaid 风格的 DSL · ROM 安全限制(作者 **和 IK 求解** 角度) ·
正向运动学 · 地面锁定 **和 ROM 约束的 IK 目标跟踪** ·
髋部-弯曲 · 卧姿/坐姿 · 场景道具(椅子/墙壁/横杆) · 单自由度手部绑定 · 实时 playground。
⏳ 暂缓:双人/合作运动 + 碰撞检测,更深层次的道具(负载、带、环),多关节手指,FBX/GLB 导出,托管 SaaS 编辑器和专家验证的动作市场。
## 背景
该项目遵循一项设计研究, <i>“用于大型语言模型的运动定义协议”</i>,该研究主张基于语义的 DSL 而非扩散模型,
指定基于 ROM 的安全约束,并提出开放核心商业化路径。规范交叉引用其章节(§4 DSL,§5 生物力学,§6 客户端渲染,§7 战略)。
> ⚠️ Posecode 的运动范围值是通用文献数据,而不是医疗建议。请咨询合格的专业人员进行物理治疗或运动处方。