Ð
Essay · 2026

Param Graph

形体的可复现灵魂

传统 CAD 的参数化是"建模时就要参数化",一旦不是这样建的,事后没办法。Param Graph 反过来 — 它从已有的形体里反推出生成逻辑,让任何一个 mesh、任何一个扫描、任何一个 AI 生成结果,都能事后被赋予参数化的灵魂。

本文是《AI 时代的几何工作流:一个三层架构》的支撑文章 iii:输出层

第 一 节

一个形体只是一个形体吗

当你看到一把椅子,你看到的是什么?

第一层答案:你看到一个具体的形 — 这把椅子有它的高度、宽度、座面曲率、靠背角度、四条腿的位置。

第二层答案:你看到一组关系 — 四条腿是对称的,座面和靠背的连接处有一定的角度比例,材料的厚度和受力位置相关。

第三层答案:你看到一种生成逻辑 — 这把椅子可以由几个关键参数决定(座高、靠背倾角、腿的张开度),其他细节都从这几个参数派生。改变这些参数,就能生成一族椅子。

传统 CAD 软件擅长第一层,Grasshopper 这种参数化工具擅长第三层。但它们之间有一道鸿沟 — 一个形体一旦在第一层建出来,就很难"事后"赋予它第三层。

Param Graph 要解决的就是这道鸿沟。

第 二 节

"事后参数化"为什么是新问题

过去三十年,CAD 行业的参数化讨论都集中在"如何在建模时就建立参数"。SolidWorks 的特征树、Grasshopper 的节点图、CATIA 的 history tree — 它们都共享一个前提:参数化是建模过程的一部分,你建模时就得想清楚参数关系

这个前提在传统语境里没问题。但在 AI 时代,它彻底失效了。因为:

这些"没有参数"的形体正在以指数级速度涌入设计流程,而它们一旦进来,就无法再被"参数化地编辑" — 你只能在 mesh 这一层做局部推拉,无法做"把这个特征整体放大 1.5 倍"这种参数级操作。

这就是新问题:如何为已经存在的形体反推出参数

第 三 节

Param Graph 的基本数据结构

Param Graph 的核心是一个有向图。节点表示参数和操作,边表示依赖关系:

{
  "nodes": [
    { "id": "p1", "type": "param", "name": "高度", "value": 100 },
    { "id": "p2", "type": "param", "name": "半径", "value": 40 },
    { "id": "p3", "type": "param", "name": "分段数", "value": 12 },
    { "id": "op1", "type": "operation", "name": "圆柱基座" },
    { "id": "op2", "type": "operation", "name": "阵列开孔" },
    { "id": "c1", "type": "constraint", "expr": "p1 = 2.5 * p2" }
  ],
  "edges": [
    { "from": "p1", "to": "op1" },
    { "from": "p2", "to": "op1" },
    { "from": "p3", "to": "op2" },
    { "from": "op1", "to": "op2" }
  ]
}

这个结构本身不新 — Grasshopper、Houdini、Dynamo 都用类似的结构。Param Graph 真正不一样的地方,不是结构本身,而是它从哪里来

第 四 节

反推:从形体到逻辑

传统参数化工具的 graph 是用户手工搭建的。Param Graph 不一样:

传统参数化 / Forward Param Graph / Backward
用户在 Grasshopper 里接节点 系统拿到一个 mesh / brep
跑节点图生成几何 分析它的结构、对称性、关系
得到带参数的形体 反推出参数节点图

这种"反推"在学术界有一些积累 — 程序合成(program synthesis)、几何关系挖掘、对称性检测、CSG tree 重建等领域都有研究。但工程化、可用化、和 mesh+brep 共存的 Param Graph 系统,目前还没有人做出来。

第 五 节

反推依赖什么

Param Graph 的反推不是凭空猜的,它依赖三类信息:

5 · 1DGS 提供的结构识别

DGS 已经把 mesh 切成了"这块是平面、这块是圆柱、这块是自由曲面"。Param Graph 拿到这些识别结果,可以进一步推断"这 12 个圆柱是阵列出来的"、"这 6 个平面构成一个对称结构"。没有 DGS 的中间层结果,Param Graph 只能在原始 mesh 上瞎猜

5 · 2操作历史

如果用户在 DGS 里做了一系列操作("先生成圆柱基座,再阵列开孔,再倒角"),这些操作本身就是 Param Graph 的雏形。系统只需要把这些操作转成节点,就得到一个带参数的 graph。这是反推最容易的情况。

5 · 3几何关系挖掘

对于完全没有历史的形体(纯 AI 生成、纯扫描),Param Graph 需要做关系挖掘 — 检测对称性、比例关系、阵列、镜像、共轴、共面等等。这是最难的,但也是最有价值的 — 它意味着任何形体都可以"事后"获得参数化的灵魂

第 六 节

它为什么是创作主体性的关键

这一节我想说点更深一层的话。

当 AI 能够在三秒内生成一个完整的形体,关于"创作主体性"的传统判断就变得不再适用。"我亲手画了这个形"这句话,在 AI 时代正在贬值 — 因为不需要你画,AI 就画得出。

但如果创作主体性不再来自"画形"这个动作,它来自哪里?

我此前在《调用者宣言》里给过一个回答:真正的创作主体性来自对可能性空间的控制。AI 能从空间里调用形体,但不能替你决定空间本身的结构。

Param Graph 是这个判断在工具层面的具体落地。一个 graph,本质就是一个可能性空间:

当你拿到一个形体,反推出它的 Param Graph,你不是得到了"这个形",你是得到了一族包含这个形的可能性空间。改一个参数,你就在这个空间里移动到另一个点;改一个约束,你就在重新塑造这个空间本身。

形是空间里的一个点。Param Graph 是包含这个点的空间。创作的本体不是点,是空间。
第 七 节

它和"去完整性"的关系

我之前在"去完整性"的提法里说过:任何单一表示都不是完整的,完整性来自多重对齐。

Param Graph 是这个判断的另一个面。一个形体如果只有 mesh 表示,它是"看得见但说不清"的;如果只有 brep 表示,它是"精确但僵死"的;如果只有 Param Graph,它是"逻辑但空洞"的。

三种表示都不完整。完整性只来自三者的对齐 — 形体被看见、被规训、被还原为逻辑,这三件事同时发生,形体才真正"存在"。

这就是 DGS 的整个三层架构最深的判断:存在不是单一表示,存在是多重对齐

第 八 节

当下状态与下一步

Param Graph 是三层架构里最晚启动的一层,目前的状态是理论框架已建立,工具尚未启动

它的启动需要 DGS 先到位 — 因为 Param Graph 的反推依赖 DGS 提供的结构识别。所以排期上,Param Graph 是 DGS Phase 4 之后的事。但它的数据结构(那个 param_graph 字段)从 DGS Phase 1 开始就要在 Hybrid Geometry Object 里预留好位置,确保未来不需要重构。

第一个 Param Graph 的可用 demo,我会让它做一件具体的事:

输入一个由 12 个对称圆柱组成的雕塑 mesh,系统反推出"这是一个 12 元阵列,半径 R,高度 H,分布在半径 D 的圆周上",并允许用户改 R / H / D 实时重新生成。

如果这个 demo 跑通,Param Graph 这一层就成立了。剩下的事是把它扩展到更复杂的形体 — 但范式已经被验证。

尾声

三层架构走到 Param Graph,整个体系才闭环。

Rhino Codex 让 AI 能进入几何世界。 DGS 让几何在 mesh / brep 之间持续对齐。 Param Graph 让对齐的几何被还原为可复现的逻辑。

三件事合起来,才是一个形体在 AI 时代完整存在的方式 — 它被生成、它被结构化、它被还原为逻辑;它可以被看见、它可以被制造、它可以被复现。

这不是工具的总和,这是一种新的几何本体论。

形不是被画出来的。形是被对齐出来的。对齐不是技术,对齐是创作的本体。
— Fin —
2026.05