← 回成果库

🏛️ ZAHA-FORGE v2 —— 用 UEG 万物引擎生成器(七层23格·九闸)把「扎哈式建筑生成」升级成一台带质检线的引擎

日期:2026-08-02 | 项目:M-401 / 台账 P600 | 成品:<https://metazero-terminal.pages.dev/zaha/>


一句话结论

主席要的「扎哈式建筑生成 3D 模型 + 网页看随机效果」在上一轮已经做出来了;这一轮真正做的是——按现行 UEG 把它从「能生成」升级成「能生成 + 自带质检线 + 质检线自己也被质检」。过程中六级测试当场抓出一个 v1 藏了整整一版的假指标:折痕量表一直在误杀好曲面(随机通过率 3/12,修好后 10/12)。


一、先查家底:这不是从零做的

查到什么结论
web/terminal/zaha/(网页 3 个文件)、MetaZero-OS/scripts/zaha_forge.py(Python 引擎)、zaha_audit.mjs(离线闸)、ENGINE-SPEC v1全都已存在
但它是按旧版 UEG(六层 21 格 / 八闸)造的缺【1 骨架层】12 类穷举、缺【5 测试层】六级质检线

→ 所以本轮 = 在它上面升 v2,复用不重写(three.js 本地件、第一人称控制、部署验真链路、v1 引擎本体全部复用)。


二、v1 → v2 到底补了什么(结构性,不是刷分)

v1v2
【1 骨架】真实世界怎么运转只有 5 条「力怎么走」,L2/L5/L6/L7/L9/L10/L12 七类压根没问过12 类逐类穷举 · 19 条规则 · 每条写全五件事 · 0 孤儿规则
【5 测试】质检线整层不存在六级 T1–T6 共 25 项 + 9 个变异 canary,离线可跑进 CI
独立锚(D1)无(判据只跟自己比)4 个闭式解析锚,两份实现各自对锚
后门(D10)cfg.fault 字符串键,任何调用方能静默注入Symbol 键门控 + 误用抛错 + 带病结果自带标签
闸数89(新增 ⑪ 风格签名闸——v1 写了签名却没配闸,可以静默失效而无人知晓)
劣样本35(新增「陡壁近倒挂」「矩形满铺穹顶」)
⑭ 体验通道❌ 只算得出、看不到✅ 3D 网页 + 第一人称走进去 + 6 个具名锚点

三、🔴 本轮最值钱的一件事:质检线抓出了一个假指标

这不是我事后总结的漂亮话,是真跑真红过的:

1. 红灯:六级测试第一次全档位扫描(3 网格 × 3 尺度 = 9 档),T3-4 当场红——折痕指标离散度 22.7% > 20%。快版只扫 4 档时是全绿的,只测一个点等于没测

2. 第一个假设被实测否定:怀疑起拱剖面 sin(πs)^0.75 指数 <1 造成曲率发散。换 1.0 / 2.0 实测,离散度仍 23.0% / 24.2% → 假设错了,不硬套

3. 真因:打印两个尺度的最大二面角位置,发现细尺度最大值在骨架远端 (i≈0.95nx)、粗尺度最大值在近端 (i=2)——v1 的量表拿「甲处的最大角 ÷ 乙处的最大角」当比值,比的根本不是同一个特征。

4. 回改(按规矩单独申报动判据):改成在同一点上比两个尺度,定位点取「细尺度角最大处」(分母恒为全场最大角、永不趋零)。中途否掉的两个候选也都实测过:全场取 min → 被平坦区 0/0 噪声主导(光滑面读 1.14,与真折痕 1.00 分不开);粗尺度最大处比 → 分母趋零,比值爆到 1.6e10、劣样本反被放行。

5. 结果

v1 量表v2 量表
解析光滑面(应≈2.0)随分辨率跳1.99 / 1.99 / 2.00 / 2.00(四种分辨率)
解析真折痕面(应≈1.0)随分辨率跳1.00 / 1.00 / 1.00 / 1.00
9 档位离散度22.7%2.4%
随机 12 座通过数310 ← 旧尺子一直在误杀好曲面
阈值 1.6一个字没动(改的是「怎么量」,不是「及格线画哪」)

这是 UEG「D2 量表自己也要被校准」在第三个领域独立救场(前两次:3D 城市的帧率表拿被截断的 dt 算,3fps 报成 23fps;建筑 v1 的二面角判据量的是网格密度)。

顺带自己挑出的另外两个刺


四、九闸判定(全绿)与真跑数字

结果硬证据
① 基线闸16 条可勾选清单 ✅11/⚠️2/❌3(❌ 全为已申报砍掉项);零重写全复用
② 骨架闸12/12 类无留空、19 条规则、0 孤儿、5 条守恒不变量
③ 生成闸3 轮各造出 ≥3 座显著不同且全过(跨度 32→63m、4 类支座拓扑、α 0.05~1.00)
④ 排除闸5 劣样本逐个说出违反第几条,7 种不同理由;且结构最优面被正确接受(语法不窄)
⑤ 丰满闸最近一级=1.5m 板件非空可算可看;每座 300+ 板件;6 个具名锚点;第一人称进得去
⑥ 复述闸操作指南:外行 30 秒可走完并产出可评审的东西
⑦ 删除闸删索网面→合理性无从谈起;删折痕指标→盒子+球能过;删风格签名闸→「矩形满铺穹顶」能过
⑧ 可复现闸同种子同结果逐字段一致;每个被淘汰的候选都说得出是哪道闸、实测多少
⑨ 完整性闸六级 25/25 真跑;本轮 canary 被抓到

六级质检线实测(node MetaZero-OS/scripts/zaha_tests.mjs,退出码 0)

通过/红灯关键数字
T1 单元8 / 0力密度 vs 闭式抛物线误差 0.000%;曲率 vs 球面 0.01%;翘曲 vs 双曲抛物面 0.00%
T2 集成4 / 0α=0.35 时 9 闸同时过;Python 侧 4 锚全绿;后门三件套全对
T3 不变量4 / 09 档位最大平衡残差 9.9e-14;折痕离散度 2.4%
T4 对抗3 / 05 劣样本全拦、7 种理由;杰作被正确接受
T5 回归3 / 03 个历史缺陷「故障版红 + 修复版绿」可重跑
T6 元测试3 / 09 个变异逐条点名,9/9 全被抓到

五、这台引擎回答主席最早的三个问题(答案全是可算的数)

主席问的答案
扎哈这类设计合理性在哪里弯矩需求比 = 自由曲面偏离「纯受压最优面」的最大距离 ÷ 跨度,硬约束 ≤0.06
怎么限制找形强度 α(0=全听造型最自由最贵,1=全听力学最省但没作者);硬约束反解出这个造型的自由度上限
表面有哪些特点?平板翘曲 mm / 单曲卷板残差 mm / 模具复用率,由幕墙工艺档决定能不能造

核心发现(实测,不是形容词):幕墙材料买的就是造型自由度。 同一批 12 个随机造型:双曲模具板档通过 10 座,换成平板玻璃档通过 0 座。——这正是为什么扎哈的房子几乎从不用平板玻璃包整张自由曲面,而是 GFRC/GFRP 模具板(Heydar Aliyev 中心的 16,150 块即如此)。


六、诚实的缺口(没做完的,显式列出,不掩盖)

1. 点支座锥尖未解 —— Python 预设生成闸仍 2/5(canopy/rotunda/hall 三个点支座预设过不了闸),如实报红,不把门槛从 3 改成 2 换绿灯。网页用的 JS 引擎(支座由轮廓生成而非矩形网格边)四类拓扑都有通过样本。

2. 条带方向未沿主应力方向 —— Striatus 的 striation 只做到 X/Y 择优。

3. 位置连续性(板缝间隙)未做 —— Eigensatz 双阈值只实现了法向连续那一半。

4. 正反馈回路 R-L5-1 未单独测 —— 由负反馈旋钮覆盖,属显式申报而非静默漏做。

5. 两份实现仍然存在(Python 离线 + JS 网页)—— UEG D9 要求同一计算只有一份真理。现在的「两份各自对同一批解析锚」是缓解不是根治

6. 线上运行时冒烟的验证方式 —— 本环境浏览器走不通代理(curl 可以),所以运行时冒烟是把线上真实字节整个镜像下来跑的(6 个文件逐字节比对与仓库一致),不是直连线上跑的。这一点如实说明。


七、证据等级与参数登记

承重事实等级来源/时间
Striatus 16×12m、53 块、无筋无浆、打印层正交于力流E1[zaha-hadid.com](https://www.zaha-hadid.com/design/striatus/) | [Dezeen 2021-07-28](https://www.dezeen.com/2021/07/28/zaha-hadid-architects-block-research-group-straitus-3d-printed-concrete-bridge/)
Armadillo Vault 399 块、跨 16m、峰部 5cmE1[BRG/ETH](https://block.arch.ethz.ch/brg/content/project/armadillo-vault-venice-italy) | [Dezeen 2016-05-31](https://www.dezeen.com/2016/05/31/armadillo-vault-block-research-group-eth-zurich-beyond-the-bending-limestone-structure-without-glue-venice-architecture-biennale-2016/)
Heydar Aliyev 16,150 块幕墙板、GFRC+GFRP、10,000+ 块埋微芯片E1[ZHA 官网](https://www.zaha-hadid.com/architecture/heydar-aliyev-centre/) | [fibretech 案例](https://fibretech.org/case-study/heydar-aliyev-centre/)
东京新国立竞技场 1630→2520 亿日元、2015-07-17 废案、钢屋面拱被点名E1[designboom 2015-07-17](https://www.designboom.com/architecture/zaha-hadid-national-olympic-stadium-tokyo-2020-design-scrapped-07-17-2015/) | [ArchDaily ZHA 声明](https://www.archdaily.com/770978/zaha-hadid-architects-releases-full-tokyo-stadium-statement)(责任归属存争议,ZHA 有公开反驳
广州大剧院 75,000 块花岗岩脱落、开裂渗漏E1(归因存争议[Architects' Journal](https://www.architectsjournal.co.uk/archive/falling-to-pieces-hadids-guangzhou-opera-house) | [Archpaper 2015-01](https://www.archpaper.com/2015/01/ok-zaha-shed-ding-happens/)
幕墙板 1.5×1.95~1.9×2.2m、冷弯玻璃可鼓约 2cmE1[arXiv:2009.03667](https://arxiv.org/pdf/2009.03667)
力密度法(Schek 1974)E2教科书方法,本轮未取原文
弯矩需求比 ≤0.06 / 折痕指标 ≥1.6 / R_min ≥1.2m / 复用率 ≥0.30 / 覆盖率 ≤0.90estimated我定的工程量级判断,不是行业标准,需外部专业复核。其中折痕指标 1.6 已由解析对照校准(光滑 2.00 / 折痕 1.00),覆盖率 0.90 尚无外部依据,标为暂定值
折痕/曲率/翘曲量表本身已校准4 个闭式解析锚,误差 0.00%~0.02%

八、Rex 红队(自己先挑最强的一条反对)

最强反对:「你把折痕量表改了,通过率从 3/12 跳到 10/12 —— 这跟『为了让闸变绿去调阈值』有什么区别?」

回应:区别在是否有链路之外的独立裁判。调阈值没有外部裁判,改量表有——新量表在闭式解析对照上读出光滑面 2.00、真折痕 1.00(理论值恰好就是 2 和 1),旧量表在同样的对照上读数随分辨率乱跳。而且新量表对劣样本更狠(盒子+球从 0.88 降到 0.03)。如果我是在放水,劣样本应该更容易过,实际是更难过。 阈值 1.6 全程未动。

仍成立的弱点:覆盖率 ≤0.90 这条新阈值没有外部依据,是我画的线(UEG D10 明确禁止被评者单方面画及格线)。已在报告与规格里标为暂定值、待外部裁定,不当成已通过的结论。


九、可复现命令清单

命令预期
node MetaZero-OS/scripts/zaha_tests.mjs✅ 25 项全绿,退出码 0(加 --quick 跑快版)
node MetaZero-OS/scripts/zaha_audit.mjs 10 1✅ 生成闸 3 座 + 排除闸 5 劣样本全拦,退出码 0
python3 MetaZero-OS/scripts/zaha_forge.py --selftest✅ 4 个解析锚全绿 + SELFTEST_PASS
python3 MetaZero-OS/scripts/zaha_forge.py --preset vault --alpha 0.85 --cladding 双曲模具板✅ 全闸通过
python3 MetaZero-OS/scripts/zaha_forge.py --samples⚠️ 2/5 如实报红(点支座三预设过不了)
python3 MetaZero-OS/scripts/ueg.py --doctor✅ 文档/技能/脚本/网页四处同版
`curl -s https://metazero-terminal.pages.dev/zaha/ \grep 九闸判定`✅ 线上已是 v2

十、逐步执行成果索引

outputs/UEG-ZAHA-v2/(36 份):S2 目标卡 · S3 采标本四类 · S4/S5 双层抽取×4 类 · S6 及格线 · S7 骨架 12 类逐类 · S8 骨架闸 · S9 IR+材料+约束 · S10 活性三格 · S11 六级质检线 · S12 操作指南 · S13 试跑×3 轮 · S14 九闸×3 轮 · S15 沉淀升版留锚。

规格唯一权威源:MetaZero-OS/01-Protocol/ZAHA-自由曲面建筑-ENGINE-SPEC.md(v2)