Grounding World Simulation Models in a Real-World Metropolis

Paper: arXiv:2603.15583 Code: naver-ai/seoul-world-model Code reference: main @ 48a254e6 (2026-03-17) — official repository checked at this commit; it only contains a release plan, not the implementation.

1. Motivation (研究动机)

这篇论文的核心问题不是“如何生成更真实的城市视频”这么宽泛,而是:能不能让 world simulation model 生成一个真实存在的城市,而不是从首帧之后开始自由想象一个看起来像城市的虚构空间。已有视频 world model 通常可以根据图像、文本、动作或相机控制生成动态场景,能够表现车辆运动、天气变化、物理交互等现象;但它们的环境大多是 imagined world。给定一张起始图,模型之后看到的街道几何、远处建筑、路口结构、地标外观并不需要对应真实地理位置,因而适合“看起来合理”的仿真,却不适合要求空间忠实度的任务。

这类缺口对自动驾驶测试、城市规划、机器人导航、地理位置相关的仿真都很关键。如果目标是在首尔某条真实街道上测试“前方 100 米转弯后会看到什么”、或者在具体路段上生成海啸、火灾、怪兽等文本控制场景,那么模型不能只生成一个 generic urban scene;它必须记住真实街区的道路拓扑、建筑立面、车道方向、街景密度,并在长距离移动时不漂移。论文把这个目标形式化为 real-world grounded video world simulation:输入地理坐标、相机轨迹和文本 prompt,输出与真实城市几何和外观对齐的动态视频。

Figure 1 解读:这张 teaser 展示了 SWM 的目标形态:相机轨迹被放在真实地图上,模型沿着这条路线生成连续视频,并且可以通过文本 prompt 改写场景事件。重点不是单帧画质,而是每个生成片段都要对应到真实城市中的具体位置;这使得“视频 world model”从图像条件生成问题,变成了带地理索引、长程状态更新和多视角几何约束的城市级仿真问题。

把街景数据库作为外部记忆看似自然,但它立刻带来三个非平凡挑战。第一是 temporal misalignment:街景图像来自某个历史时刻,图中车辆、行人、施工状态等 transient content 和当前要生成的动态场景不一致;如果模型学会复制 reference 中的车辆,就会在自回归视频中突然出现或消失。第二是 limited trajectory coverage and temporal sparsity:真实街景通常由车载相机以 5–20 米间隔采集,偏向车辆行驶路线,缺少行人视角、自由相机、连续帧监督;直接拿稀疏 keyframe 训练视频模型会破坏 temporal continuity。第三是 long-horizon error accumulation:自回归生成每个 chunk 都把上一段生成结果作为 history,几十个 chunk 之后,起始帧或固定 attention sink 对当前位置已经不再有参考价值,漂移会累积成真实地图和生成画面的结构错位。

论文研究价值在于它尝试把三条线合在一起:一条是 video diffusion/world model 的动态生成能力,一条是 street-view database 的真实地理覆盖,一条是多视角几何的相机/深度约束。最终系统 Seoul World Model (SWM) 并不是纯检索拼接,也不是静态 3D 重建;它让 pretrained video world simulator 在检索到的真实街景、相机轨迹、文本 prompt 和自回归 history 共同约束下生成未来视频。这个设定使论文非常适合归入 World Model / 3D & Multi-View Simulation:它关心的不是单个 novel view synthesis,而是城市尺度、多视角、长程、可控的 grounded world simulation。

2. Idea (核心思想)

本文的核心洞察是:街景数据库可以作为 world model 的 retrieval-augmented external memory,但 reference 不能被当成普通图像条件直接复制;它必须被拆成几何锚点、语义外观线索和未来位置锚点三种作用。SWM 因此围绕一个 geo-indexed street-view database 构造 RAG:每个生成 chunk 根据目标相机轨迹检索附近 street-view images,用它们提供真实地点的空间布局、局部外观和长程 re-grounding。

与传统 video world model 的差异在于,已有方法通常从起始图或文本条件出发,让模型内部想象后续世界;即使视觉上可信,也不保证“转角之后的建筑”是现实中存在的建筑。SWM 的生成过程则持续查询真实街景数据库:生成前方 chunk 时,模型知道附近有哪些 panorama、这些 reference 的相机位姿和深度估计是什么、它们和目标视角如何通过几何变换对应。换言之,SWM 把“世界状态”从隐式 latent memory 扩展到一个带 GPS、timestamp、depth、pose 的真实城市索引。

论文的关键创新可以概括为四点。第一,构建 real street-view + synthetic urban + Waymo 的训练组合,其中首尔街景提供真实城市 grounding,CARLA synthetic data 提供行人、车辆、free-camera 等更丰富轨迹,Waymo 增加驾驶场景多样性。第二,提出 cross-temporal pairing:训练时 target sequence 和 reference panoramas 必须来自不同 timestamp,迫使模型只利用跨时间稳定的建筑/道路结构,而不是复制 reference 里的车辆行人。第三,提出 intermittent freeze-frame 的 view interpolation pipeline,把稀疏街景 keyframes 转为视频监督,同时匹配 3D VAE 的 4× temporal compression。第四,提出 Virtual Lookahead Sink (VL Sink):每个 chunk 都检索目标终点附近的 street-view image,将其编码为未来时间位置上的 sink token,持续把自回归视频拉回当前地理区域。

这个想法和静态 scene representation 也不同。静态 3D Gaussian / NeRF / map reconstruction 可以保证几何一致性,但很难自然生成车辆、行人、天气、文本控制事件等 dynamic content;纯视频模型会生成动态内容,但容易脱离真实地点。SWM 的折中是:用 geometric referencing 约束布局,用 semantic referencing 提供外观细节,用 pretrained world simulator 的动态先验负责时间演化和文本场景变化。它的本质是一种 real-world grounded generative simulator,而不是离线渲染器。

3. Method (方法)

3.1 数据构造:把稀疏街景变成可训练的视频世界

三类训练数据来源

SWM 的训练数据来自三类来源。第一类是真实首尔街景:论文从 NAVER Map 收集 1.2M panoramic images,带 GPS coordinates 和 capture timestamps;为隐私处理,车牌和行人被模糊化。经过后续深度、位姿、序列处理后,440K images 用于训练。每个 panorama 会被渲染成 pinhole views,并通过 Depth Anything V3 估计 depth maps 和 6-DoF camera poses,再用 GPS metadata 对齐到 real-world metric scale。第二类是 synthetic urban data:论文使用 CARLA v0.9.15,在 Town01–Town06 六个地图上渲染 12.7K videos,总覆盖约 431,500 m²,包含 pedestrian trajectories、vehicle trajectories、free-camera trajectories 三种路径类型。第三类是 Waymo driving videos,用于提升驾驶场景和动态交通多样性。

Figure 2:数据来源与对齐问题

Figure 2 解读:图 2 把数据问题拆成真实街景和合成街景两部分。真实数据提供首尔真实道路和建筑,但采样稀疏、轨迹偏车辆;合成数据提供完整 target video、reference images、depth 和 camera pose,可以覆盖行人、车辆、自由相机等现实街景中不容易采集的轨迹。黄色 reference 位置和 target route 的分离也体现了 cross-temporal / cross-view conditioning:模型不是看同一时刻的邻近帧,而是要从另一个时间的 reference 中抽取稳定结构。

cross-temporal pairing

Cross-temporal pairing 是本文解决 temporal misalignment 的核心数据策略。训练时,一个 target sequence 是沿路线的 个连续 street-view images;对应的 个 references 是空间上邻近但 timestamp 不同的 panoramas。target sequence 面向前进方向并带随机 yaw rotation,references 则渲染为与 paired training frame 匹配的 viewing direction。如果 reference 和 target 是同一时刻附近采集的,车辆、行人等 transient objects 往往也是一致的,模型会错误地学习“把 reference 中的车复制到 target”。cross-temporal pairing 人为打破这种捷径:由于 transient content 不再一致,模型必须关注跨时间仍然稳定的道路、建筑、路口、标牌等结构。

真实街景的第二个问题是 spacing。街景 panorama 通常每 5–20 m 才有一个 keyframe,直接拿这些 keyframes 训练视频模型会产生跳变。论文因此训练 view interpolation pipeline,把 个稀疏 keyframes 合成为 帧连续视频,其中 。朴素 baseline 是 channel concatenation:把 keyframe latent 放到对应 timestamp 的 channel 中,非 keyframe 位置补零。但论文认为这和 video 3D VAE 的时间压缩不匹配,因为 VAE 每 4 帧压缩成一个 latent,单个孤立 keyframe 不构成完整 4-frame group,导致 keyframe adherence 弱。

Figure 3:view interpolation pipeline

Figure 3 解读:图 3 的关键是 4F 与 1F 的区别。channel concatenation 把单帧 keyframe 当作条件插入,和 3D VAE 的 4 帧压缩单位错位;intermittent freeze-frame 则把每个 keyframe 连续复制 4 帧,使它被 VAE 编成一个干净 latent。生成后再丢弃重复的 3 帧,得到原本想要的连续视频。这个设计不是为了让视频真的冻结,而是为了让条件注入方式匹配 backbone 的时间离散化。

Intermittent freeze-frame

Intermittent freeze-frame 的训练和推理都保持同一原则:训练时,每个 keyframe 在像素空间重复 4 帧,使 VAE 正好把它压成一个 latent,训练视频在 keyframe 附近出现短暂 freeze segment;推理时,也把输入 keyframe 重复 4 帧并编码成 clean latent,然后在每个 diffusion step 替换 noisy input latent 的对应位置,保证 exact keyframe conditioning。附录中 view interpolation 的定量结果显示,该策略相对 channel concatenation 明显更好:PSNR 从 22.52 到 25.03,SSIM 从 0.628 到 0.703,LPIPS 从 0.245 降到 0.162。

3.2 SWM 总体框架:自回归 chunk + street-view RAG

SWM 构建在 pretrained Diffusion Transformer (DiT) 上,具体为 Cosmos-Predict2.5-2B 系列,视频帧先经 3D VAE 压缩到 latent space。对第 个生成 chunk,模型接收 text prompt 、目标相机轨迹 、noisy target latents ,输出 denoised target latents 。从第二个 chunk 开始,模型还接收上一 chunk 末尾的 个 history latents: 这部分 history 负责 temporal continuity,但也正是 error accumulation 的来源:如果 history 本身已经漂移,后续 chunk 会继续继承错误。

Figure 4 解读:图 4 是 SWM 的系统总览。用户输入 start location、camera motion 和 text prompt 后,系统先在 geo-indexed database 中检索相关 street-view images;这些 reference 同时进入三条路径:作为 VL Sink 的未来锚点、作为 geometric referencing 的 warped layout、作为 semantic referencing 的 appearance tokens。生成仍然是自回归的,每个 chunk 依赖上一段 history,但 reference 在每个 chunk 都会根据当前位置刷新。

Street-view retrieval 分两步。数据库包含覆盖首尔的 1.2M panoramic images,每个 panorama 被渲染成 8 个 equi-angular pinhole views,并附带 DA3 估计的 metric-scale depth maps 和 6-DoF poses。给定当前 chunk 的目标轨迹 ,系统先做 nearest-neighbor search,找到沿目标轨迹附近的候选 street-view locations;再做 depth-based reprojection filtering,只保留投影到最近目标视角后 coverage 足够的 reference。最终得到最多 个 pinhole references: 以及对应 poses 和 depths 。这些 references 会被对齐到 matched target viewpoint 的 viewing direction。

3.3 Virtual Lookahead Sink:让长程自回归始终看向“前方真实地点”

传统 long video generation 常用 attention sink,例如固定第一帧作为全局上下文。但在城市级轨迹上,第一帧的建筑和道路很快就和当前 chunk 无关;相机行进几百米后,固定 sink 不但信息不足,还可能把模型拉向错误地点。SWM 的 VL Sink 把这个静态锚点改成动态锚点:对每个 chunk,系统查看目标轨迹终点 ,检索离该终点最近的 street-view image,把它当作 virtual future destination。这个 anchor 不是重建目标,不要求和真实未来帧完全一致;它的作用是告诉模型“当前 chunk 应该朝哪个真实区域收敛”。

Figure 5 解读:图 5 对比了 fixed first-frame sink 和 virtual lookahead sink。前者随着相机远离起点会变得过时;后者每个 chunk 都在前方检索一个干净 reference,将其放到未来时间位置。这个 sink 是 error-free 的外部锚点,不从生成历史中继承噪声,因此可以缓解自回归漂移。

数学上,检索到的 VL image 被编码成单个 latent ,并赋予超出当前 chunk 的 RoPE 时间位置。输入 token sequence 和位置为: 训练时,论文用随机 temporal offset 的 ground-truth future frame 作为 future anchor,让模型学习 anchor 距离对生成的影响;推理时, 固定,future frame 替换成检索到的 street-view image。实验设置里两种配置都使用

Figure 6 解读:图 6 展示 cross-temporal pairing 对 attention 的影响。使用 cross-temporal pairing 时,模型对 reference 中车辆等动态物体的注意力降低,更倾向于关注道路和建筑等稳定结构;没有这个策略时,reference 的 transient objects 更容易影响生成,造成动态物体泄漏。

3.4 Geometric referencing 与 semantic referencing:同一个 reference 的两种用法

SWM 不把检索图像简单拼到输入里,而是拆成两条互补路径。Geometric referencing 负责空间布局:对每个待生成目标帧 ,选择空间最近 reference ,用 reference depth 和相对相机变换做 forward splatting: 其中 用深度把 reference image 提升到 3D, 再投影到目标视角。每个 target frame 只用一个最近 reference,而不是融合多个 reference,这是为了避免多个 splat 同时投影带来的 depth error、occlusion 和重影。得到的 warped video 会被 3D VAE 编码,并在 DiT 输入处与 noisy target latent 做 channel-wise concatenation。

Semantic referencing 负责外观细节。depth-based warping 会给出结构,但深度估计误差和遮挡会损失纹理;因此论文把原始 reference images 也编码成 latent tokens。每个 被编码成 ,patch-embedded 后沿 temporal axis 与 target latents 拼接,RoPE 位置设为: 其中 是把 references 和当前 generation window 分开的较大 temporal gap, 是 reference 间距。与 geometric referencing 只取最近 reference 不同,semantic referencing 允许 target latent attend to all references,从多个角度汇集颜色、材质、建筑立面、标志等 appearance cues。所有 target、reference、sink latents 的 camera poses 都通过 6-channel Plücker ray embeddings 编码,经 convolutional encoder 投影后与 latent channels 拼接。

3.5 论文级复现伪代码(released code 未开放)

代码搜索状态:已检查 arXiv comments 中的 project page、项目页 https://seoul-world-model.github.io/、官方 GitHub naver-ai/seoul-world-model,并克隆到 main@48a254e6 (2026-03-17);该仓库仅包含 README.md 和 release plan,说明 model checkpoints、inference code、synthetic training data、street-view interpolation model code/checkpoints 计划后续释放。因此,代码搜索未找到开源实现。下面伪代码根据论文方法和 arXiv LaTeX source 重构,用于理解算法流程,不是对 released implementation 的逐行映射。

def build_cross_temporal_pair(route, streetview_db, num_frames, num_refs, yaw_range=(-90, 90)):
    target_seq = streetview_db.sample_consecutive_views(route, n=num_frames)
    target_views = render_pinhole(
        target_seq.panoramas,
        direction="forward",
        yaw_jitter=yaw_range,
    )
    ref_candidates = streetview_db.query_nearby_panoramas(
        gps_path=target_seq.gps_path,
        exclude_timestamps=target_seq.timestamps,
    )
    refs = []
    for target in target_views:
        ref = select_spatially_nearby_with_different_timestamp(
            ref_candidates,
            target_gps=target.gps,
            target_timestamp=target.timestamp,
        )
        refs.append(render_pinhole(ref.panorama, direction=target.view_direction))
    return target_views, refs[:num_refs]
def intermittent_freeze_frame_condition(keyframes, vae, temporal_stride=4):
    repeated_frames = []
    keyframe_latents = {}
    for frame_idx, frame in enumerate(keyframes):
        repeated = [frame] * temporal_stride
        repeated_frames.extend(repeated)
        latent = vae.encode_video(torch.stack(repeated)).single_temporal_latent()
        keyframe_latents[frame_idx] = latent
    return repeated_frames, keyframe_latents
 
def inject_keyframes_at_diffusion_step(noisy_latents, keyframe_latents, timestep_to_latent):
    conditioned = noisy_latents.clone()
    for frame_idx, clean_latent in keyframe_latents.items():
        latent_idx = timestep_to_latent(frame_idx)
        conditioned[:, latent_idx] = clean_latent
    return conditioned
def retrieve_streetview_references(target_cameras, geo_index, coverage_threshold, k):
    candidates = geo_index.nearest_neighbors(target_cameras.gps_path)
    valid_refs = []
    for ref in candidates:
        projected = forward_project_reference_pixels(
            image=ref.image,
            depth=ref.depth,
            ref_pose=ref.pose,
            target_pose=nearest_target_pose(target_cameras, ref.gps),
        )
        if projected.coverage_ratio >= coverage_threshold:
            valid_refs.append(ref.render_pinhole_aligned_to_target())
    return valid_refs[:k]
def build_virtual_lookahead_sink(chunk_cameras, geo_index, vae, delta_vl):
    endpoint = chunk_cameras[-1]
    future_ref = geo_index.nearest_streetview(endpoint.gps)
    z_vl = vae.encode_image(future_ref.image)
    rope_position = chunk_history_length + chunk_latent_length + delta_vl
    return z_vl, rope_position
def build_reference_conditions(refs, target_cameras, vae, gap, delta_ref):
    warped_frames = []
    semantic_tokens, semantic_positions = [], []
    for t, target_pose in enumerate(target_cameras):
        nearest_ref = select_nearest_reference(refs, target_pose)
        points3d = unproject(nearest_ref.image, nearest_ref.depth, nearest_ref.pose)
        warped = render(points3d, target_pose)
        warped_frames.append(warped)
    z_warp = vae.encode_video(torch.stack(warped_frames))
 
    for k, ref in enumerate(refs):
        z_ref = vae.encode_image(ref.image)
        pos_ref = chunk_history_length + chunk_latent_length + gap + k * delta_ref
        semantic_tokens.append(z_ref)
        semantic_positions.append(pos_ref)
    return z_warp, semantic_tokens, semantic_positions
def autoregressive_swm_generate(model, vae, geo_index, start_frame, trajectory_chunks, prompts):
    history = vae.encode_initial_history(start_frame)
    generated_chunks = []
    for i, cameras in enumerate(trajectory_chunks):
        refs = retrieve_streetview_references(cameras, geo_index, coverage_threshold=0.0, k=model.k_refs)
        z_warp, z_refs, p_refs = build_reference_conditions(
            refs, cameras, vae, gap=model.ref_gap, delta_ref=model.delta_ref
        )
        z_vl, p_vl = build_virtual_lookahead_sink(cameras, geo_index, vae, model.delta_vl)
        noisy = torch.randn(model.chunk_latent_shape, device=model.device)
        denoised = model.diffusion_sample(
            noisy_latents=noisy,
            prompt=prompts[i],
            camera_poses=cameras,
            history_latents=history,
            warped_latents=z_warp,
            reference_tokens=z_refs,
            reference_positions=p_refs,
            lookahead_token=z_vl,
            lookahead_position=p_vl,
        )
        generated_chunks.append(vae.decode_video(denoised))
        history = denoised[:, -model.history_length:]
    return concatenate_chunks(generated_chunks)

Code reference: main @ 48a254e6 (2026-03-17) — pseudocode and mapping below are constrained by the fact that no implementation files were released at this commit.

Paper ConceptSource FileKey Class/Function
Official code release statusREADME.mdRelease Plan: inference code, checkpoints, synthetic data, interpolation model planned but absent
Street-view retrieval代码搜索未找到开源实现; paper source sections/model.tex §4.1N/A — nearest-neighbor retrieval + depth-based reprojection filtering described only in paper
Virtual Lookahead Sink代码搜索未找到开源实现; paper source sections/model.tex §4.2N/A — token and RoPE future position described only in paper
Geometric / semantic referencing代码搜索未找到开源实现; paper source sections/model.tex §4.3N/A — forward splatting and semantic reference tokens described only in paper
Cross-temporal pairing / interpolation代码搜索未找到开源实现; paper source sections/data.tex, appendix.texN/A — data pipeline and IFF strategy described only in paper
Training launch/config代码搜索未找到开源实现; paper source sections/experiments.tex, appendix.texN/A — training numbers are paper-reported, not config-file verified

4. Experimental Setup (实验设置)

训练设置方面,SWM fine-tunes Cosmos-Predict2.5-2B。主实验使用 AdamW,learning rate 为 ,训练 10K iterations,总 batch size 为 48,分布在 24 张 NVIDIA H100 GPUs 上。Teacher-Forcing (TF) 配置中,每个 chunk 为 frames,训练时条件为 个 ground-truth history latents,使用 references 和 reference gap;推理时 history 替换为模型自生成输出。Self-Forcing (SF) 版本先从 TF checkpoint 做 ODE initialization:使用 1K pairs 训练 6K steps,然后继续 fine-tune 10K iterations。SF 用 self-produced history 存入 KV cache,,chunk 更短为 12 frames,,单张 H100 可达到 15.2 fps。TF 和 SF 都使用 Virtual Lookahead Sink,

附录补充的训练细节也很重要。TF 训练时对 conditioning history frames 以 50% 概率注入小 Gaussian noise,,用于缩小 clean training input 和 self-generated inference history 的 gap。三类数据以 ratio-based interleaved sampling 混合:Waymo 20%,Seoul street-view 40%,synthetic 40%。所有 camera extrinsics 统一为 Right-Down-Forward (RDF) 坐标系,并相对每个 chunk 的第一帧定义。为支持 classifier-free guidance 和缺失条件下的退化,训练时 text captions 以 20% 概率替换为空 T5 embeddings;street-view 和 synthetic data 的 reference conditions 以 20% 概率置零;Waymo 样本没有 references,等价于 100% reference dropout;warped video inputs 也以 20% 概率置零。

模型细节方面,SWM 的 backbone 是 2B-parameter Diffusion Transformer,含 28 blocks、16 attention heads、hidden dimension 2048。3D VAE 产生 16-channel latent space,具有 temporal compression 和 spatial compression。DiT 主干处理 noisy target latent 与 warped video conditioning 的 channel concatenation。论文还引入三个 patch embedding modules:main embedder 处理 target+warped channels,reference embedder 和 lookahead embedder 处理 16-channel encoded latents 外加 1-channel padding mask;reference/lookahead embedders 初始化时复制 main embedder 权重。camera poses 先转为 6-channel Plücker ray maps,再经 convolutional encoder 投入 latent space。

评测数据包括两个 cross-city benchmarks:Busan-City-Bench 和 Ann-Arbor-City-Bench。模型训练只用首尔数据,因此 Busan 和 Ann Arbor 都用于检验跨城市泛化。每个 benchmark 含 30 条 test sequences,每条 365 frames,约 100 m。reference retrieval 会从附近位置检索,但排除属于 test sequence 本身的 street-view images,避免模型直接访问 ground-truth viewpoint。

Baselines 包括 Aether、DeepVerse、Yume1.5、HY-World1.5、FantasyWorld、Lingbot。由于 real-world grounded world simulation 是新任务,现有模型并不完全支持同样输入,论文按每个 baseline 支持的条件做适配,细节放在 Appendix B.2。评价指标分三组:视觉和时间质量用 FID、FVD 和 VBench Image Quality;相机跟随用 Rotation Error (RotErr) 和 Translation Error (TransErr);3D adherence 用 masked PSNR 和 LPIPS,只在静态区域上计算,并用 SAM3 分割 moving objects,因为生成视频中的动态车辆/行人不必逐像素匹配 ground truth。

5. Experimental Results (实验结果)

主结果表明,SWM 在 Busan-City-Bench 和 Ann-Arbor-City-Bench 上整体优于比较方法,尤其是在 FVD、camera-following、mPSNR/mLPIPS 等与时间稳定性和几何对齐相关的指标上。定性结果显示,SWM 可以在真实城市中执行三类能力:通过 prompt 生成海啸、火灾、怪兽等 scenario variations;跟随 pedestrian-style 或 free-camera trajectories,而不局限于车辆前向驾驶;在数百米甚至更长距离上保持结构稳定,不出现明显 cumulative drift。

Figure 7 解读:图 7 展示的是 SWM 自身能力,而不是和 baseline 的对比。左侧强调文本控制:真实街景 grounding 不会阻止模型继承 pretrained world simulator 的事件生成能力;中间强调多样相机轨迹:合成数据让模型见过非车载路径;右侧强调长程生成:每个 chunk 通过 retrieval 和 VL Sink 重新锚定,所以比单纯 history-based autoregression 更不容易累积错误。

与其他模型的定量对比如下,数值格式为 Busan-City-Bench / Ann-Arbor-City-Bench:

MethodFID↓FVD↓Img.Q.↑RotErr↓TransErr↓mPSNR↑mLPIPS↓
Aether141.24/132.771096.50/1214.840.55/0.510.030/0.0780.083/0.19211.10/13.030.671/0.635
DeepVerse130.32/182.95892.63/1524.970.53/0.460.062/0.2510.103/0.46912.20/13.430.679/0.727
Yume1.554.82/85.62425.24/993.620.73/0.610.153/0.3260.104/0.27112.09/14.150.667/0.623
HY-World1.549.63/67.02544.04/864.760.78/0.540.044/0.1930.079/0.22111.87/14.260.588/0.575
FantasyWorld83.51/67.72783.11/917.570.63/0.490.056/0.2150.141/0.30210.01/11.970.654/0.592
Lingbot62.14/57.99717.44/1039.500.75/0.600.081/0.2690.073/0.23910.48/12.510.645/0.641
SWM (TF)28.43/56.61301.76/640.170.78/0.660.020/0.0550.015/0.15414.56/15.180.392/0.481
SWM (SF)32.50/43.97325.87/779.940.77/0.570.028/0.2170.033/0.20813.52/14.200.478/0.573

Figure 8 解读:图 8 的定性对比说明,baseline world models 在这个任务上通常不是单纯画质低,而是缺少真实地点约束:有的场景结构会漂移,有的相机轨迹跟随失败,有的长程生成会模糊或坍塌。SWM 的优势来自“持续检索真实街景 + 多视角几何/语义引用 + 未来锚点”的组合,而不是只靠更强的视频先验。

消融实验在 Busan-City-Bench 上评估 data strategy、conditioning strategy 和 attention sink design:

VariantFID↓FVD↓Img.Q.↑RotErr↓TransErr↓mPSNR↑mLPIPS↓
Full model28.43301.760.780.0200.01514.560.392
w/o cross-temporal pairing44.74487.870.770.0570.12312.540.519
w/o synthetic data27.74365.240.780.0210.02013.520.427
w/o real street-view data29.82467.580.770.0590.05013.990.411
w/o geometric referencing33.01398.740.790.0360.05112.330.525
w/o semantic referencing30.27326.180.780.0320.02214.080.442
w/o any attention sink33.06342.810.780.0210.01614.160.406
w/ first frame attention sink32.71378.920.780.0180.01814.250.388
w/ first position attention sink32.41354.610.780.0260.02714.350.379

这些消融支持了几个具体结论。去掉 cross-temporal pairing 是最大退化之一,FID 从 28.43 到 44.74,FVD 从 301.76 到 487.87,TransErr 从 0.015 到 0.123,说明模型如果在训练时看到时间一致的 references,会把动态物体当成可复制条件,推理时遇到任意历史街景就无法稳定分离 transient 和 persistent content。去掉 synthetic data 时 FID 略低到 27.74,但 FVD、mPSNR、mLPIPS 都变差,尤其 mPSNR 从 14.56 到 13.52,说明合成数据主要贡献在轨迹多样性和 3D adherence,而不是单帧分布匹配。去掉真实 street-view data 则 FVD 恶化到 467.58,camera-following 和 3D adherence 也下降,说明真实城市 grounding 不能只靠 CARLA。

conditioning pathway 的消融也符合设计直觉。去掉 geometric referencing 后,RotErr 从 0.020 增至 0.036,TransErr 从 0.015 增至 0.051,mLPIPS 到 0.525,表明 forward-splatted layout 对相机对齐和静态结构一致性很关键。去掉 semantic referencing 后,FVD 从 301.76 到 326.18,mLPIPS 从 0.392 到 0.442,说明原始 reference tokens 对外观纹理和细节保真有帮助。二者互补:几何路径提供“哪里是什么形状”,语义路径提供“它看起来是什么材质/颜色/风格”。

attention sink 的消融表明,固定 first-frame 或 first-position sink 不等价于 VL Sink。w/o any attention sink 的 FVD 为 342.81;first-frame sink 更差到 378.92;first-position sink 为 354.61;完整 VL Sink 为 301.76。虽然某些单项如 first-frame 的 RotErr 或 mLPIPS 看起来接近甚至略好,但整体 FVD 和长程稳定性支持 VL Sink 的设计:城市级轨迹需要不断更新的未来地点锚点,而不是一直看起点。

Figure 9 解读:这张 qualitative ablation 对应表格中的核心结论。没有 VL Sink 时,长距离生成更容易积累漂移;没有 semantic referencing 时,场景结构可能还在,但局部 appearance details 不稳定。图像消融的作用是帮助区分“几何错位”和“外观细节丢失”两种失败,而不是只看 FID/FVD 的整体数值。

论文也报告了清晰的局限。附录 failure cases 指出,车辆偶尔会因为训练数据中 temporally inconsistent street-view sequences 而突然出现或消失;这说明 cross-temporal pairing 能减轻 transient leakage,但还没有显式建模动态对象生命周期。另一个限制是对街景覆盖、GPS/DA3 pose-depth 质量和 reference retrieval 的依赖:如果真实城市没有足够密集或足够新的街景,grounding 会天然受限。最后,官方 GitHub 在 main@48a254e6 尚未释放实现、权重和数据,因此目前论文的训练细节虽然给出了较多数字,但无法从 launch script 或 config file 复核;所有 training config numbers 应视为 paper-reported,而非 released-code verified。

总体来看,SWM 最重要的贡献是把 world model 从“生成一个合理世界”推进到“生成一个真实地理世界中的动态未来”。它的技术路线不是单个模块取胜,而是数据构造、检索、几何变换、semantic tokens、future sink 和自回归训练共同配合。对后续工作来说,最值得延伸的方向包括:更显式的动态对象建模、更大范围城市/国家级街景索引、更强的 online retrieval 与地图更新机制,以及把这种 grounded world simulator 接入机器人或自动驾驶 closed-loop planning。