论文导读
乔治亚理工学院提出Recursive Code World Models,让视觉语言编程智能体从一张参考图生成可执行3D场景代码。它先搭整体,再递归进入局部补建筑和关系,最后回到全局修边界;中世纪村落实验的PSNR从16.8升到19.0,但该消融每种设置只运行一次。
一次性写完整个场景,局部和整体常常顾此失彼
代码世界模型把建筑、道路、树木和相机写成可执行程序。相比一张固定图片,代码可以继续移动物体、修改材质和换视角。难点在于复杂场景无法一次写对:只看全图时,小房子和路口太小;只放大局部,又容易把比例、朝向和相邻关系弄乱。
RCWM使用递归场景程序。根节点先建立全景和相机,再挑出没有解决好的区域,为每个区域创建子程序。子程序重复同一套流程,继续拆出更小部分。局部完成后,父节点重新渲染整体,修正边界、遮挡和共享错误。
论文主图:模型从全局参考开始,逐层放大局部,并把修正后的结构返回整体。
每一层都共享相机投影,再用渲染结果对照原图
如果每个局部自己选择相机,放大的房屋很容易与全景错位。论文把父层投影传给子层,保证局部检查仍对应原图中的同一区域。视觉语言编程智能体同时看到参考裁切和当前渲染,决定是继续深入、修改代码还是返回上一层。
场景程序保存物体、层级和空间关系。递归不是简单放大图片,而是让每个子世界拥有完整的“观察—写代码—渲染—比较”循环。父层在子任务完成后再次检查整体,因此能处理局部修改引出的道路断裂和建筑重叠。
图中说明全景和裁切视图如何保持同一相机投影与放大关系。
更深递归改善村落细节,但样本仍很少
在school-block和medieval-village两个场景的消融中,团队比较平铺、只做局部到全局、只做全局到局部、固定两层递归和自由深度递归。中世纪村落上,自由深度使用3层、33个节点,PSNR为19.0,固定两层为16.8;局部SSIM从0.52升到0.60。
案例图展示参考场景、递归构建节点以及不同视角下的重建结果。
这个结果只来自每个场景每种变体一次运行。school-block中,自由深度只展开两层,与固定两层成绩接近。论文支持“复杂场景中更深调用可能改善细节”,不能据此断言递归越深越好;调用次数也会增加模型与渲染成本。
下一步是控制递归预算并补齐不可见区域
单张图看不到建筑背面和遮挡物后方,场景代码必须补出未观察结构。后续可以让模型标记哪些部分来自证据、哪些是合理猜测,并给递归设置节点和时间预算,优先处理最影响整体的区域。
这类代码世界适合游戏原型、仿真场景和可编辑数字资产。走向生产还要测试更多真实照片、复杂材质和不同编程后端,并检查生成代码是否稳定、安全、可复现。