Robot Reel:ロボットの方策シミュレーションを、コマ単位で検証できる再生と 3D シーンに

シミュレーションの記録を、ブラウザ再生、ハッシュ検証付きの生データ、3D シーンにまとめます。中心は SmolVLA の閉ループ 30 回のペア実験です。

Robot Reel は、方策(ポリシー)シミュレーションと物理シミュレーションの実行記録を、そのまま受け渡せる成果物に整理するツールです。ブラウザでコマ送りできる再生、ハッシュで検証できる生データ、Blender / OpenUSD で引き続き編集できる 3D シーンを出力します。問題意識は、ロボットのデモ動画はそれだけでは何も証明しない、という点にあります。視聴者が各フレームに対応する行動、状態、推論時間、実行環境までさかのぼれなければ意味がありません。Robot Reel はこうした記録を映像と一緒に提供し、検証ツールも添付します。

中心となる実験:SmolVLA 方策ストレステスト・ラボ

プロジェクトの中で最も証拠がそろった実験群です。SmolVLA を LIBERO の 1 つのタスクで、10 組のペアになった初期状態から、参照条件、照明強度を 25% 下げた条件、カメラを 12 cm 動かした条件の 3 条件でそれぞれ閉ループ推論させました。試行は計 30 回で、各試行で実行する行動は最大 160 回(シミュレーション時間で 8 秒)です。実験は 2026-09-12 に NVIDIA L40S 上で、PyTorch 2.11.0+cu130 を使って記録されました。

条件成功ステップ上限に到達95% Wilson 区間
参照5/10523.7–76.3%
照明 25% 低下4/10616.8–68.7%
カメラ +12 cm7/10339.7–89.2%

ドキュメントは成功率だけで終わっていません。カメラ条件での成功の純増 2 回は、実際には 3 組が失敗から成功に、1 組が成功から失敗に変わった結果です。オンラインのページではペアごとの結果をグループ化して表示し、両方向の変化を残しています。成功しなかった 14 回の試行はすべて行動数の上限に達したもので、各エピソードの最後の 10 分の 1 の区間におけるエンドエフェクタの移動距離は 44.8–138.6 mm と、いずれも停滞とみなすしきい値の 1 mm を上回っていました。つまり、打ち切りの時点でもアームは動き続けていました。それがタスクを前に進めていたのか、ステップ数を増やせば成功したのかについては、別の実験が必要だとドキュメントは述べています。同じ L40S で全体をもう一度繰り返したところ、30/30 回の結果、ステップ数、状態、行動の数値が一致し、方策の呼び出しに使われた 360/360 枚のレンダリングフレームも一致しました。記録専用の 3,195 フレームのうち 1 フレームだけが異なりましたが、このフレームは推論には使われていません。方策の呼び出し 1 回あたりの実測平均は 0.491 秒です。作者は、これが管理された条件での診断実験であり LIBERO の公式リーダーボードの成績ではないこと、3 つの区間が互いに重なっているため「カメラのずれで方策の性能が上がる」とは言えないことを明記しています。

30 件の試行と 20 件のペアの結果は、表形式のデータセットとして Hugging Face で公開されています(Apache-2.0。画像、動画、重みは含みません)。テレメトリは MCAP 形式で提供され、Foxglove で開けます。選定した第 9 ペアには Rerun のワークスペースも用意されています。

そのほかのラボ

  • LeRobot データセットの再生:任意の LeRobotDataset の 1 エピソード(Hub またはローカル、v3.0 と v2.x)を、オフラインで開けるフォルダとして書き出します。すべてのカメラが 1 本のタイムラインを共有し、関節ごとに指令値と実測値の曲線を並べて表示し、両者の差が最大になるフレームへジャンプできます。書き出し時には Hub のコミットを固定し、各ソースファイルの SHA-256 を記録します。LeRobot のインストールは不要です。
  • Solver Lab:Genesis と Newton で、L40S / CUDA 上で放物運動をそれぞれ 3 回記録しています。積分の頻度は毎秒 30、120、480 回です。最大位置誤差はステップ幅が小さくなるにつれて、32.70 cm から 2.05 cm に下がります。このシーンには衝突も抵抗もなく、2 つのエンジンは同じ数値を出すので、これは積分誤差の診断であって、シミュレータのランキングではありません。
  • Microduck モーションラボ:Pollen Robotics の Microduck を MuJoCo 上で公式の ONNX 歩行方策(50 Hz、14 関節)で動かし、0.3 / 0.5 m/s の 2 種類の速度指令で、実測の関節サンプル 8,400 個を保存しています。アクチュエータは PD 近似で、これはシミュレーションの結果であり、ハードウェアの結果ではありません。
  • バタフライ効果、布、Scene Lab、Director:解放角を 0.05° ずつずらした 12 個の Newton 二重振り子の世界、曲げ係数だけを変えた 3 組の Newton 布シミュレーション(頂点サンプル 42,471 個を保存)、実写ベースのアセットで作ったシーンに置いた Microduck の Blender プロジェクト、そして MCP エージェントがカメラ位置、字幕、スローモーションを組み立てて生成した Blender 映像です。完成した映像の各フレームは、元のサンプルまでたどれます。

0.16.0 からは robot-reel review-claims が加わりました。ある再生についてモデルが出した構造化された主張を、記録された結果、行動の数、フレームのラベルと 1 項目ずつ照合するもので、その過程で推論は一切行いません。照合できない主張は「未評価」のまま残し、視覚的な説明が自動的に検証済みと判定されることはありません。

試し方

いちばん手軽な入口は Hugging Face Space と GitHub Pages のサイトです。再生を見るだけなら、インストールもアカウントも不要です。コマンドラインツールには Python 3.12 以降が必要です。

python3 -m venv .venv
source .venv/bin/activate
python -m pip install robot-reel==0.17.0
robot-reel --help

自分の LeRobot データを再生する例として、SmolVLA のファインチューニングに使われた SO-101 データセットを使います。

python -m pip install 'robot-reel[lerobot]==0.17.0'
robot-reel lerobot lerobot/svla_so101_pickplace --episode 0 --output artifacts/so101
robot-reel lerobot artifacts/so101 --verify --check-media --check-source

リポジトリにある記録を検証するだけなら、ソースをクローンすれば標準ライブラリだけで実行できます。

git clone https://github.com/noteflowai/robot-reel.git
cd robot-reel
python3 -m robot_reel.cli stress docs/stress   # ペア実験のすべての試行を検証する
python3 -m robot_reel.cli vla docs/vla         # 記録済みの方策の実行と証拠を確認する

記録し直すには、実験に応じて CUDA、Newton、Blender などを含む完全な実行環境が必要です。リポジトリの記録ガイドを参照してください。

制約と注意点

  • ブラウザで表示されるのは、すべて記録済みのシミュレーションです。VLA の単発の例は固定シードによる 1 回の実行で、再生時には推論の待ち時間を省いています。
  • 結果はすべてシミュレーションによるもので、規模も小さく、ストレステストは 1 タスク・10 ペアだけです。繰り返して一致したことは、記録された条件の下で再現できることを示すだけで、一般的な決定性の証明にはならず、因果の帰属にも使えません。
  • ライセンスは階層構造になっています。コードは Apache-2.0 です。VLA の映像は上流のクレジット表記とアセットの条項を維持しています。Microduck のモデルから派生した構造とメディアは上流の非営利・継承の条項に従います。商用利用の前に THIRD_PARTY.md を項目ごとに読んでください。
  • このプロジェクトは独立して保守されており、LeRobot、MuJoCo、Newton、Pollen Robotics などの上流の公式見解を示すものではありません。現在のバージョンは 0.17.0(2026-09-27)です。

リンク