AI驱动的3D建筑设计编辑器:技术架构与实现细节深度解析

从传统CAD到自然语言交互,3D建筑编辑器经历了一次彻底的范式转变。Aedifex的核心创新在于将大语言模型作为主要操作入口,用户无需掌握任何建模工具,只需用自然语言描述设计意图即可完成建模操作。 AI驱动的3D建筑设计编辑器:技术架构与实现细节深度解析 IT技术

本文将深入剖析该项目的技术架构与实现细节。

场景数据重构:从树形到扁平的架构演进

原项目的节点结构采用树形存储,AI难以快速定位和操作任意节点。重构方案采用扁平字典加parentId引用的架构,所有节点(墙体、门窗、家具、楼板、屋顶等)平铺存储在Record<NodeId,Node>字典中,通过parentId表达层级关系。这种设计的核心优势在于:任何节点都可以通过ID直接索引,查询复杂度从O(n)降到O(1)。 AI驱动的3D建筑设计编辑器:技术架构与实现细节深度解析 IT技术

同时引入schema版本管理和数据迁移框架,为后续结构演进预留空间。墙体建造支持自动倒角和0.5m网格吸附,门窗通过CSG布尔运算在墙面上精确切割开洞,多层建筑通过Level节点组织,支持逐层查看或爆炸视图。 AI驱动的3D建筑设计编辑器:技术架构与实现细节深度解析 IT技术

空间语义层:AI理解三维世界的技术基础

单纯把场景数据丢给模型,它只能看到一堆坐标数字,并不真正理解空间关系。解决方案是构建一套场景序列化系统,每次对话时自动分析当前场景,提取结构化上下文信息:每个房间的尺寸形状和AABB边界、所有家具的位置和类别、墙面朝向及其上的门窗位置、楼层结构等。整个上下文控制在4000token以内,通过内容哈希做缓存。

空间检测基于网格洪泛填充算法:以0.5m为分辨率扫描整个楼层,标记每个网格单元为空地、墙体、室外或室内,自动识别封闭区域生成房间,并通过Shoelace公式计算面积。墙面也会被标记内外朝向。这层语义让AI能够理解"沙发前面"、"茶几"、"右"等空间关系描述。

28种AI工具:结构化操作能力的完整定义

AI在Aedifex中不是聊天窗口,而是一个拥有完整操作能力的Agent。定义了28种结构化工具调用,覆盖建筑设计的全流程:结构建造(add_wall、add_slab、add_ceiling、add_roof)、门窗开设(add_door、add_window)、家具布置(add_item、move_item、remove_item)、属性修改(update_wall、update_material、update_item)、批量操作(batch_operations)、主动交互(ask_user、propose_placement)。

每一个操作的结果都是真实的三维对象——可以继续手动编辑,可以导出为GLB/STL/OBJ,可以用第一人称走进去查看。家具目录内置100+件家具模型,每件都有完整元数据:尺寸、类别、标签、GLB模型路径、缩放偏移参数。AI选择家具时会经过多级匹配:先精确匹配ID,再匹配名称,最后做模糊子串搜索。

四层碰撞验证:AI布局合理性的技术保障

AI放家具不能随心所欲——不能摆出房间外面,不能和已有家具重叠,靠墙的家具要自动贴合。四层验证体系包括:家具碰撞检测(基于网格空间分区,每个家具占据的网格单元被记录,新放置物品通过AABB检测判断是否重叠)、房间边界钳位(家具不会被放到房间多边形之外)、墙体交叉检测(新建墙体时检测是否与已有墙体交叉)、批量操作内碰撞(同一次batch_operations中的多个物品之间也会做碰撞检测)。

验证通过后,布局优化引擎做后处理:靠墙家具自动吸附到最近墙面(0.3m阈值内);家具朝向自动修正(面向房间中心);功能组间距规则强制执行(沙发到茶几0.4m、沙发到电视柜2.5m);所有家具组之间保持最小0.6m通道宽度。

幽灵预览机制:用户信任度的交互设计

AI生成的操作不会立即写入场景,而是先创建带临时标记的节点,以半透明的"幽灵"形态在3D视口中展示预览效果。预览期间撤销历史会被暂停,不污染操作记录。用户确认后临时节点转为正式节点,拒绝则完整恢复原始状态。系统还会保存被删除节点的快照,确保任何情况下都能回退。

这个设计解决了AI辅助工具的核心信任问题:用户可以放心用自然语言反复试探,不用担心搞乱已有设计。

AgenticLoop与上下文管理

AI采用最多8轮的迭代循环:执行操作→观察结果→判断是否需要继续。系统内置token预估器,支持CJK字符的准确估算(±20%精度),当消耗超过模型上下文窗口的85%时,自动调用摘要模型压缩历史对话——保留关键设计决策和当前场景状态,丢弃中间试探和调整细节。

技术栈选型经过深思熟虑:Three.jsWebGPU+ReactThreeFiber提供浏览器端最强3D方案;Turborepo+pnpm实现增量构建和高效CI缓存;TypeScript5.9+Zod实现编译期加运行时的双重类型安全。