Robot Reel 把策略仿真和物理仿真的运行记录整理成可以交付的东西:浏览器里能逐帧看的回放、带哈希校验的原始数据,以及可以继续在 Blender / OpenUSD 里编辑的三维场景。它关心的问题是,一段机器人演示视频本身证明不了什么,除非观看者能回到每一帧对应的动作、状态、推理耗时和运行环境。Robot Reel 把这些记录和影片一起交付,并附带校验器。
核心实验:SmolVLA 策略压力实验室
这是项目里证据最完整的一组实验。SmolVLA 在 LIBERO 的一个任务上,从 10 组配对的初始状态出发,分别在三种条件下做闭环推理:参考条件、灯光强度降低 25%、相机移动 12 cm。共 30 次试次,每次最多执行 160 个动作(8 秒仿真时间)。实验于 2026-09-12 在 NVIDIA L40S 上录制,使用 PyTorch 2.11.0+cu130:
| 条件 | 成功 | 达到步数上限 | 95% Wilson 区间 |
|---|---|---|---|
| 参考 | 5/10 | 5 | 23.7–76.3% |
| 灯光降低 25% | 4/10 | 6 | 16.8–68.7% |
| 相机 +12 cm | 7/10 | 3 | 39.7–89.2% |
文档没有停在成功率上。相机条件净增的 2 次成功,实际是 3 组从失败变为成功、1 组从成功变为失败,在线页面按配对结果分组展示,保留两个方向的变化。14 次未成功的试次全部是达到动作预算上限,每个回合最后十分之一时段的末端移动距离在 44.8–138.6 mm 之间,都高于 1 mm 的停滞阈值,说明截断时机械臂仍在运动。至于它有没有在推进任务、给更多步数能否成功,文档说需要另行实验。同一块 L40S 上完整重复一次,30/30 次的结果、步数、状态和动作数值一致,策略调用用到的 360/360 个渲染帧一致;3,195 个仅用于记录的帧中有 1 帧不同,这一帧没有进入推理。平均每次策略调用实测 0.491 秒。作者明确写明:这是受控诊断实验,不是 LIBERO 官方榜单成绩;三个区间互相重叠,不能据此说“相机偏移能提升策略”。
30 条试次和 20 条配对结果已作为表格数据集发布在 Hugging Face(Apache-2.0,不含图像、视频或权重)。遥测以 MCAP 格式提供,可以用 Foxglove 打开;精选的第 9 组配对另有 Rerun 工作区。
其他几个实验室
- LeRobot 数据集回放:把任意 LeRobotDataset 的一个 episode(Hub 或本地,v3.0 与 v2.x)导出为可离线打开的文件夹,所有相机共用一条时间轴,每个关节的指令曲线和实测曲线并排显示,可以跳到两者差值最大的帧。导出时锁定 Hub 提交、记录每个源文件的 SHA-256,不需要安装 LeRobot。
- Solver Lab:Genesis 与 Newton 在 L40S / CUDA 上各录三次抛体运动,积分频率为每秒 30、120、480 次。最大位置误差随步长缩小,从 32.70 cm 降到 2.05 cm。这个场景没有碰撞也没有阻力,两个引擎给出的数值相同,所以它只是积分误差诊断,不是仿真器排名。
- Microduck 动作实验室:Pollen Robotics 的 Microduck 在 MuJoCo 中运行官方 ONNX 步行策略(50 Hz,14 个关节),在 0.3 / 0.5 m/s 两种速度命令下保留 8,400 个实测关节样本。执行器采用 PD 近似,属于仿真结果,不是硬件结果。
- 蝴蝶效应、布料、Scene Lab、Director:12 个 Newton 双摆世界的释放角依次相差 0.05°;三组只改弯曲系数的 Newton 布料仿真,保留 42,471 个顶点样本;Microduck 在实景资产场景中的 Blender 工程;以及由 MCP agent 编排机位、字幕和慢动作生成的 Blender 影片,成片的每一帧都能追溯到源样本。
0.16.0 起增加了 robot-reel review-claims:把模型对一段回放给出的结构化说法,与录制下来的结果、动作数量和帧标签逐项对照,全程不做推理。无法核对的说法保留为“未评估”,视觉解释不会被自动判为已验证。
怎么试
最省事的入口是 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 单次示例是一次固定种子的运行,播放时省略了推理等待时间。
- 所有结果都来自仿真,规模较小:压力实验只有一个任务、10 组配对。重复一致只说明在已记录的条件下可以复现,不能证明普遍确定性,也不能用来做因果归因。
- 许可证分层:代码为 Apache-2.0;VLA 画面保留上游署名与资产条款;Microduck 模型衍生结构和媒体沿用上游的非商业、相同方式共享条款,商用前请逐项阅读
THIRD_PARTY.md。 - 项目独立维护,不代表 LeRobot、MuJoCo、Newton、Pollen Robotics 等上游的官方立场。当前版本 0.17.0(2026-09-27)。
链接
- 源码:github.com/noteflowai/robot-reel(中文 README)
- 在线站点:noteflowai.github.io/robot-reel · 策略压力实验室 · SO-101 回放示例 · Solver Lab · Microduck 动作实验室
- Hugging Face:Space · 配对结果数据集
- PyPI:pypi.org/project/robot-reel
- 文档:docs/stress.md · docs/lerobot.md · THIRD_PARTY.md



