ttktjmt/mjswan
MuJoco Simulation on WebAssembly with Neural networks
mjswan – ブラウザでのリアルタイムインタラクティブ MuJoCo
概要
mjswan は、完全にウェブブラウザ内で MuJoCo 物理シミュレーションを実行できる Python/JavaScript ライブラリです。MuJoCo‑WASM エンジン、ニューラルネットワークポリシー用の ONNX ランタイム、3‑D レンダリング用の Three.js をバンドルしているため、強化学習(RL)デモをサーバーサイドの計算なしで静的ウェブページ(例:GitHub Pages)として共有できます。
主な機能
| 機能 | 意味 |
|---|---|
| リアルタイムシミュレーションとポリシー制御 | MuJoCo モデルを読み込み、ONNX ポリシーをアタッチし、ブラウザでエージェントの動作をフレームごとに確認できます。 |
| インタラクティブ操作 | マウス、タッチ、VR コントローラーでオブジェクトに力を加え、「もしも」のシナリオをライブで探索できます。 |
| クロスプラットフォーム(デスクトップ、モバイル、WebXR) | 通常のブラウザと WebXR 経由の VR/AR ヘッドセットで動作し、ハンドトラッキングに対応。 |
| クライアントのみ | 物理、レンダリング、推論はすべてローカルで行われます。バックエンドサーバーは不要です。 |
| 静的サイト対応 | デモ全体が静的アセットにコンパイルされ、GitHub Pages やノートブックへの埋め込みに最適です。 |
| mjlab‑ネイティブ | 組み込みスキル(mjlab-to-mjswan)により、mjlab ベンチマークスイートの任意のタスクをウェブデモに変換できます。 |
| カスタマイズ可能な可視化 | 独自の Three.js シェーダーをプラグインしたり、カメラコントロールを変更したり、追加の UI ウィジェットをオーバーレイできます。 |
始め方
- インストール – pip(
pip install mjswan)または npm(npm install mjswan)でインストールします。 - デモを実行 – リポジトリをクローンした後、サンプルの追加パッケージをインストールし、CLI でデモを起動します:
mjswan demo simple - 独自アプリを作成 – 最小限のスクリプトは次のようになります:
モデルを置き換え、必要に応じて ONNX ポリシーをアタッチすると、RL エージェントの動作を確認できます。import os, mujoco, mjswan model_path = os.path.join(os.path.dirname(mujoco.__file__), "testdata", "model.xml") spec = mujoco.MjSpec.from_file(model_path) builder = mjswan.Builder() builder.add_project(name="Sanity Check")\n .add_scene(name="Test Model", spec=spec) app = builder.build() app.launch() # シミュレーションを含むブラウザウィンドウが開きます
活用シーン
- 教育とデモ – 重いネイティブバイナリのインストールを求めずに、学生に RL の概念を紹介できます。
- 研究の再現性 – 論文の MuJoCo 実験を単一の URL として公開し、誰でも実行できます。
- 迅速なプロトタイピング – ポリシーや環境の調整を反復し、ブラウザで即座に効果を確認できます。
エコシステムと拡張
- mjswan Cloud – ホスト型サービス(ベータ版)。静的サイトを自分で構築せずにデモをアップロードして共有できます。
- mjswan_playground – 単純な振り子から人型ロコモーションまで、すぐ使えるデモのキュレーションコレクション。
- mjlab‑to‑mjswan スキル –
mjlabベンチマークスイートのタスクをウェブ対応シミュレーションに変換します。
ドキュメントとコミュニティ
- 完全なドキュメント:https://mjswan.readthedocs.io
- デモサイト:https://ttktjmt.github.io/mjswan/
- CI バッジは、プロジェクトが積極的にテストされていることを示しています(GitHub Actions、PyTest、ReadTheDocs)。
ライセンス
Apache‑2.0 – 帰属表示を保持する限り、コードの使用、変更、再配布が可能です。
要点: ブラウザで MuJoCo ベースの RL 環境を紹介する軽量な方法が必要な場合(教育、研究デモの共有、インタラクティブなウェブアプリの構築など)、mjswan は物理、推論、3‑D レンダリングをサーバーコンポーネントなしで処理する既製のスタックを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト