mcpField
P
posecode-mcp

posecode-mcp

ローカル
github.com/posecode-devメディア・デザイン1263 週間前に更新

posecode-mcp について

Posecode は、決定論的な 3D 人体モーションを記述・検証・レンダリングするための読みやすいテキスト形式です。アニメーションツールの開発者、LLM の利用者、Web プロダクトの開発者を対象とし、ソースを編集・検査可能な状態で保ちます。MCP サーバーは生成、検証、レビュー、共有のツールを提供します。

主な機能

  1. 01読みやすい .posecode テキスト形式
  2. 02ROM による可動域の検証
  3. 03ブラウザ上での解析と 3D レンダリング
  4. 04パーサー警告と忠実度チェック
  5. 05共有可能なプレイグラウンドリンク

活用シーン

  1. 01構造化された人体モーションの記述作成と編集
  2. 02LLM によるモーションファイルの下書きと検証
  3. 03Web ページへのレンダリング可能なモーションデモの埋め込み

MCP 対応

この MCP サーバーは、Posecode の生成、検証、レビュー、共有のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"posecode-dev-posecode": {
"command": "npx",
"args": [
"-y",
"posecode-mcp"
],
"env": {
"POSECODE_BASE_URL": "<POSECODE_BASE_URL>"
}
}
}
}
起動コマンドnpx -y posecode-mcp
設定が必要な環境変数
POSECODE_BASE_URLPlayground origin used for render permalinks (defaults to https://posecode.org).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmposecode-mcp0.5.0

ツール

3

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Posecode

テキストで表現する運動学的な動作。
アニメーションツール、LLM、Web プロダクト向けの、調査・編集可能な動作フォーマットです。

動作の Mermaid のようなものです。ブラックボックスの中にソースを隠すことなく、
決定論的な人間の動作を記述、検証、レンダリングするための小さなテキストドキュメントです。

ライブプレイグラウンド · 動作ライブラリ · 言語仕様(SPEC.md) · LLM 作成ガイド · サンプル · MCP サーバー

CI のステータス npm のバージョン Apache 2.0 および AGPL 3.0 ライセンス MCP 対応


なぜ Posecode なのか?

アニメーションクリップや生成された軌道から動作を確認できますが、その動作を生み出した意味上の判断は隠されていることがよくあります。

Posecode では、そうした判断を読みやすいソースとして保持します。人がドキュメントを作成したり、アニメーションツールが出力したり、LLM が下書きしたりできます。解析、検証、編集、レンダリングに AI モデルは必要ありません。

Posecode ドキュメントからレンダリングしたジャンピングジャック

1 つの .posecode ドキュメント — shoulders: abduct 160、 hips: abduct 30、 repeat 12 — ブラウザー上でライブレンダリング。

たとえば、次のような指示です。

膝を曲げ、腰を後ろに引き、胸を起こしたままにします。

人間には理解できても、レンダラーが次のことを確実に判断するのは困難です。

  • どの関節を動かすべきか
  • 何度動かすべきか
  • どの座標系で動かすべきか
  • どのくらいの時間をかけるべきか
  • どのような順序で動かすべきか
  • どの物理的な制限の範囲内で動かすべきか

人間、ツール、言語モデルが動作をレンダリングおよびテスト可能な形式で表現するには、共通の構文が必要です。

Posecode は、そのために不足していた表現を提供します。

28 秒で見る Posecode

読みやすい動作ソースから、検証済みの 3D レンダリング、MCP ツール、そして 1 スクリプトでの Web 埋め込みまで。

28 秒の Posecode ビルダーのデモを見る

▶ 28 秒のビルダーのデモを見る
プレーンテキストを入力すると、滑らかでプログラム可能な 3D 動作が出力されます。

### 動きの例
Posecodeでレンダリングしたデッドリフト
pelvis: hinge — デッドリフト
Posecodeでレンダリングしたスクワット
knees: flex 95 — スクワット
Posecodeでレンダリングしたラテラルレイズ
shoulders: abduct 90 — ラテラルレイズ

なぜ拡散モデルによるテキストから動きへの生成ではないのか?

ニューラルネットワークを用いたテキストから動きへの生成システムは、印象的な動きを生成できますが、軽量でプログラム可能なアプリケーションには問題が生じます。

リソースを大量に消費

多くのシステムは大規模モデルと GPU を用いた推論を必要とするため、リアルタイムのコンシューマー向けデプロイは高コストになります。

制御が難しい

通常、編集可能な意味的指示ではなく、座標の軌跡が生成されます。

次のような正確な変更を指示するのは困難です。

2 番目のフェーズで、膝の屈曲を 10 度減らしてください。

検証が難しい

ブラックボックスの軌跡では、読みやすい関節ルール、フェーズの定義、可動域の上限を自然に確認できません。

デバッグが難しい

動きがおかしく見える場合、どの意味的指示が問題を引き起こしたのか、開発者には分からないことがあります。


Posecode のアプローチ

Posecode は、軽量でテキスト主導のパイプラインを使用します。

  • 読みやすい: 動きは小さな .posecode ドキュメントとして保存されます。
  • 構造化されている: 関節、動作、角度、タイミング、制約が明示されています。
  • 編集可能: 開発者やモデルは、個々の動きのプロパティを変更できます。
  • 高速: 解析とレンダリングはクライアント側で行われます。
  • 決定論的: 同じ Posecode 入力からは、同じ検証済み表現が生成されます。
  • 検査可能: パーサーの警告と忠実度チェックによって、問題の内容を確認できます。
  • エージェントに適している: MCP サーバーは、生成、検証、批評、共有のツールを提供します。
  • 安全性を考慮: 作成した角度と IK で生成した角度は、設定された可動域の上限に制限されます。

30 秒でわかるアイデア

.posecode ファイルは、対象となる関節の動作を指定した時間付きフェーズとして動きを記述します。

1. .posecode を記述する2. 動きをレンダリングする
posecode exercise "Body-weight squat"
rig humanoid
pose start = standing

step "Descend" 1.6s settle:
  hips: flex 80
  knees: flex 95
  ankles: dorsiflex 14
  ground-lock: feet
  cue "Sit the hips back"

step "Drive up" 1.2s drive:
  hips: flex 0
  knees: flex 0
  ankles: dorsiflex 0
  ground-lock: feet

repeat 8
スクワットのアニメーション

OpenAI Build Week 2026: Posecode はハッカソン以前から存在していました。Build Week では、実際にリリースした一連の作業において、主要なエンジニアリングツールとして Codex(GPT-5.6 上で稼働)を使用し、プロジェクトを拡張しました。作業には、動きと接地の品質、言語仕様の診断、ライセンスの再構成、リリースの自動化、製品向けページが含まれます。以下のセクションでは、ロードマップではなく実際のコミット履歴に基づいて、以前の作業と Build Week の作業を区別します。


OpenAI Build Week での拡張

Build Week 開始前に存在していたもの

Build Week 開始前の Posecode には、すでに以下が含まれていました。

  • コアとなる .posecode ドメイン固有言語
  • パーサーと中間モーション表現
  • 基本的な可動域検証
  • Three.js/WebGL レンダラー
  • 順運動学
  • 基本的な逆運動学と接地ロックの動作
  • ブラウザプレイグラウンド
  • 動作のサンプルファイル
  • 共有可能な Posecode リンク
  • MCP サーバーの基盤

この初期バージョンは、AI 支援型のエンジニアリングツールとして主に Claude を使用して開発されました。

この先行作業はプロジェクトの基盤となっていますが、今回のハッカソンで新たに貢献した内容としては示していません。

Build Week 中に追加されたもの

以下はすべて、Codex (GPT-5.6) で作成され、マージされた日付付きのプルリクエストです。直接のリンクはBuild Week の証拠を参照してください。

  1. モーションと接地の全面的な改善 — ROM 制約付きリーチ IK、手のひら/握りこぶし/足裏/膝/骨盤の意味的な接触面、複数接触の調整、安定した支持の受け渡し、XBot 対応の接地を追加しました(#76)。
  2. 言語仕様と診断機能 — Posecode 言語/IR v0.3 に、ROM チェック付きオーバーライドに対応したカスタム開始ポーズブロック、リアルタイムおよびクリップ全体の接地/自己衝突診断、アクセシブルなメトリック付き床面ガイドを追加しました(#92)。
  3. ライセンスの再編 — モノレポを Apache-2.0 の標準レイヤー(spec、parser、share、language、LSP、VS Code)と AGPL-3.0 の製品レイヤー(render、embed、MCP、eval、playground)に分割し、商用ライセンスの選択肢を追加しました(#84)。
  4. リリースの自動化 — Changesets による GitHub OIDC 経由の npm 公開、MCP Registry への公開、パッケージのバージョン、エントリーポイント、tarball の内容に関する CI 検証を実装しました(#66)。
  5. サードパーティ統合への対応 — Posecode 0.2 のタイミング語彙(drive/settle/flow/snap)、パーサー検証 CLI、埋め込み互換性メタデータを追加しました(#62)。
  6. 接地ロックの正確性 — 左右それぞれの足/手/肘の接地ロックと、仰向けの動作における背面接触のサポートをパーサー側で検証するようにし、無効な接触を黙って受け入れる動作を置き換えました(#61、#64)。
  7. LLM を第一に考えたランディングページと製品ページ — プロンプト → Posecode → リアルタイム 3D という流れを中心にランディングページを再設計し、インテグレーター向けに Web コンポーネント、パーサー、レンダラー、MCP サーバーを説明する /for-products ページを追加しました(#82、#74)。
  8. モバイルと検索の修正 — モバイルのツールバー/ビューアーのレイアウト、自然な手の向き、Google 検索のインデックス登録に関する問題を修正しました(#78、#65)。
Build Week の機能ステータス
  • モーション/接地品質の全面的な改善をリリース済み(#76)
  • 言語仕様と診断機能をリリース済み(#92)
  • ライセンスの再編をリリース済み(#84)
  • リリースの自動化をリリース済み(#66)
  • 接地ロックの正確性をリリース済み(#61、#64)
  • ランディングページ/製品ページを公開済み(#82、#74)

GPT-5.6 の使用方法

Build Week 期間中、Codex のセッションでは GPT-5.6(GPT-5.6 Terra)が使用されました。このイベントで Codex を支えるモデルです。GPT-5.6 は、上記の Build Week のすべての変更を支える推論エンジンです。既存のモノレポの読み込み、#76 での ROM 制約付き IK と接触面の設計の提案、#92 での言語/IR v0.3 の診断機能の設計、#84 でのライセンス境界の草案作成を行いました。

GPT-5.6 を活用した自然言語から Posecode への生成機能(動きを平易な英語で説明すると、検証済みの .posecode ドキュメントが返される機能)は、既存の posecode_authoring_guide MCP ツールを踏まえると自然な次のステップですが、まだ構築されていません — ここでは、リリース済みの機能として主張していません。


Codex の使用方法

Codex は、Build Week の拡張機能を開発するための主要なエンジニアリングツールです。

ハッカソン期間中、Codex は次の用途に使用されました。

  • 変更を加える前に、既存のモノレポを調査して理解する
  • ROM 制約付きリーチ IK と接触面システムを設計、実装する(#76)
  • 言語/IR v0.3 の診断機能とフロアガイドを設計、実装する(#92)
  • モノレポ全体のパッケージライセンスを再構成する(#84)
  • Changesets/OIDC による npm および MCP Registry のリリースパイプラインを構築する(#66)
  • グラウンドロックの検証と、エラーを通知せず受け入れる不具合を修正する(#61、#64)
  • ランディングページを再設計し、製品連携ページを追加する(#82、#74)
  • 変更ごとに、ユニットテスト、インテグレーションテスト、評価ハーネスのテストを作成する
  • モバイル UI と検索インデックス作成に関するリグレッションを修正する

Codex は実装を加速しますが、プロジェクトの方針は引き続き人間が決定します。DSL のセマンティクス、システムアーキテクチャ、ライセンス境界、生体力学的制約、検証ポリシー、ユーザーエクスペリエンス、生成コードの採用または却下といった決定は、手作業でレビューして選択しました。

Codex の開発ワークフロー

Build Week のワークフローは、次のプロセスに従います。

  1. 具体的な製品上またはエンジニアリング上の課題を定義します。
  2. Codex に関連する実装を調査するよう依頼します。
  3. 1 つ以上の可能なアプローチを提案するよう依頼します。
  4. トレードオフをレビューし、アーキテクチャを選択します。
  5. Codex を使用して、選択したアプローチを実装します。
  6. 型チェック、テスト、生体力学的評価(npm run eval)を実行します。
  7. 失敗を手作業で調査します。
  8. Codex のセッションを追加して、実装を改善します。
  9. コミット前に、最終的な変更をレビューします。

Build Week の証拠

Build Week の作業はすべて公開済みで、日付が記載され、以下に直接リンクされています — プレースホルダーはありません。

Build Week のプルリクエスト
PRマージ日内容
#622026-07-15Posecode 0.2 のタイミング語彙、検証 CLI、埋め込みの互換性
#612026-07-15左右別の接地ロック検証
#652026-07-16Google 検索のインデックス登録を修正
#662026-07-16npm + MCP Registry のリリース自動化
#642026-07-16仰向けの動きに背中の接地ロックを追加
#742026-07-16/for-products 統合ページ
#762026-07-17モーション/接地処理の全面的な見直し:ROM 制約付きリーチ IK、接触面
#782026-07-17モバイルビューアーのサイズ調整と自然な手の向き
#822026-07-17LLM ファーストのランディングページへの再設計
#842026-07-17Apache-2.0 / AGPL-3.0 のライセンス体系を再編
#922026-07-19言語/IR v0.3、接地/自己衝突の診断、床ガイド
Build Week の比較
Build Week 前Build Week 期間中に追加
Posecode DSL のコアカスタム開始ポーズブロックを備えた言語/IR v0.3
基本的な ROM 制限接地、自己衝突、床ガイドの診断
動作する IK/接地処理意味的な接触面を備えた ROM 制約付きリーチ IK
単一のライセンスファイル商用利用の選択肢を備えた Apache-2.0 / AGPL-3.0 の段階的ライセンス
手動での公開npm + MCP Registry の自動リリースパイプライン
編集者向けランディングページLLM ファーストのランディングページ + /for-products 統合ページ
既存のテスト新しい診断、IK、ライセンスの回帰テスト


アーキテクチャ

┌─────────────────────────┐
│ Natural-language prompt │
└────────────┬────────────┘
             │
             ▼
┌─────────────────────────┐
│ GPT-5.6 authoring layer │
└────────────┬────────────┘
             │
             ▼
┌─────────────────────────┐
│     .posecode source    │
└────────────┬────────────┘
             │
             ▼
┌─────────────────────────┐
│ Parser and ROM checking │
└────────────┬────────────┘
             │
             ▼
┌─────────────────────────┐
│ Kinematics and IK layer │
└────────────┬────────────┘
             │
             ├─────────────────────┐
             ▼                     ▼
┌─────────────────────────┐  ┌──────────────────────┐
│ Three.js/WebGL renderer │  │ Fidelity measurements│
└─────────────────────────┘  └──────────┬───────────┘
                                        │
                                        ▼
                             ┌──────────────────────┐
                             │ GPT-5.6 Physics     │
                             │ Critic and revision │
                             └──────────────────────┘

インストールと使い方

ライブプレイグラウンド

インストール不要で、動きをプレビュー、編集、共有できます。

https://posecode.org/play


ローカル開発

必要条件:

  • Node.js 20 以降
  • npm

リポジトリをクローンします:

git clone https://github.com/posecode-dev/posecode.git
cd posecode

依存関係をインストールします:

npm install

プレイグラウンドを起動します:

npm run dev

テストを実行します:

npm test

型チェックを実行します:

npm run typecheck

忠実度評価を実行します:

npm run eval

プレイグラウンドをビルドします:

npm run build

エディターのサポート

VS Code 拡張機能では、.posecode ファイルの構文ハイライト、ROM 診断、 補完機能を利用できます。詳しくは editors/vscode をご覧ください。公開されるまでは、 .posecode ファイルを Markdown に関連付けることで、すぐに基本的なハイライトを 利用できます。

"files.associations": {
  "*.posecode": "markdown"
}

VS Code、Cursor、Sublime Text、Neovim の手順については、エディターガイド をご覧ください。


MCP サーバー

Posecode には、AI エージェント向けの Model Context Protocol サーバーが含まれています。

次のコマンドで実行します:

npx -y posecode-mcp@latest

MCP クライアント設定の例:

{
  "mcpServers": {
    "posecode": {
      "command": "npx",
      "args": ["-y", "posecode-mcp@latest"]
    }
  }
}

MCP サーバーが公開するツール:

  • validate_posecode
  • render_posecode

設定とツールに関するドキュメントの全容については、packages/posecode-mcp をご覧ください。


Web コンポーネントの埋め込み

ページに Posecode プレーヤーを埋め込みます:

<script src="https://unpkg.com/posecode-embed/dist/posecode-embed.js"></script>

<posecode-player src="/movements/squat.posecode"></posecode-player>

プレーヤーは次の用途で利用できます:

  • ドキュメント、
  • 教育コンテンツ、
  • エクササイズガイド、
  • ブログ記事、
  • 動きのライブラリ。

コアライブラリ

パーサーをインストールします:

npm install posecode-parser

レンダラーをインストールします:

npm install posecode-render

例:

import { parse } from "posecode-parser";
import { createViewer } from "posecode-render";

const source = `
posecode exercise "Lateral raise"
  rig humanoid
  pose start = standing

  step "Raise" 1.4s settle:
    shoulders: abduct 90
`;

const { ir, errors, warnings } = parse(source);

if (!ir || errors.length > 0) {
  console.error(errors);
} else {
  console.warn(warnings);
  const viewer = createViewer(document.querySelector("#viewer"));
  viewer.load(ir);
  viewer.play();
}

#viewer 要素は HTML の <canvas> です。

モーションのエクスポート(BVH)

posecode-render は、モーションを Biovision Hierarchy (.bvh)ファイルにベイクできます。Blender などのアニメーションツールにインポートできます。 プレイグラウンドでは Download BVH ボタンを使用します。プログラムから実行する場合:

import { parse } from "posecode-parser";
import { exportBVH } from "posecode-render";

const { ir } = parse(source);
const bvh = exportBVH(ir!, { fps: 30 }); // string, ready to write to disk

オプション:fps(デフォルトは 30)、scale(デフォルトは 1=メートル。センチメートルの場合は 100 を指定)、includeFingers(デフォルトは false)、およびキャリブレーション済みリグ用の proportions。

  • 座標系: 右手系、Y-up。レストポーズではキャラクターは +Z を向きます (レンダラーおよび Three.js と同じです)。Blender の BVH インポートオプションで「Y up」を有効にしてください。
  • 単位: デフォルトはメートルです。
  • 回転チャンネル: Zrotation Xrotation Yrotation(オイラー角の順序は ZXY)。
  • 対象範囲: 作成された関節モーションとルートの移動・回転をエクスポートします。レンダラーの接触/IK ソルブは 再実行されないため、IK に依存するモーション(例:reach: hand_left floor)では、ソルブ後のポーズではなく、 作成されたポーズがエクスポートされます。issue #63を参照してください。
モーションのエクスポート(glTF / GLB)

ウェブアニメーションのパイプライン向けに、posecode-render はリグおよびベイク済みアニメーションクリップを glTF/GLB アセットとしてエクスポートできます。プレイグラウンドでは Download glTF を使用します。プログラムから実行する場合:

import { parse } from "posecode-parser";
import { exportGLTF } from "posecode-render";

const { ir } = parse(source);
const glb = await exportGLTF(ir!);            // GLB ArrayBuffer (default)
const gltf = await exportGLTF(ir!, { binary: false }); // glTF JSON object

生成されたアセットは Three.js の GLTFLoaderで読み込め、 付属のリグ上でクリップを再生できます:

const gltf = await new GLTFLoader().loadAsync(url);
const mixer = new THREE.AnimationMixer(gltf.scene);
mixer.clipAction(gltf.animations[0]).play();
  • 関節ノードには Posecode のボーン ID が名前として付けられます。アニメーション対象のルートは posecode_root です。
  • 制限事項: エクスポートされるのは手続き型マネキンのリグであり、ヒューマノイド/Mixamo の スケルトンではありません。そのため、外部リグへのリターゲティングにはまだ対応していません。また、 BVH と同様に、接触/IK ソルブ後のモーションではなく、作成されたモーションがベイクされます。 issue #90を参照してください。

Posecode の信頼性を保つ仕組み

Posecode は複数のレイヤーでチェックを行います。

1. 可動域のクランプ

レンダリング前に関節角度を制限します。

例:

knees: flex 200

は設定された膝の屈曲上限に合わせてクランプされ、実現不可能な角度をレンダリングする代わりに警告が表示されます。

2. 運動学的評価

エンジンは、以下の処理後に実際のスケルトンを計測します。

  • パース処理
  • 順運動学
  • 逆運動学
  • および接地ロックの補正
3. 幾何学的忠実度の不変条件

モーションの例では、期待される特性を定義できます。

たとえば、デッドリフトでは次の条件を指定できます。

  • 十分な体幹の前傾
  • 膝の前方移動を制限する
  • 足の接地を安定させる
  • および左右対称な股関節の動き
4. GPT-5.6 Physics Critic

Build Week のクリティックは、モーションと決定論的な計測結果を合わせて解釈します。

生体力学上の問題を自然言語で説明し、具体的な修正案を提案します。


パッケージ

パッケージ目的
posecode-language言語定義とエディターサポート
posecode-parser.posecode テキストを検証済みの、値域制約付き中間表現に変換します
posecode-renderThree.js、順運動学、IK を使用してアニメーションするキャラクターをレンダリングします
posecode-sharePosecode ドキュメントを URL で安全に共有できるトークンにエンコードします
posecode-mcpMCP を通じて AI エージェントに Posecode の機能を提供します
posecode-evalヘッドレスで生体力学的および幾何学的忠実度の評価を実行します
playgroundインタラクティブエディター、3D ビューポート、警告、生成、批評、共有機能を提供します

技術

Posecode は次の技術を使用して構築されています。

  • TypeScript
  • JavaScript
  • Node.js
  • Three.js
  • WebGL
  • Vite
  • CodeMirror
  • Model Context Protocol
  • Zod
  • Vitest
  • Playwright
  • esbuild
  • GPT-5.6
  • Codex

範囲

バージョン 0.1

Posecode は現在、次の用途に重点を置いています。

  • 1 人の人物の動き、
  • フィットネス、
  • 理学療法の実演、
  • 姿勢、
  • ダンス、
  • 教育、
  • リハビリテーションの可視化、
  • 順運動学、
  • 接地固定、
  • ROM 制約付き逆運動学、
  • 股関節のヒンジ動作、
  • 立位、座位、臥位のポーズ、
  • 基本的なシーン用小道具、
  • ブラウザー上でのレンダリング。
対象外

次の項目は現在のスコープ対象外です。

  • 2 人またはパートナーとの動き、
  • 包括的な衝突検出と剛体力学、
  • 詳細なオブジェクトの物理演算、
  • 高度な器具のシミュレーション、
  • 複数の関節を使った指のアニメーション、
  • FBX または GLB 形式でのアニメーションのエクスポート、
  • 医学的診断。

制限事項と安全性

Posecode は、エンジニアリングと可視化を目的としたプロジェクトです。

可動域の値と生体力学的チェックは、一般的な参照データと簡略化されたモデルに基づいています。

これらは、次のものではありません。

  • 医学的アドバイス、
  • 診断、
  • 負傷を防止する保証、
  • 理学療法の処方、
  • 資格を有する専門家に代わるもの。

生成された動きは、医療、リハビリテーション、安全性が重要な用途で使用する前に、資格を有する専門家が確認してください。


想定される用途

Posecode は、次の用途をサポートできる可能性があります。

  • ゲームおよびキャラクターのアニメーション、
  • フィットネス指導、
  • エクササイズの可視化、
  • 解剖学教育、
  • 理学療法の実演、
  • 姿勢のトレーニング、
  • ダンスおよび振り付けのプロトタイピング、
  • スポーツ技術の分析、
  • ロボット工学の研究、
  • 合成動作データの生成、
  • 身体性を備えた AI システム。

リポジトリの構成

posecode/
├── packages/
│   ├── posecode-language/
│   ├── posecode-parser/
│   ├── posecode-render/
│   ├── posecode-share/
│   ├── posecode-mcp/
│   └── posecode-eval/
├── playground/
├── editors/
├── spec/
├── docs/
├── scripts/
└── README.md

テスト

すべてのユニットテストを実行します。

npm test

カバレッジを実行します。

npm run coverage

型チェックを実行します。

npm run typecheck

生体力学的評価を実行します。

npm run eval

CI ワークフローでは、プロジェクトが次の条件を満たすことを検証します。

  • 正常にビルドできること、
  • 型チェックに合格すること、
  • ユニットテストに合格すること、
  • 設定された動作の不変条件を満たすこと。

背景

Posecode は、次の設計研究に基づいています。

LLM 向け運動学的動作定義プロトコル

このプロジェクトでは、意味に基づくテキスト形式の動作プログラムが、ブラックボックス型の動作生成に代わる、制御可能で検査しやすい方法となり得るかを検討しています。

言語仕様とコントラクト

Posecode では、規範となるプロトコル定義と、任意で利用できるプロンプト補助資料を分けています。

接触の意味論クイックリファレンス
  • pin moves the body:エフェクターがアンカーに接触するように、人物の浮動ルートを移動します(pin: knee_left floor)。1 つのフェーズで指定できる pin は最大 1 つです。
  • reach moves the limb:ルートを移動せずに、逆運動学で四肢のチェーンを誘導します(reach: hand_left floor)。
  • ground-lock:床に接地している既存の支持状態を維持します(ground-lock: feet)。両足が接地している場合など、複数の床との接触を同時に扱うには、ground-lock または個別の reach 指示を使用する必要があります。複数の pin を使用することはできません。
  • grip:宣言済みの bar または dip-bars 小道具を両手で支えます。
  • cue:表示専用のコーチングテキストです。運動学、制約、再生には影響しません。

こちらも参照してください。

キャラクターアセット

ホストされたプレイグラウンドでは現在、該当する Adobe の利用規約に基づき、Adobe Mixamo のキャラクターとデモ用アニメーションを1つ使用しています。これらのバイナリアセットは Posecode のソフトウェアライセンスの対象外です。サードパーティに関する通知をご覧ください。

レンダラーにはアセット不要のプロシージャルなフィギュアも含まれており、characterUrl を通じて互換性のあるヒューマノイド GLB キャラクターを受け付けます。

複数のキャラクターの外見(avatar avatar1 / avatar2 / avatar3)

組み込みキャラクターはすべて、同じ rig humanoid スケルトン構造を使用しています。 省略可能な avatar ディレクティブを使うと、リグを再定義せずに外見を選択できます(spec/SPEC.mdをご覧ください)。単一の characterUrl の代わりに、createViewer に characterUrls(セレクター → GLB URL のマップ)を渡してください。ir.avatar が存在する場合はそれが使用され、存在しない場合は ir.rig がデフォルトのセレクターになります。ドキュメントを切り替えるか、avatar ディレクティブを編集すると、表示中のキャラクターが切り替わります。マップに登録されていないセレクターを指定した場合(または読み込みに失敗した場合)は、プロシージャルなフィギュアにフォールバックします。オプションについてはpackages/posecode-render/README.mdをご覧ください。また、ウェブコンポーネントで同じ動作を使うには、packages/posecode-embed の character 属性のドキュメントをご覧ください(デフォルトでは無効です。avatar に関係なくキャラクターを固定するには、明示的な URL を設定してください)。

独自のキャラクターリグを使用する

同梱の Mixamo キャラクターを置き換えるには、スキン付き GLB を指す characterUrl(固定)または characterUrls(セレクターごと。上記を参照)を渡してください。要件は次のとおりです。

  • 形式: THREE.SkinnedMesh を含む glTF バイナリ(.glb)。
  • レストポーズ: Tポーズ。
  • ボーン名: Mixamo の規則に準拠していること。名前に mixamorig: / mixamorigN: という名前空間のプレフィックスが付いていてもかまいません。自動的に取り除かれます。次のボーンがすべて必要です。
    • 胴体/頭部:Hips、Spine、Spine2、Neck、Head
    • 腕:LeftArm、LeftForeArm、LeftHand、RightArm、RightForeArm、RightHand
    • 脚:LeftUpLeg、LeftLeg、LeftFoot、RightUpLeg、RightLeg、RightFoot
    • 指(第一関節のみ):LeftHandThumb1、LeftHandIndex1、 LeftHandMiddle1、LeftHandRing1、LeftHandPinky1、および RightHand*1 に相当するボーン

必要なボーンが1つでも欠けていると、キャラクターの読み込みは失敗し、ビューアーは何も表示せずにアセット不要のプロシージャルなフィギュアにフォールバックします。リグに不備があっても、シーンが壊れることはありません。

互換性のあるリグを入手する最も簡単な方法は、mixamo.comを利用することです。Tポーズのキャラクターを「skin with skeleton」を選択してエクスポートし、FBX → GLB に変換してください(例:Blender の glTF エクスポーターまたは FBX2glTF を使用)。ボーン名は自動的に Mixamo 互換になります。

ボーンマップとリターゲット/キャリブレーションのロジックは packages/posecode-render/src/character.tsにあります。別の命名規則(例:VRM のヒューマノイドボーン)に対応するには、BONE_MAP テーブルと、そこでの plainName() によるプレフィックス除去を編集します。


ライセンス

Posecode は、明確な標準と製品の境界を持つオープンソースソフトウェアです。

レイヤーコンポーネントライセンス
オープンスタンダード仕様、サンプル、パーサー、共有コーデック、言語サービス、LSP、VS Code 拡張機能Apache-2.0
製品レイヤーレンダラー、ウェブ埋め込み、MCP サーバー、評価ハーネス、ホストされたプレイグラウンドAGPL-3.0-only

クローズドソース製品で AGPL コンポーネントを使用する必要がある組織は、個別の商用契約について[email protected]までお問い合わせください。

以前のライセンス許諾に変更はありません。MIT ライセンスの改訂版は引き続き MIT であり、0.2.2 の npm パッケージは引き続き Apache-2.0 です。ライセンス、商用ライセンス、商標ポリシーをご覧ください。


フィードバックとサポート

フィードバックや貢献を歓迎します。


アニメーションツール、LLM、ウェブ製品には、検査できる動きが必要です。
Posecode は、動きを読み取り可能なソースにします。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。