FANCHEN XING邢凡辰ENVIRONMENT ART & PROCEDURAL DESIGN
DESIGN STUDY / 2026 / PROCEDURAL ENVIRONMENTS

海岸工坊

AI 全栈工具开发 · 人主导设计,AI 实现与迭代

基于模块语法与空间约束的程序化街区设计

ABSTRACT

本项目探索如何把可识别的建筑语言转化为可控制的生成规则:从门窗与店面变体出发,逐层组织立面、楼栋与街区,再加入海滨公共空间。重点是协调局部差异、整体秩序与交互控制,而不只是增加随机数量。

开发方式:我负责参考解读、规则设定、视觉判断与验收;AI 负责将要求落实为 HDA、网页生成逻辑、界面和测试代码。我通过持续观察结果、提出具体修正并检查边界条件,主导工具从原型到可交互版本的迭代。

Procedural seaside neighborhood
图 01 街区生成结果。美式复古主题;总种子 28,街区大小 1.45。
01
PROBLEM FRAMING

从重复资产到生成规则

最初的参考展示了多个楼栋与店面样本,但展示格并不等同于独立组件。同一店面可以通过雨棚、横招牌、竖招牌及小物件组合产生不同外观;楼栋则是这些组合的更高层容器。由此,组件库需要描述“如何组合”,而不只是“有哪些模型”。

早期结果暴露出三类问题:进深和排列过于一致,局部细节虽然随机却缺少整体层级,以及参数过多导致难以快速控制场景规模。后续设计分别从尺寸范围、分层组合和宏观参数映射三个方面处理。

评价目标

  • 差异性:在不同尺度上产生变化,而不是只替换颜色。
  • 一致性:同一栋楼保持材料与立面节奏,街道物件服从用途。
  • 可控性:能够复现结果,并在保留布局的前提下调整外观。
02
MODULAR GRAMMAR

把楼栋理解为组合器

1

部件

门、窗、雨棚、招牌

2

立面单元

开间与铺面组合

3

楼栋

楼层、楼型与附属设施

4

街区

地块、道路与公共空间

Continuous balcony apartment
图 02 连续阳台公寓。楼层节奏固定,首层店面独立组合。

结构规则与局部变化分开

建筑先确定占地、层数与楼型,再按楼层和开间组织立面。传统消防梯楼与连续阳台公寓共用门窗、铺面等部件,但通过附属结构形成不同轮廓。

门型包含单门、双玻璃门和卷帘门;窗户包含矩形与拱形等变体。雨棚、悬挂招牌、竖招牌在店面层继续抽样。各组件不是无条件叠加,而是在对应位置与尺寸中组装。

Representative procedural assemblies
图 03 24 个代表性组合。为便于阅读,小组件放大、楼栋缩小;这不是生成结果数量的上限。
03
HIERARCHICAL RANDOMNESS

随机性分配到不同尺度

布局采用不规则分区或错落街巷。楼栋宽度、进深、间距、临街退距和层数分别在有效范围内抽样;道路与地块边界限制可用空间,空置概率用于形成疏密变化。建筑不再共享统一进深或整齐的行列。

总种子之下,布局、立面和道具使用分支种子。这样可以在街区模式下保留建筑占地,单独尝试立面变化。分支不是绝对隔离:占地改变会影响立面开间,道具种子也参与部分屋顶设施的抽样。

控制层主要作用设计意图
街区大小 / 密度场地宽深、分区目标、内街宽度先确定场景容量与空间节奏
楼栋大小 / 密度占地范围、间距与空置率控制体量与填充程度
楼高范围每栋楼的层数抽样独立控制天际线变化
局部分支种子布局、立面、道具抽样支持定向迭代与复现
04
SPATIAL CONSTRAINTS

先限定有效位置,再做随机选择

街道生活的可信度不仅取决于物件种类,还取决于它们出现在哪里。候选位置由空间规则产生,概率控制候选是否启用;同一组候选可用于不同密度,减少调整时已有物件整体跳位。

对象约束与边界条件结果
临街铺面两侧符合条件的铺面位置分别抽样;概率 1 时全部启用避免“拉满仍然稀少”的不直观行为
电话亭每个地块组最多一个;密度 1 时每组一个形成稀疏的公共设施节点
转角镜只使用转角候选位置物件位置对应空间功能
人物、车辆与装饰保留间距;车辆方向沿道路,避让占用区域降低穿插与无意义的整排重复
沙滩椅伞组合单椅配伞 / 双椅配伞 / 单椅无伞,附加位置避让在局部聚组中保留分布变化

海岸作为街区的延伸

沙滩与海洋的尺寸随场地变化并限制在一定范围内,不额外暴露一组规模参数。海岸使用独立随机分支,人物和装饰匹配沙面高度。海水采用轻量动画,服务于整体氛围,不进行流体模拟。

05
VISUAL SYSTEM

用语义角色组织配色

建筑与装饰使用不同色板。建筑以整栋为单位维持主色关系,装饰承担更醒目的红黄点缀;人物同时保留深浅衣服,避免人物成为重复的高饱和色块。

两套主题共用布局与几何。“夏日奶油”采用柔和彩墙和米白框架;“美式复古”反转为暖白墙和彩色框架。配色比较固定种子与取景,因此可以观察视觉层级变化,而不是比较两座不同的小镇。

美式复古配色的同一街区
白墙 × 彩色框架砖红、深蓝、芥末黄与棕色构成建筑节奏;装饰以红黄点亮街角。
06
IMPLEMENTATION & EVALUATION

实现、验证与边界

从规则原型到交互工具

Houdini 阶段用于规则探索与 HDA 交付;网页以 JavaScript 实现对应的生成思路,两端不是自动同步工程。浏览器端由 Worker 计算生成数据,再以实例化方式复用基础几何;参数输入使用 180ms 防抖。

可检查的规则,而非视觉印象

现有 13 项自动测试检查复现性、有限数值、占地不重叠、铺面概率端点、特殊装饰位置、海岸范围以及主题隔离等行为。占地测试覆盖两种布局和十个种子;这些检查验证特定条件,不等同于穷尽所有组合。

HDA 交付与引擎工作流

项目还提供 HDA 版本,可通过 Houdini Engine 在支持的引擎中使用。生成结果支持转换或烘焙为网格;重复模型采用实例化复用,以减少相同几何的重复存储。引擎端需要安装匹配版本的 Houdini Engine 插件,并按输出方式进行烘焙或实例处理。

HDA 参数化生成Houdini Engine 接入网格转换 / 重复模型实例

HDA 与浏览器版本是两套交付:前者面向引擎内的资产使用,后者面向即时交互与设计预览;网页端实例化绘制不等同于引擎端的实例输出。

已检查

相同参数与种子复现生成数据;高密度包含低密度候选;主题切换保留建筑布局;无效尺寸范围被拒绝。

性能口径

界面中的毫秒数仅表示规则生成耗时,不是完整加载耗时或帧率。实例化减少重复绘制成本,但复杂度、阴影和设备仍然影响实际体验。

后续研究

可以继续扩展楼型语法,增加多种子视觉回归,并系统测量不同规模与设备下的加载和渲染开销。以上是后续方向,尚未作为完成结果。

07
HUMAN–AI COLLABORATION

把视觉判断转译成可执行的规则

与 AI 的沟通以“参考 → 规则 → 结果 → 修正”为循环。我没有只给一个风格词就接受成品,而是逐层澄清组件关系、空间行为和视觉取舍,让每轮反馈都能对应到可修改、可检查的对象。

01

先纠正问题模型

我指出参考中的十二个展示格并非十二种独立组件:两个店面样本可能来自同一个组合器,楼栋也应随机组合下级模块。这改变了组件库的组织方式。

02

把感受变成边界条件

“随机性不够”被拆解为楼栋宽深浮动、不规则分区和门窗变体;“铺面拉满还是少”被明确为概率为 1 时,符合条件的两侧临街位置都应生成铺面。

03

用图像反馈分离视觉变量

我用截图圈出残留纹理和不合适的构件颜色,分开调整建筑、装饰、海水、植被与人物配色;再决定移除笔触、降低雾感、冷却环境补光。配色迭代保持同一几何,便于判断改动本身。

04

从使用体验回推参数设计

当调整规模需要翻找大量参数时,我提出四个整体控制;发现自动取景掩盖场景大小变化后,要求街区使用固定视角尺度。AI 据此调整参数映射和相机行为,再由我检查结果。

05

把验收标准留在项目中

我明确电话亭每区最多一个、转角镜只能出现在转角等规则;AI 将相应条件落实为实现和测试,并维护规则与参数文档。测试用于检查约束,最终的画面节奏与审美判断仍由我负责。

MAKE A LITTLE SUMMER

创建属于你的小镇

换一种配色,试一个新的种子,让海岸工坊生成你的夏日风景。

体验海岸工坊