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 助手变得聪明,作者用了两招“特训”:
通过这种“做题 + 实战打分”的训练,AI 不仅学会了怎么写代码,还学会了怎么把城市盖得既合理又好看。
3. 它的超能力:像聊天一样修改城市
这是 CityGenAgent 最酷的地方。
- 以前的方法:如果你想把“所有的楼都改成中式风格”,可能需要复杂的软件操作,甚至要重新生成整个城市。
- CityGenAgent 的方法:你只需要对 AI 说:“把那个街区的楼都改成中国风,窗户要红色的。”
- AI 会立刻修改它之前写好的“程序代码”(比如把“玻璃”改成“红窗”),然后重新执行代码。
- 结果:城市瞬间变了,但路还是那条路,楼的位置也没变,只是风格焕然一新。就像你给游戏里的角色换了一套衣服,而不是重新捏了一个人。
4. 总结:为什么这很重要?
想象一下未来的自动驾驶、VR 游戏或者电影制作:
- 自动驾驶:需要测试各种各样的城市路况。以前造一个测试城市要几个月,现在 AI 几分钟就能生成一个全新的、结构完美的城市。
- VR 游戏:你可以随时对游戏世界说:“我想在这个街区加个喷泉,把路变宽点”,世界立刻响应,而且不会出 Bug。
一句话总结:
CityGenAgent 就像是一个懂物理、懂审美、还能听人指挥的“城市建筑师”。它不直接“画”城市,而是通过写代码来“盖”城市,让我们能用最自然的语言,轻松创造出高质量、可随意修改的 3D 世界。
Each language version is independently generated for its own context, not a direct translation.
1. 研究背景与问题 (Problem)
核心挑战:
自动生成交互式、高保真的 3D 城市场景是自动驾驶、虚拟现实和具身智能领域的关键挑战。现有的生成方法主要存在以下局限性:
- 几何保真度与可控性不足: 基于神经渲染(NeRF)或扩散模型(Diffusion)的方法虽然能生成逼真的图像,但难以生成一致且精确的 3D 几何结构,导致下游仿真任务困难,且难以进行可控的场景编辑。
- 传统程序化生成的僵化: 传统的基于规则(Rule-based)的程序化生成需要大量人工干预,缺乏灵活性。
- 大语言模型(LLM)的局限: 现有的结合 LLM 的方法(如 CityCraft, UrbanWorld 等)通常直接提示 LLM 并检索固定资产进行放置,缺乏对空间关系的深层推理能力,难以生成结构正确且语义对齐的复杂城市布局。
- 数据稀缺: 缺乏大规模、高质量的城市级 3D 数据集,导致训练困难。
目标:
提出一种由自然语言驱动的分层程序化生成框架,能够生成高质量、结构正确、语义对齐且支持交互式编辑的 3D 城市。
2. 方法论 (Methodology)
作者提出了 CityGenAgent,一个包含两个专用智能体(Agent)的框架,通过领域特定语言(DSL)程序作为中间表示,将城市生成分解为两个可解释的层级:Block Program(街区程序) 和 Building Program(建筑程序)。
2.1 核心架构
- BlockGen (街区生成器):
- 输入: 城市街区的自然语言描述。
- 输出:
Block Program,定义了街区的空间布局,包括建筑物、绿地等的多边形足迹(Polygon)、类型、楼层数等。
- 功能: 确保建筑物不重叠、密度合理,并符合物理常识。
- BuildingGen (建筑生成器):
- 输入:
Block Program 中定义的建筑物外观描述(Facade description)。
- 输出:
Building Program,将建筑分解为组件(如门窗、屋顶),并详细描述其颜色、风格、材质等属性。
- 功能: 确保生成的建筑外观与文本描述在视觉上高度一致。
2.2 两阶段训练策略
为了克服数据稀缺并提升模型的泛化与推理能力,采用了 监督微调 (SFT) 和 强化学习 (RL) 相结合的策略:
- 阶段一:监督微调 (SFT)
- 目标: 让模型学习遵循指令,生成符合 Schema 约束的有效程序(如非自相交多边形、字段完整)。
- 数据: 构建配对数据集(文本描述 -> 目标程序),清洗低质量样本。
- 阶段二:强化学习 (RL) - 基于 PPO
- 目标: 增强空间推理能力,弥合文本描述与视觉模态之间的差距,提升泛化性。
- 奖励机制设计:
- BlockGen 的奖励 (Spatial Alignment Reward):
- 语义一致性 (Semantic Consistency): 使用 GPT-4o 评估生成的布局图与文本描述的语义对齐度及全局合理性。
- 空间结构一致性 (Spatial Structural Consistency): 基于规则计算几何重叠率(Overlap)和建筑覆盖率密度(Footprint Density),确保无碰撞且密度适中。
- BuildingGen 的奖励 (Visual Consistency Reward):
- 执行生成的程序渲染出建筑图像,利用视觉语言模型(VLM)评估文本对齐度、色彩协调性、风格一致性、材质协调性。
2.3 程序执行与资产组装
- 资产准备: 解析程序提取几何参数,通过语义匹配从数据库检索资产,或利用 Text-to-3D 技术动态生成缺失组件。
- 资产组装: 根据程序指令(旋转、平移、缩放)将资产实例化,组装成完整的 3D 城市场景。
- 交互式编辑: 用户可通过自然语言直接修改
Block Program 或 Building Program(例如“改为中式风格”或“增加楼层”),系统自动更新程序并重新生成场景。
3. 关键贡献 (Key Contributions)
- 分层程序化表示: 提出了专为 3D 城市设计的
Block Program 和 Building Program。这种分层解耦了空间布局与建筑组成,实现了灵活的控制和可执行的生成。
- CityGenAgent 框架: 构建了包含 BlockGen 和 BuildingGen 的双智能体系统。创新性地引入了空间对齐奖励和视觉一致性奖励,显著提升了模型的空间推理能力和视觉保真度。
- 两阶段训练范式: 结合 SFT 和 RL(PPO),有效解决了程序格式正确性与复杂场景泛化之间的矛盾,使模型能够处理未见过的复杂布局。
- 自然语言交互编辑: 实现了基于自然语言的细粒度场景操控,用户无需外部插件即可修改街区密度、建筑高度、风格等属性。
4. 实验结果 (Results)
4.1 定量评估
- 文本对齐与视觉一致性: CityGenAgent 在 GPT 评估和用户研究中均取得了最高分(Text Alignment: 0.286, Visual Consistency: 6.7/6.1),优于 CityDreamer, CityCraft, Hunyuan3D 等现有方法。
- 几何质量: 在网格质量指标上表现优异。
- ROS (正交性得分): 0.357 (最高),表明生成的建筑边缘更垂直、结构更规整。
- OTR (过度细分比率): 177.970 (最低),相比 Hunyuan3D 降低了近 40 倍,说明网格分布更高效,冗余几何更少。
- 程序合规性: 格式准确率达到 98%,碰撞率仅为 4.89%,远优于基线模型(如 Qwen3-8B 直接生成的碰撞率为 23.97%)。
4.2 定性对比
- 相比基于渲染的方法(如 InfiniCity, SGAM),CityGenAgent 生成的城市细节更清晰,结构更符合现实规则。
- 相比 Hunyuan3D,避免了卡通化风格和过度细分的网格,生成了更干净、平面的表面和更清晰的建筑结构。
- 编辑能力: 能够成功执行“改为中式风格”等指令,不仅改变纹理,还能自动调整楼层高度以符合中式建筑的空间拓扑约束,证明了模型内化了风格与结构的联合分布。
4.3 效率分析
- 生成速度: 生成单个街区仅需 0.75 分钟,远快于 Hunyuan3D (3 分钟) 和人工建模 (60 分钟)。
- Token 效率: 虽然双智能体架构增加了少量 Token 消耗(+4.1%),但性能提升显著(+17.7%),整体效率更高。
5. 意义与影响 (Significance)
- 技术突破: 证明了将大语言模型与程序化生成(Procedural Generation)深度结合,并通过强化学习优化空间推理,是解决大规模 3D 城市生成难题的有效途径。
- 应用价值: 为自动驾驶仿真、游戏开发、虚拟现实和城市规划提供了低成本、高效率且可控的 3D 场景生成工具。
- 交互范式: 确立了“自然语言 -> 结构化程序 -> 3D 场景”的新范式,使得非专业用户也能通过对话轻松操控复杂的 3D 世界,推动了具身智能环境构建的发展。
- 未来方向: 尽管在推理速度和移动端部署上仍有挑战,但该工作为构建可扩展、可编辑的沉浸式 3D 世界奠定了坚实基础。
总结: CityGenAgent 通过引入可编辑的程序化中间表示和针对性的强化学习奖励机制,成功解决了现有 3D 城市生成方法中几何结构混乱、可控性差和编辑困难的问题,实现了高质量、语义对齐且支持自然语言交互的 3D 城市自动生成。