Reality Fork:从视频中提取物理参数
Reality Fork 逐帧追踪一个移动物体(基于 Meta SAM 3.1),拟合出运动定律并给出误差条,然后可以在改变的物理条件下“分叉”该运动。
何时使用
用户有一段视频(或一个样本片段 ID)并希望获得:重力、发射速度或角度、空气阻力、球的弹性、摆的长度或周期、斜面加速度,或者“在月球上会是什么样子”。同样适用于当代码需要从镜头中测量的真实常数时。
如何调用
将 <DIR> 替换为 reality-fork 检出目录(即存放 mcp/ 的文件夹)。
MCP 工具(如果 reality-fork 服务器已连接):
list_clips- 片段 ID 以及每个片段是否已分析。analyze_video({path | clip_id, question?, live?})- 标题、答案、运动定律、带有 sigma 的测量值、假设、置信度。fork_motion({clip_id, g?, drag?, e?})- 重新模拟:摘要、着陆/弹跳事件、每 0.1 秒的路径(单位米)。export_measurements({clip_id})- 拟合的运动定律、参数、sigma、比例、帧范围、fps 的 JSON。braking_fork({clip_id, hazard_distance_m = 20, speed_kmh?, react_s = 1.5, decel = 7})- 对于一辆穿过画面的汽车片段:如果有人在前方那么远的地方走出来,它能否停下?差多少米停下?或者它以多大速度撞击?同时提供测量速度(含误差条)和speed_kmh(如果提供)。speed_survey({clip_ids, limit_kmh = 30})- 多个已分析的汽车片段:每个速度(km/h)及 sigma、平均值、带有不确定性的 85% 分位速度、超速比例以及一个简单的摘要。非车辆或未分析的片段将被列出并说明跳过原因。
Shell(相同工具,JSON 输出到 stdout;如果 MCP 不可用,请使用此方式):
node <DIR>/mcp/cli.mjs list
node <DIR>/mcp/cli.mjs analyze <video-path|clip_id> --question "what is g?"
node <DIR>/mcp/cli.mjs fork <clip_id> --g 1.62 # 或 --g moon, --drag none, --e 0.8
node <DIR>/mcp/cli.mjs export <clip_id>
node <DIR>/mcp/cli.mjs brake <clip_id> --distance 20 --speed 30 # 也可 --react 1.5 --decel 7
node <DIR>/mcp/cli.mjs survey <clip_id> <clip_id> ... --limit 30
典型流程:analyze,然后 export 获取数值,可选 fork。将导出的值及其 sigma 作为公差放入用户的代码中。
车辆:刹车与速度调查
当问题涉及街道安全时使用 braking_fork(例如“如果一个孩子 20 米外突然冲出,车能停下吗?” “30 km/h 能造成多大差别?”)。当有人需要某路段的车速数据(用于市政或学校)时使用 speed_survey:市政部门依据的是 85% 分位速度(85% 的驾驶员保持在这个速度以下),而不是平均值。两者都需要片段已用匀速模型分析过,并且物体以超过 2 m/s 的速度横向穿过画面。始终随答案一起说明假定条件:1.5 秒感知-反应时间和干燥沥青路面上的 7 m/s² 急刹车是典型值,而非测量值;可根据疲劳驾驶或湿滑路面更改 react_s 和 decel。每个片段的速度依赖于比例(已知物体的尺寸,例如汽车长度),因此需要说明这一点;如果片段数少于约 20 个,则将 85% 分位速度视为粗略参考。
解读数值
- 每个值都有 1-sigma 误差。
analyze_video测量中的sigma已包含比例不确定性;在export_measurements中,对于真实世界的结论使用sigma_total,对于仅拟合的噪声使用sigma_fit。 - 大约 68% 的重复测量应落在 1 sigma 内,95% 落在 2 sigma 内。如果结果在已知值(地球 g = 9.81)的 2 sigma 以内,则认为一致;不要在 sigma 为 6% 时过度解读 3% 的差异。
- 检查
confidence和assumptions。请说“测得 10.0 +/- 0.7 m/s^2”,而不要只说一个裸数字。 - 分叉结果是基于拟合运动定律的模拟,而非新的测量。时间从轨迹起点开始以秒计,位置以米计(以拟合起点为原点),x 向右,y 向上。
诚实限制
- 摄像头静止;无平移或变焦。
- 运动大致在与摄像头平行的平面内(无强烈深度变化)。
- 比例来自同一平面内已知尺寸的物体(网球、人);错误的尺寸假设会导致所有长度和速度按比例缩放。
- 短片:最多使用 20 秒。视频已标准化为 H.264;帧时基为时钟。
- 新的分析(
live=true)会调用 Meta 的模型,花费几美分的 API 积分,并且仅当进程以RF_ALLOW_LIVE=1启动时才会运行。否则仅可使用已分析过的片段。未经用户同意切勿启用该功能。