WorldAgents: Can Foundation Image Models be Agents for 3D World Models?

Paper: arXiv:2603.19708 Project: ziyaerkoc.com/worldagents Code: none (no public official code found)

Figure 1 解读:这张 teaser 把 WorldAgents 的核心假设画成一个 group chat:Director VLM 根据已验证视角提出下一步探索提示,Foundation Image Model 负责生成/补全新视角,Verifier VLM 同时检查 prompt、已验证历史和 3D 重建一致性,最后把通过验证的帧累积成可 novel-view rendering 的 3DGS 场景。它强调本文不是训练一个新 3D generator,而是把已有 2D foundation image model 当作一个可被调度、可被验收的 agent 来“榨出”隐式 3D 世界先验。

1. Motivation (研究动机)

当前 3D world generation 的核心困难是:高质量 2D 图像模型已经能生成非常逼真的单张图,但可导航、可重建的 3D 世界要求跨视角几乎像素级一致;单次 prompt 或 autoregressive 2D 生成很容易出现物体重复、结构漂移、视角不连续、局部高保真但全局 3D 不成立的问题。传统 3D 生成路线又面临两类瓶颈:一类需要稀缺而昂贵的 3D 数据或 layout/mesh/scene 数据,另一类依赖 SDS、camera-controlled video diffusion 或专门 fine-tuned 3D/video prior,计算复杂且容易在长轨迹中积累几何误差。

本文要回答的问题很具体:2D foundation image models 是否已经隐式学到了足够强的 3D world model 能力,可以在不额外训练 3D 生成模型的情况下,被组织成一个能生成可导航 3D 场景的系统? 作者选择的验证方式不是只看单张图是否像 3D,而是要求系统生成一组带 camera pose 的 verified images,再用 AnySplat 重建为 3D Gaussian Splatting,并从 novel views 渲染检查是否仍然连贯。

这个问题值得研究,因为如果答案是肯定的,3D world synthesis 就可以绕开显式 3D 数据稀缺和重训练成本,把互联网规模 2D 生成模型中已经学到的空间常识转化成可探索 3D 环境。对 embodied AI、仿真环境生成、室内外场景原型设计和 interactive world synthesis 来说,这意味着可以把 2D image model 当作高保真视觉 prior,再用 VLM agent 负责规划和验收,从而在工程上更快组合出 3D-consistent scene generation pipeline。

与 Text2Room、WonderWorld 这类手工提示或 image/depth inpainting 的路线相比,本文希望减少 handcrafted prompt/trajectory 的比重;与 Stable Virtual Camera、WorldExplorer 这类 camera-controlled video generation 路线相比,本文不要求一个专门 fine-tuned 的 camera-controlled video model,而是测试现成 text/image-to-image foundation model 在 agentic orchestration 下的隐式 3D 能力。 这种设定也让论文的科学问题更清楚:如果同一个 2D prior 在严格验收下能稳定扩展成 3DGS,就说明“世界模型能力”至少部分存在于 image model 的 learned distribution 中;如果失败,则瓶颈更可能来自缺少显式几何记忆或缺少可控 camera interface。

2. Idea (核心思想)

核心 insight 是:2D image foundation model 本身不一定能一次性输出稳定的 3D 世界,但它可以在“3D 重投影约束 + VLM 规划 + VLM 验收”的闭环里,被当作一个可调用的生成 agent;只有通过 2D 与 3D 双重验证的新视角才进入世界状态。 这样,2D 模型负责提供高保真局部视觉 prior,AnySplat/3DGS 负责把历史帧变成可重投影的几何约束,VLM agents 负责决定“下一步看哪里、画什么、是否接受”。

本文的关键创新不是提出新的 diffusion loss,而是提出一个 multi-agent framing:Director 读已验证 scene history 并生成局部探索 prompt,Generator 把已有世界重建后从新 pose render 出 warp view,再用 image model 对黑色/未观察区域做 sequential inpainting,Verifier 先做 2D semantic/visual gate,再把候选帧加入 provisional world 并用 3D reconstruction-space metrics + VLM 判断几何是否稳定。

与 WorldExplorer 等 video-diffusion-based 3D scene generation 不同,WorldAgents 不把长程一致性交给视频模型内部记忆,而是显式维护 verified world state,并在每步把候选帧对历史 3D 重建的破坏程度作为接受标准;与只用 VLM 做文本规划的 layout/scene agent 不同,本文的 Verifier 在 3D reconstruction space 中检查 PSNR/SSIM/LPIPS 和 rendered-vs-input image pairs,因此验收标准不仅是“看起来合理”,还要求候选图不会破坏全局 3DGS。

从系统设计角度看,WorldAgents 把一个原本不可控的 2D generator 拆成了“提出候选—投影约束—验收过滤”的 search process。它不假设每次生成都正确,而是假设在足够强的 2D prior 中可以采到局部合理的新视角,再用 VLM/3DGS gate 只保留不会破坏历史世界的样本。因此本文的核心差异不是模型参数更多,而是把 generation 从 open-loop 变成 closed-loop,并把失败样本从世界状态中隔离出去。 这也解释了为什么 ablation 中完整 inpainting + verifier + director 的提升最大:它们分别约束“看哪里”“怎么补全”和“能否进入记忆”,缺一项都会让错误在后续 3D 重建中放大。

3. Method (方法)

3.1 Overall framework:三类 agent 组成闭环 3D 世界生成

Figure 2 解读:整体 pipeline 由 Director、Generator、Verifier 三个角色循环组成。左侧维护 Scene History:每个条目包含已生成图像、对应 camera pose、该视角 prompt、以及 verification status。Director 扫描 verified scene history,决定下一步要向右/向左探索以及新视角应包含的内容。Generator 先把已验证帧用 AnySplat lift 成中间 3DGS,再从新 camera pose render 出一个带已知区域与黑色未知区域的 view,并调用 2D image foundation model inpaint 未观察区域。Verifier 先进行 2D 检查,再把候选帧加入临时 3D reconstruction,渲染历史视角并与 ground truth 对比,只有通过 2D 与 3D gate 的帧才进入 verified history。

论文把世界状态形式化为: 其中 是高保真图像, 是全局坐标中的 camera pose, 是该视角的文本描述。初始帧是特殊情况:直接由输入 prompt 生成,不经过 Director。之后每一步 ,系统从当前世界 产生候选视角 ,并通过二值 gating function 决定是否接受: 如果 ,候选图像、pose 与 prompt 被加入 ;否则丢弃并重新采样。这个设计的直觉是:2D foundation model 的强项是局部视觉真实感和语义补全,但弱项是全局几何约束;因此每一步先用已有 3D reconstruction 约束可见区域,再只让 image model 发挥在 disocclusion/unknown regions 上,最后用 verifier 防止单步 hallucination 污染整个世界状态。

3.2 Director Agent:把全局 prompt 转成局部探索策略

Director Agent 是一个 VLM policy,它读取当前 和全局 prompt ,输出下一视角 prompt: 它解决的问题是 semantic drift 与重复生成。若每一步都用同一个全局 prompt 加 “left/right/backward” 这类静态 camera cue,image model 容易在新视角重复生成同类物体,或者把 scene 扩展成语义上不连贯的区域。Director 会根据 verified images 和 previous prompts 判断当前空间已经覆盖了什么、下一步应该看向哪里、应当补充什么家具/结构/装饰。例如在 sci-fi room 中,它会要求继续右侧金属墙板、蓝青色 neon strips、containment unit、digital control panel 等具体局部元素。

Camera trajectory 不是完全由 VLM 生成。论文先沿一个方向探索,再在经过 次尝试后切到初始帧左侧。下一 pose 由固定旋转和随机扰动组成: 其中 是绕 up-axis 的固定角度旋转, 用于增加覆盖多样性。Director 会被告知当前探索方向,因此它输出的 prompt 与 camera motion 一致。

3.3 Generator Agent:用 3D re-rendering 把 2D inpainting 变成视角扩展

Generator 的输入是当前 verified world 、下一 pose 和 Director 产生的局部 prompt ;输出是候选新视角 。第一步先用 AnySplat 把历史帧 lift 成 3DGS: 第二步从目标 pose rasterize 这个中间 3DGS,得到 warped/rendered view: 由于 camera translation/rotation 会暴露新的 disoccluded regions, 中会有未观察区域。作者没有训练一个专门的 masked 3D inpainting model,而是把未观察区域 render 成黑色,把这个 partial image 和 Director 的 prompt 一起交给 image foundation model: Appendix 6.1 说明 Flux.2 与 NanoBanana 并不原生接受 explicit mask input,因此黑色区域相当于把 spatial mask 编码进 RGB input;实验中 image generation 分辨率为 ,之后 downsample 到 进入 AnySplat。这个细节很重要:WorldAgents 的“inpainting”更像是以 3D re-rendered partial view 为条件的 image-to-image completion,而不是标准 mask-conditioned inpainting API。

3.4 2D & 3D Verifier:用双阶段 gate 防止坏帧污染世界

Verifier Agent 分成 2D 和 3D 两个独立 chat client/session。2D Verifier 接收候选图 、world state 和 Director prompt ,检查明显 artifacts、domain shift、prompt misalignment、结构异常等,输出二值结果: 3D Verifier 关注的问题不同:候选图在 2D 看起来合理,也可能与历史视角几何冲突。作者先构造 provisional state: 再用 AnySplat 重建候选 3DGS: 随后从所有历史 camera poses render 出重建视角 ,并对每个 input/render pair 计算: 这些 metrics 被聚合为 ,并连同所有 input/render image pairs 交给 3D Verifier VLM: 最终接受条件是逻辑与: 如果被拒绝,Generator 重新采样候选;如果连续 次无法生成合格图像,则重新计算 Director 输出和 pose,给系统另一个探索机会。与固定阈值不同,3D Verifier 的 prompt 要求 VLM 结合 PSNR/SSIM/LPIPS 和视觉 pair 做整体判断:只有严重、系统性、破坏 scene usability 的 ghosting、duplication、blur 或 metric failure 才应 reject。

3.5 论文流程伪代码(无 released code,基于 paper algorithm)

代码搜索未找到开源实现(checked: arXiv/PDF/project page links, title+github, arXiv ID, method name/acronym, first-author/org candidate repos, GitHub repo search and GitHub code search; only paper/project/index metadata or no implementation evidence found)。因此下面伪代码不是 released code 复现,而是把论文 §3 与 Appendix 6.1 的算法流程改写成 PyTorch-style skeleton,便于理解各模块输入输出。

from dataclasses import dataclass
import torch
 
@dataclass
class ViewState:
    image: torch.Tensor      # [3, H, W]
    pose: torch.Tensor       # [4, 4]
    prompt: str
 
 
def director_step(vlm_director, verified_views, global_prompt, direction):
    context = {
        "verified_images": [v.image for v in verified_views],
        "previous_prompts": [v.prompt for v in verified_views],
        "global_prompt": global_prompt,
        "direction": direction,
    }
    local_prompt = vlm_director.generate_prompt(context)
    return local_prompt
 
 
def generator_step(anysplat, rasterizer, image_model, verified_views, next_pose, local_prompt):
    theta = anysplat.reconstruct(verified_views)                 # F_AnySplat(W_t)
    warped = rasterizer.render(theta, next_pose)                 # I^{warp}_{t+1}
    # Unknown/disoccluded regions are rendered as black; image model treats them as inpainting target.
    candidate = image_model.inpaint_or_img2img(warped, local_prompt, size=(512, 512))
    candidate_for_3d = torch.nn.functional.interpolate(
        candidate[None], size=(448, 448), mode="bilinear", align_corners=False
    )[0]
    return candidate, candidate_for_3d
 
 
def verifier_step(vlm_2d, vlm_3d, anysplat, rasterizer, verified_views, candidate_view):
    v2d = vlm_2d.accept(
        candidate=candidate_view.image,
        history=[v.image for v in verified_views],
        prompt=candidate_view.prompt,
    )
    if not v2d:
        return False
 
    provisional = verified_views + [candidate_view]
    theta_prime = anysplat.reconstruct(provisional)
    metric_rows, render_pairs = [], []
    for view in provisional:
        rendered = rasterizer.render(theta_prime, view.pose)
        metric_rows.append({
            "psnr": psnr(view.image, rendered),
            "ssim": ssim(view.image, rendered),
            "lpips": lpips(view.image, rendered),
        })
        render_pairs.append((view.image, rendered))
 
    v3d = vlm_3d.accept(render_pairs=render_pairs, metrics=metric_rows)
    return bool(v3d)
 
 
def worldagents_generate(global_prompt, init_image, init_pose, modules, N=14, max_tries=28, retry_per_step=2):
    verified = [ViewState(init_image, init_pose, global_prompt)]
    tries = 0
    while len(verified) < N and tries < max_tries:
        direction = "right" if tries < max_tries // 2 else "left"
        local_prompt = director_step(modules.director, verified, global_prompt, direction)
        for _ in range(retry_per_step):
            next_pose = sample_next_pose(verified[-1].pose, direction)
            image, image_3d = generator_step(
                modules.anysplat, modules.rasterizer, modules.image_model,
                verified, next_pose, local_prompt
            )
            candidate = ViewState(image_3d, next_pose, local_prompt)
            if verifier_step(modules.verifier_2d, modules.verifier_3d,
                             modules.anysplat, modules.rasterizer,
                             verified, candidate):
                verified.append(candidate)
                break
        tries += 1
    final_3dgs = modules.anysplat.reconstruct(verified)
    return final_3dgs, verified

Code reference: none — no public official implementation repo was found during the required code-search matrix, so there is no reproducible branch/commit anchor or source-file mapping.

Paper ConceptSource FileKey Class/Function
Director VLM prompt policynone论文 §3.2 与 Appendix Listing 1.1 描述;无 released source
Generator / sequential inpaintingnone论文 §3.3 与 Appendix 6.1 描述;无 released source
2D Verifiernone论文 §3.4 与 Appendix Listing 1.2 描述;无 released source
3D Verifier with PSNR/SSIM/LPIPSnone论文 §3.4 与 Appendix Listing 1.3 描述;无 released source
Final 3DGS reconstructionnone论文使用 AnySplat 作为 external module;WorldAgents 自身无 released source

4. Experimental Setup (实验设置)

Figure 3 解读:这组 qualitative results 展示 WorldAgents 能从不同 text prompts 生成多对象、可渲染的新视角场景,包括 cyberpunk apartment、pop-art coral reef、cosmic jellyfish hive 等。图的作用不是做单张图美观度展示,而是说明 verified frame history 经 AnySplat 重建后仍能从多个 novel views 渲染出连贯空间。

数据集与评估样本

论文没有使用公开 3D training dataset,也没有说明一个固定 benchmark prompt set 的完整规模;实验主要基于作者设计的 text prompts/scenes 做 3D world generation 与 novel-view rendering 评估。可确定的生成规模来自 §4:每个 scene 目标 verified views 数 ,总尝试预算 ,每一步候选 retry budget 。论文未详细说明总 prompt/scene 数量,因此不能把 figure 中示例场景数量误写为完整 benchmark scale。

Baselines

主要 state-of-the-art baselines 是:Text2Room(image diffusion-based text-to-3D scene generation)和 WorldExplorer(video diffusion-based navigable 3D scene generation)。此外,作者还比较了不同 image model / VLM 组合:Flux.2 [Pro] + GPT-4.1、Flux.2 [Pro] + Qwen3-VL 8B、Flux.2 [Klein 9B] + GPT-4.1、Flux.2 [Klein 9B] + Qwen3-VL 8B、NanoBanana 1 + GPT-4.1。

Metrics

  • CLIP Score (CS):衡量 text prompt 与 generated/rendered image 的语义对齐,越高越好。
  • Inception Score (IS):衡量图像质量与多样性,越高越好。
  • CLIP-IQA (IQA):基于 CLIP 的 image quality assessment,越高越好。
  • PSNR / SSIM / LPIPS:不作为 Table 1/2 主指标,而是在 3D Verifier 中用于判断 input views 与 provisional 3DGS rendered views 的重建一致性;PSNR/SSIM 越高越好,LPIPS 越低越好。

模型、硬件与推理配置

§4 与 Appendix 6.1 给出的配置如下:Flux.2 [Klein] 9B 在本地部署,Flux.2 [Pro] 与 NanoBanana 1 使用官方/API access;VLM 方面 GPT-4.1 走 OpenAI API,Qwen3-VL 8B 本地部署。local deployments 使用单张 NVIDIA RTX A6000。Flux.2 [Klein] 9B 用 bfloat16 precision 和 CPU offloading 以适配显存,guidance scale 为 1.0,inference steps 为 4。所有 image generation 以 输出,再 downsample 到 后交给 AnySplat。Flux.2 [Pro] + GPT-4.1 组合生成一个 scene 约 25 分钟。

论文没有 release launch script/config,因此这些 training/inference numbers 只能锚定到论文 §4 与 Appendix 6.1,而不是代码配置文件。由于本文没有训练 WorldAgents 主模型,严格意义上这里是 inference/runtime setup,而不是 learnable training config。

Figure 4 解读:该图比较 image foundation model 与 VLM 组合对生成质量的影响。作者指出所有组合都能产生 plausible novel views,但容量和接口差异会带来质量差别:Flux.2 [Klein] 可能出现几何不一致或无法补全某些 view,NanoBanana 1 在 inpainting 场景中有时留下未补全区域,Qwen3-VL 8B 偶尔给出较不准确的指令或验证,从而拉低最终结果;Flux.2 [Pro] + GPT-4.1 是表现最稳定的组合。

5. Experimental Results (实验结果)

5.1 与 Text2Room / WorldExplorer 的定量与定性比较

Figure 5 解读:该 qualitative baseline comparison 展示两个 prompt(modern farmhouse kitchen 与 futuristic sci-fi laboratory)下 Text2Room、WorldExplorer 和 WorldAgents 的差异。Text2Room/WorldExplorer 能生成可重建环境,但场景更稀疏,结构真实感较弱,且在 kitchen 中出现边界 blur、结构 artifacts 或 objectless regions;WorldAgents 生成的 sci-fi lab 有更高 object density 和更丰富的几何细节,说明 verifier-filtered sequential inpainting 更善于把局部高保真图像模型约束成连贯 3D scene。

MethodCS ↑IS ↑IQA ↑
Text2Room22.272.790.27
WorldExplorer24.492.120.58
Ours (Flux.2 [Pro] + GPT 4.1)26.792.260.89
Ours (Flux.2 [Pro] + Qwen3-VL 8B)24.492.230.75
Ours (Flux.2 [Klein 9B] + GPT 4.1)26.472.030.84
Ours (Flux.2 [Klein 9B] + Qwen3-VL 8B)24.852.320.75
Ours (NanoBanana 1 + GPT 4.1)25.892.140.70

Table 1 的主要结论是:Flux.2 [Pro] + GPT-4.1 在 CS 和 IQA 上最高(26.79 与 0.89),相对 Text2Room 的 CS 从 22.27 提升到 26.79,IQA 从 0.27 提升到 0.89;相对 WorldExplorer 的 IQA 从 0.58 提升到 0.89。IS 上 Text2Room 的 2.79 高于最佳 Ours 的 2.26,但作者更强调 prompt/semantic alignment 与 visual quality 的综合改善。不同 Ours 组合之间的差别也支持作者的模型分析:VLM 与 image model 容量会影响最终 verifier/generator loop 的稳定性。

5.2 Ablation:Verifier、Director、Inpainting 各自贡献

Figure 6 解读:消融图从左到右逐步加入模块。Generator only 接收历史帧和 prompt 但没有严格 gate,结果明显模糊;加入 Verifier 后,坏帧被过滤,blur 和 inconsistency 缓解,但场景仍不完整且窗户区域有 artifacts;加入 Director 后,探索 prompt 更具体,scene completion 和多样性改善,但 window misalignment 仍存在;完整模型再加入 3D-aware inpainting,通过 re-rendered partial view 锚定几何,最终得到更完整、连贯的 scene。

GeneratorVerifierDirectorInpaintCS ↑IS ↑IQA ↑
19.072.230.60
20.242.430.62
21.802.940.69
26.792.260.89

Table 2 显示每个组件都有可见贡献:加入 Verifier 后 CS 从 19.07 到 20.24、IQA 从 0.60 到 0.62,主要作用是过滤 catastrophic failures;再加入 Director 后 CS 到 21.80、IQA 到 0.69,并且 IS 达到 2.94,说明上下文感知 prompt 能提升 scene completeness、structural diversity 与 object diversity;完整 inpainting 版本 CS 跳到 26.79、IQA 到 0.89,说明显式 3D re-rendered conditioning 对 prompt alignment 和 scene coherence 最关键。IS 在完整模型中从 2.94 降到 2.26,可能意味着完整约束牺牲了一部分 Inception-style 多样性/类别分布信号,但换来了明显更高的 CLIP alignment 与 CLIP-IQA。

5.3 额外 qualitative results 与适用范围

Figure 7 解读:Appendix 的更多结果表明 WorldAgents 不只适用于常见 indoor room,还能生成 medieval stone crypt、reading corner、fantasy cave with crystals and underground pool、rustic farmhouse dining room 等更具想象力或户外/洞穴风格的场景。它验证的是系统对 diverse prompts 的可迁移性,而不是新的定量 benchmark。

5.4 Limitations and conclusion

作者给出的 limitations 主要是未来方向而非失败案例分析:WorldAgents 当前用 VLM 作为 high-level director/evaluator,从 2D image diffusion models 中 distill 3D-consistent navigable environments;下一步可以把 VLM-guided method 扩展到 video diffusion models,因为现代 video priors 虽然短期 temporal coherence 强,但长程 exploratory spatial trajectories 中仍会累积 geometric drift 和 multi-view inconsistency。另一个实际限制是 pipeline 依赖强 image/VLM API 与 AnySplat 重建,Flux.2 [Pro] + GPT-4.1 生成一个 scene 约 25 分钟,且论文没有 release 官方实现,因此可复现性受限。

总体来看,实验支持本文的中心主张:2D foundation image models 确实包含可被提取的隐式 3D world prior,但必须通过 agentic process 把这个 prior 约束到可重建世界中。WorldAgents 的成功来自三点同时成立:Director 防止语义重复/漂移,sequential inpainting 把新视角绑定到已有 3D geometry,Verifier 防止单个 hallucinated frame 破坏全局 3DGS。