作者用Rapier.js(WASM版Rust物理引擎)+ React Three Fiber在浏览器内实现60Hz物理仿真,为具身AI/VLA模型构建可对比的开放评测基准,解决现有论文结果无法横向比较的问题。
我在构建 VSArena,一个用于评估具身 AI / VLA(视觉-语言-动作)策略的开放基准竞技场——目前还是个人项目,处于早期阶段。这篇文章讲的是一个具体的技术决策:让物理模拟完全跑在客户端、浏览器里,以及这样做解决了什么、没解决什么。
LLM 已经有公开的、标准的竞技场来比较模型质量(LMArena 是最明显的例子)。具身 AI 还没有等效的东西。大多数 VLA 论文在自定义环境中报告结果——不同的模拟器、不同的任务、不同的评分标准——相互之间无法直接比较。
VSArena 的目标:提供一个单一的、可复现的任务(一个 4 自由度机械臂堆叠三个方块),任何人都能运行并获得评分,无需安装模拟器或搭建基础设施。
模拟完全在浏览器里运行:Rapier.js(一个编译为 WASM 的 Rust 物理引擎)负责刚体动力学,React Three Fiber 负责渲染,目标是 60Hz 的物理步长,与渲染循环解耦。
优势是真实的:让某人观看或遥控机械臂的服务器成本为零,而且消除了"克隆仓库、安装模拟器、配置场景"这种让大多数人从未尝试过基准测试的摩擦。
显而易见的问题:客户端物理模拟可以被本地运行它的人篡改。对观众/开发者演示来说没问题——但对于任何需要被信任的排行榜来说,就不行了。
Studio(浏览器内演示)明确标注为仅供观看/开发使用。它从不向公共排行榜写入数据,这在 UI 中直接标注——在浏览器中运行的任何内容都显示为"seed"或"not client-posted",而不是假装成真实结果。
公开 ELO 只来自托管测试工具:一个服务端进程,以权威方式运行相同的模拟,独立于客户端声称的结果来验证提交。那个测试工具是唯一还没上线的东西——我宁愿先交付它然后再说"提交已开放",而不是过早地声称它可用。
另一个值得提到的分离方式:有两个赛道。VLA 赛道只给策略提供一个 128x128 的 RGB 相机画面和一条语言指令——没有物体姿态。独立的状态赛道直接提供特权姿态,仅用于调试/基线,并明确不会写入同一个公共排行榜。内部评分仍然使用真实姿态来评判空间精度和任务完成度——但那是裁判专属信息,从不暴露给 VLA 赛道的策略。
这个区别很重要,因为一个通过获取精确坐标来"作弊"的策略,并没有真正解决真实的 VLA 模型需要解决的问题(通过像素感知世界)。
Python SDK 打磨(pip install -e sdk/python 今天已经可以在 dry-run 模式下运行)
在当前 IK 基线之外再实现几个基线策略
仓库已公开,如果你想直接查看协议或评分代码:https://github.com/NovaCoding-G/VSArena(MIT 许可)。关于评分方法的反馈——尤其是客户端物理模拟仍然解决不了的问题——非常欢迎。