PhyGround

已接入

WorldFoundry 中的 PhyGround:数据布局、分数导入与物理推理指标。

本页内容

评测内容

PhyGround 评测文本加图像到视频生成的物理合理性。每个 prompt 都包含文本描述和首帧条件图像。视频会按三个通用维度和 13 条物理规律中的适用项评分:

  • 通用维度:persistence、physical temporal validity、semantic adherence。
  • 固体力学:gravity、inertia、momentum、impenetrability、collision、material。
  • 流体动力学:buoyancy、displacement、flow dynamics、boundary interaction、fluid continuity。
  • 光学:reflection 和 shadow。

官方 benchmark 使用 1-5 的 ordinal judge scale,共 250 条 prompt。WorldFoundry 导入 PhyGround scores.json,并归一化为本地 scorecard 格式。该 runner 不启动 benchmark-local shell 脚本;judge 执行应通过 WorldFoundry/base-model 路径完成,或者直接提供已有结果产物。

官方参考

资源链接
项目页phyground.github.io
论文arXiv:2605.10806
GitHubgithub.com/NU-World-Model-Embodied-AI/PhyGround
HF 数据集NU-World-Model-Embodied-AI/phyground
PhyJudge 模型NU-World-Model-Embodied-AI/phyjudge-9B
仓内 runnerworldfoundry/evaluation/tasks/execution/runners/phyground/run_phyground_official_runner.py

数据与产物布局

标准本地 data root 如下:

<phyground_data_root>/
  prompts/phyground.json
  first_images/
  videos/<model_id>/
    <video_id>.mp4
  annotations/

仓内 prompt resolver 也接受 data/prompts/phyground.jsondata/first_images/,与官方项目布局一致。

WorldFoundry 按下面顺序解析 prompts:

  • --prompt-manifest <path>
  • WORLDFOUNDRY_PHYGROUND_PROMPT_MANIFEST
  • 内置 benchmark assets
  • --benchmark-data-root <root>
  • WORLDFOUNDRY_PHYGROUND_DATA_ROOTWORLDFOUNDRY_BENCHMARK_DATA_ROOT
  • --phyground-root <root>WORLDFOUNDRY_PHYGROUND_ROOT

每个 prompt 生成一个视频,文件名使用 prompt 的 video 字段。如果 prompt id 是 ball_fall_0001,期望输出是:

<generated_videos>/ball_fall_0001.mp4

支持的视频后缀是 .mp4.mov.mkv.webm.avi。覆盖率按文件名 stem 计算。

依赖与分数

HF 数据集是 NU-World-Model-Embodied-AI/phyground,其中包含 prompts/phyground.jsonfirst_images/。发布的 judge 模型是 NU-World-Model-Embodied-AI/phyjudge-9B,通常先通过 WorldFoundry/base-model 基础设施或其他兼容 judge 路径得到 scores.json,再由本 runner 导入。

WorldFoundry runner 的完整评分输入可以是:

  • --official-results-path /path/to/scores.json
  • WORLDFOUNDRY_PHYGROUND_RESULTS_PATH=/path/to/scores.json
  • <generated_videos>/scores.json
  • <generated_videos>/phyground_scores.json

支持的命令

先设置候选视频目录;如果用环境变量导入,也设置 scores 文件:

export WORLDFOUNDRY_GENERATED_ARTIFACT_DIR=/path/to/phyground/videos/my_model
export WORLDFOUNDRY_PHYGROUND_RESULTS_PATH=/path/to/scores.json

通过公开 CLI 导入已有 PhyGround 分数:

worldfoundry-eval zoo benchmark-run \
  --benchmark-id phyground \
  --mode official-validation \
  --benchmark-data-root /path/to/phyground_data_root \
  --official-results-path /path/to/scores.json \
  --generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --prompt-manifest /path/to/phyground.json \
  --output-dir tmp/phyground/import \
  --json

需要使用 runner 专有参数时,例如 --phyground-root--limit--run-fixture,直接调用 runner:

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/phyground/run_phyground_official_runner.py \
  --official-results-path /path/to/scores.json \
  --generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --benchmark-data-root /path/to/phyground_data_root \
  --prompt-manifest /path/to/phyground.json \
  --output-dir tmp/phyground/import \
  --json

如果 scores.json 已经与生成视频放在一起,或通过 WORLDFOUNDRY_PHYGROUND_RESULTS_PATH 提供,直接 --run-official 会复制并归一化该文件:

PYTHONPATH=. "${WORLDFOUNDRY_UNIFIED_PYTHON:-python}" \
  worldfoundry/evaluation/tasks/execution/runners/phyground/run_phyground_official_runner.py \
  --run-official \
  --generated-artifact-dir "${WORLDFOUNDRY_GENERATED_ARTIFACT_DIR}" \
  --benchmark-data-root /path/to/phyground_data_root \
  --output-dir tmp/phyground/run \
  --json

导入路径

  • Runner:worldfoundry.evaluation.tasks.execution.runners.phyground.run_phyground_official_runner
  • 指标:worldfoundry.evaluation.tasks.execution.runners.phyground.phyground_metrics
  • Prompt 布局:worldfoundry.evaluation.tasks.execution.runners.phyground.phyground_prompts
  • Judge artifact adapter:worldfoundry.evaluation.tasks.execution.runners.phyground.phyground_runtime
  • 官方分数聚合:worldfoundry.evaluation.tasks.execution.runners.phyground.phyground_official_scoring

结果文件格式

推荐输入是 official-style 的 scores.json,包含 results 行:

{
  "num_videos": 250,
  "general_dimensions": ["SA", "PTV", "persistence"],
  "results": [
    {
      "video": "ball_fall_0001",
      "SA": 4,
      "PTV": 5,
      "persistence": 5,
      "physical": {
        "laws": {
          "gravity": { "score": 4, "status": "scored" }
        }
      }
    }
  ]
}

也接受带 metric_idscore 的 summary CSV 行。summary 行中大于 1.0 的分数会按百分制处理并除以 100

--output-dir 下会写出:

  • scorecard.json:运行状态、覆盖率、指标表和结果路径。
  • scores.json:使用 --run-official 时复制到输出目录。
  • raw_metric_table.jsonl:每个声明指标一行。
  • per_sample_scores.jsonl:选取的 per-video judge 字段。

指标

主指标:phyground_overall。本页所有指标都是越高越好。

Metric含义
semantic_adherence归一化 SA 分数:生成视频是否符合文本 prompt。
physical_temporal_validity归一化 PTV 分数:物理事件是否按合理时间顺序发生。
persistence归一化物体持久性分数:身份、形状和存在性是否随时间保持稳定。
solid_body_score适用固体力学规律的聚合分数。
fluid_dynamics_score适用流体动力学规律的聚合分数。
optics_score适用反射与阴影规律的聚合分数。
phyground_overall可用通用分数和物理分域分数的均值。

← 返回 Benchmark Hub