Imagine a City: CityGenAgent for Procedural 3D City Generation

本文提出了 CityGenAgent,这是一种通过自然语言驱动、结合监督微调与强化学习策略,将城市生成解耦为可解释的街区与建筑程序,从而实现高质量、可控且支持编辑的 3D 城市自动生成框架。

Zishan Liu, Zecong Tang, RuoCheng Wu, Xinzhe Zheng, Jingyu Hu, Ka-Hei Hui, Haoran Xie, Bo Dai, Zhengzhe Liu

发布于 2026-03-02
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

想象一下,你手里有一根魔法指挥棒,只要你对着它说:“我想要一个充满未来感的中国风街区,要有高楼、公园,还要有宽阔的马路”,下一秒,一个完整的、可以走进去的 3D 城市就出现在你面前。

这篇论文介绍的就是这样一个名为 CityGenAgent 的“城市魔法生成器”。它不是像以前那样靠画师一个个建模,也不是靠 AI 随机“画”出一堆模糊的像素,而是通过写代码(程序)的方式,让 AI 像一位经验丰富的城市规划师和建筑师那样,一步步“构建”出真实的城市。

为了让你更容易理解,我们可以把整个过程比作**“盖房子”和“规划社区”**:

1. 核心魔法:把城市拆成“积木”和“说明书”

以前的 AI 造城市,就像让一个画家蒙着眼睛在画布上乱涂,虽然颜色好看,但房子可能是歪的,路可能通向悬崖,而且你想改个窗户颜色,得把整幅画重画一遍。

CityGenAgent 的做法完全不同,它把造城市分成了两个聪明的步骤,就像**“先画社区地图,再设计每栋楼”**:

  • 第一步:BlockGen(社区规划师)

    • 它的任务:听你的指令,决定哪里放房子,哪里放公园,路怎么修。
    • 它的产出:一份**“街区程序”(Block Program)。这就像是一份乐高积木的搭建说明书**。它不会直接给你画好的图,而是写下一行行代码:“在这里放一个 10 层高的住宅楼,坐标是 (10, 20),形状是长方形;在那里放一个公园,不能和楼重叠。”
    • 为什么厉害:因为它写的是“规则”,所以房子绝对不会穿模(重叠在一起),路也一定通顺。
  • 第二步:BuildingGen(建筑设计师)

    • 它的任务:拿到“街区程序”里关于房子的描述(比如“玻璃幕墙”、“中式屋顶”),然后去设计房子的细节。
    • 它的产出:一份**“建筑程序”(Building Program)。这就像是一份装修清单**:“窗户要是蓝色的玻璃,门要是木头的,屋顶要是平的。”
    • 为什么厉害:它能把文字描述变成具体的 3D 模型细节,而且风格统一,不会这栋楼是赛博朋克,隔壁楼是古代宫殿。

2. 如何训练?从“死记硬背”到“举一反三”

为了让这两个 AI 助手变得聪明,作者用了两招“特训”:

  • 第一招: supervised Fine-Tuning (SFT) —— “背题库”

    • 就像让学生先做大量的练习题,老师给标准答案。AI 先学习怎么把“我要一个公园”这句话,正确地翻译成“这里放一个公园”的代码格式。这保证了它不会写错别字,格式是对的。
  • 第二招:Reinforcement Learning (RL) —— “实战演练与打分”

    • 光背题不够,还得会灵活运用。作者设计了两个“考官”给 AI 打分:
      • 空间对齐奖励(Spatial Alignment Reward):考官会检查,“你画的公园和楼重叠了吗?”“楼是不是悬空了?”如果重叠了,扣分!这迫使 AI 学会物理常识,保证城市结构合理。
      • 视觉一致性奖励(Visual Consistency Reward):考官会看生成的图,“你说要‘现代玻璃风’,结果画成了‘茅草屋’,扣分!”这迫使 AI 学会审美,确保生成的画面和你说的文字一模一样。

通过这种“做题 + 实战打分”的训练,AI 不仅学会了怎么写代码,还学会了怎么把城市盖得既合理又好看

3. 它的超能力:像聊天一样修改城市

这是 CityGenAgent 最酷的地方。

  • 以前的方法:如果你想把“所有的楼都改成中式风格”,可能需要复杂的软件操作,甚至要重新生成整个城市。
  • CityGenAgent 的方法:你只需要对 AI 说:“把那个街区的楼都改成中国风,窗户要红色的。”
    • AI 会立刻修改它之前写好的“程序代码”(比如把“玻璃”改成“红窗”),然后重新执行代码。
    • 结果:城市瞬间变了,但路还是那条路,楼的位置也没变,只是风格焕然一新。就像你给游戏里的角色换了一套衣服,而不是重新捏了一个人。

4. 总结:为什么这很重要?

想象一下未来的自动驾驶、VR 游戏或者电影制作:

  • 自动驾驶:需要测试各种各样的城市路况。以前造一个测试城市要几个月,现在 AI 几分钟就能生成一个全新的、结构完美的城市。
  • VR 游戏:你可以随时对游戏世界说:“我想在这个街区加个喷泉,把路变宽点”,世界立刻响应,而且不会出 Bug。

一句话总结
CityGenAgent 就像是一个懂物理、懂审美、还能听人指挥的“城市建筑师”。它不直接“画”城市,而是通过写代码来“盖”城市,让我们能用最自然的语言,轻松创造出高质量、可随意修改的 3D 世界。

在收件箱中获取类似论文

根据您的兴趣定制的每日或每周摘要。Gist或技术摘要,使用您的语言。

试用 Digest →