从Arko-T, MeshGPT, MeshLLM提取可落地的Meshova质量提升算法


近来解决了一件心头大事: 杭州市E类人才认定及其租房补贴总算落定, 可以安心投入学术研究与工作一阵子了. 随着AI的深入运用, 工程实现的复杂度已经大大降低, 自己的点子越来越多, 同时对未来能走的路也越来越迷茫. 目前更倾向于两个方向并行: 一是继续深入代数拓扑理论及相关应用算法研究, 二是出于项目人手安排, 后续也会开展游戏AI与游戏动画研究, 因此需要系统梳理近年来游戏GDC相关分享, 熟悉各类业界方案. 本文是在知乎大佬冯委的网页端Houdini程序化建模项目Meshova启发下, 从Arko-T, MeshGPT, MeshLLM中提取可落地的Meshova质量提升算法, 算是关于代数拓扑相关应用算法的一次研究叭~

AI生成3D模型时, 最先被看见的是外观: 轮廓像不像, 材质对不对, 截图好不好看. 真正进入生产后, 更难的问题会出现: 孔距能不能改, 阵列数量能不能变, 部件是否贴合, Mesh是否紧凑, 重复结构是否稳定, 局部修改会不会把整个模型带坏.
$\\$ 这篇文章整理三篇论文中可借鉴的算法思想: Arko-T, MeshGPT, MeshLLM. 目标不是复现论文系统, 不使用论文训练数据, 也不运行作者发布的神经网络. 这里关心的是: 哪些算法结构可以转成Meshova自己的确定性生成, 局部编辑和几何验证机制, 从而提升生成模型的最终质量.
$\\$ 当前项目里已经落地的是Arko-T方向的一部分: 设计状态, 参数绑定, 操作计划溯源, 特征级评审器, 以及若干轻量几何检测. MeshGPT和MeshLLM相关内容还停留在设计阶段, 本文会明确区分.

模型库首屏:顶部是描述生成区,下方是分类、搜索和模型卡片

迭代面板:输入本轮改动,选择参考图和覆盖方式

1. 问题不是生成一个Mesh, 而是生成一个可维护设计

传统文本到3D生成更像是”输出一个形状”. 这个形状可以渲染, 但系统通常不知道它为什么长这样. 一个圆柱可能是轮子, 孔, 灯罩, 铆钉或装饰环; 一个平移值可能是孔距, 窗距, 随机偏移或临时补偿. 下一次让AI修改时, 它只能猜.
$\\$ Arko-T的关键价值在于把目标从单纯Mesh / 代码推进到设计状态. 论文将设计状态写成:
$$
z = (F, \Theta, C, H, A),
$$其中, $z$为设计状态, $F$为特征词表, 例如孔, 肋, 倒角, 壳, 阵列; $\Theta$为命名参数, 例如半径, 厚度, 间距, 数量; $C$为约束与关系, 例如对称, 共面, 等距, 贴合; $H$为构造历史; $A$为把特征绑定到面, 边或草图平面的附着关系.
$\\$ 对Meshova来说, 这个公式比模型权重更直接可用. 因为Meshova本来就是程序化建模库, 核心资产是可重放脚本和参数. 我们不需要训练Arko-T, 也不引入Build123d训练数据. 需要的是把”设计状态” 变成TypeScript内部协议, 让生成结果从一组命名部件升级为”能解释, 能局部修改, 能检查” 的设计.

2. Arko-T可提取部分: 设计状态 + 执行闭环

Arko-T论文强调: 可执行代码不等于可用设计. 代码可能运行成功, 却生成空体, 非流形体, 或者漏掉提示词里的关键特征. 对Meshova来说, 它的启发可以拆成三个工程算法.
$\\$ $\cdot$ 第一, 生成时显式写出特征. 模型不能只输出几何基础体, 而要说清哪些节点实现了哪些设计特征. 比如通风槽是阵列特征, 安装孔是孔特征, 座垫是语义部件特征.
$\\$ $\cdot$ 第二, 用户可改的数字必须从魔法数变成参数. 每个参数有标识, 标签, 数值, 单位, 最小值, 最大值, 步长, 是否外露, 绑定关系. 用户改槽数量时, 系统知道它会局部更新哪些节点, 而不是让AI重写整段脚本.
$\\$ $\cdot$ 第三, 评审器不只看整体Mesh指标, 还要按特征检查. 必需特征是否存在, 重复元素数量是否正确, 间距是否均匀, 部件是否贴合, 参数试改后是否还能生成有效Mesh.
$\\$ 当前Meshova已经实现这一层的基础版. 实现状态可以概括为:
$\\$ $\cdot$ 已实现设计状态模式: 特征, 参数, 约束, 历史, 附着关系.
$\\$ $\cdot$ 已实现参数局部补丁: 受限路径绑定到操作计划节点参数, 支持范围, 步长, 数量, 颜色等校验.
$\\$ $\cdot$ 已实现执行溯源: 操作计划执行成命名部件时, 把设计特征标识, 设计参数标识, 设计节点标识, 设计面引用写入元数据.
$\\$ $\cdot$ 已实现设计状态评审器: 静态引用检查, 必需特征检查, 外露参数试改, 数量 / 等间距检查, 以及特征级几何证据.
$\\$ $\cdot$ 已实现部分几何检测: 边界环, 贯穿孔扫描, 对称评分, 包围盒间隙, 包围盒穿透.
$\\$ $\cdot$ 未实现完整规划式生成闭环. 也就是说, 目前底层协议和评审器有了, 但还没有强制每次文本到模型生成都优先产出带设计状态的操作计划.

图1: 当前项目的设计状态评审器会把特征绑定, 可编辑参数, 约束检查, 参数Patch烟测和几何证据汇总到同一份报告中. 说明反馈对象已经从整张渲染图转向可定位的特征, 参数和约束.

图2: 每个外露参数都记录它关联的特征, 需要Patch的节点, 以及节点参数路径. 例如槽宽参数会绑定到多个槽实例节点的宽度字段, Patch后再重新执行操作计划并触发评审器烟测. 这能解释”改一个参数会影响哪些节点” 这件事, 也能避免AI为了局部修改重写整段脚本.

$\\$ 这一部分最先能提高模型质量, 因为它把反馈从”整体不像” 改成”哪个特征没实现, 哪个参数试改后坏了”. 对生成循环来说, 这类反馈更容易局部修正.

2.1. 当前贯穿孔检测: 从拓扑严格性退一步做确定性证据

Arko-T强调特征落地, 但论文没有给Meshova这种三角Mesh系统提供可直接套用的孔洞检测算法. 当前实现采用工程近似: 边界环检测 + 贯穿孔射线 / 切片扫描.
$\\$ 边界环检测先把Mesh转成拓扑视图, 融合重合点, 建立边到面的邻接关系. 只被一个面使用的边是边界边, 沿边界边串起来即可得到边界环. 这个检测适合发现开口, 破面, 薄片边界, 也可以作为孔 / 切口的证据之一.
$\\$ 贯穿孔扫描则沿指定轴检测内部空通道. 做法是:
$\\$ $\cdot$ 取部件的包围盒.
$\\$ $\cdot$ 选择扫描轴, 默认$z$轴, 也可由特征元数据指定.
$\\$ $\cdot$ 在垂直于扫描轴的截面上铺采样数$\times$采样数网格.
$\\$ $\cdot$ 对每个网格中心, 从包围盒外沿扫描轴发射一条射线.
$\\$ $\cdot$ 如果射线和Mesh三角面零次相交, 说明该采样柱为空.
$\\$ $\cdot$ 对空采样柱做4邻接泛洪填充.
$\\$ $\cdot$ 丢弃接触采样网格边界的空簇, 因为那通常是物体外部空间.
$\\$ $\cdot$ 剩余内部空簇记为贯穿通道候选.

图3: 左侧示意中心空窗沿$Y$轴贯穿, 中间显示采样网格中被4邻接泛洪填充归为内部通道的空柱, 右侧给出检测输出. 当前实现不是从截图猜孔, 而是在Mesh包围盒中做确定性射线采样和空域连通分析.

$\\$ 它不是严格拓扑隧道分类. 斜孔, 弯曲孔, 极细孔, 复杂柄体结构和采样分辨率不足的情况都可能漏检. 它的定位是低成本质量门: 当特征元数据写着最少需要1个贯穿通道时, 评审器能发现”声明有贯穿孔, 但沿指定轴没有内部空通道”.
$\\$ 从代数拓扑角度看, 边界环是在离散曲面上寻找一维边界链, 贯穿孔扫描是在规则采样格上寻找不连到外部的空区域分支. 它还没有计算同调群, 但已经把”像不像孔” 转成可回归的拓扑证据; 后续若引入Reeb图, 才适合进一步讨论柄环 / 隧道环和同调生成元.
$\\$ 后续如果要做严格拓扑检测, Reeb图柄环 / 隧道环可以作为单独方向. 但它需要更完整的拓扑前提和边界处理策略, 目前不适合混入第一版质量门.

3. MeshGPT可提取部分: 三角Mesh应该有可压缩的局部几何语言

MeshGPT的原始方法是训练一个几何Token词表, 再用仅解码器Transformer自回归生成三角Mesh. 我们不会训练这个模型, 也不使用它的码本. 但它提出的几个观察很适合转成Meshova的确定性Mesh质量规则.
$\\$ MeshGPT先把Mesh表示为三角序列:
$$
M = (f_1, f_2, \ldots, f_N),
$$其中, $M$为三角Mesh, $f_i$为第$i$个三角面, $N$为面数量. 每个面不是孤立的9个坐标, 而应该携带局部邻域信息. 论文把每个面作为图节点, 用邻接边传递局部信息, 输入特征包括三角顶点坐标, 面法线, 边夹角和面积; 这个量化流程可简写为:
$$
T = RQ(E(M); C, D),
$$其中, $T$为几何Token索引序列, $RQ$为残差向量量化算子, $E(M)$为Mesh面图编码结果, $C$为码本, $D$为每个面堆叠的量化码深度. 对Meshova来说, 可以不学习$C$这样的码本, 但可以保留”局部三角面语言” 的思想: 每个模型不只检查三角数量, 还要检查三角组织是否像一个干净的人工建模Mesh.
$\\$ 可落地设计包括:
$\\$ $\cdot$ 规范排序. 按顶点坐标和面的最小顶点索引做稳定排序, 使同一模型的Mesh指纹可复现. 这样可以稳定比较前后生成差异, 也能发现局部修改是否只影响应影响的区域.
$\\$ $\cdot$ 局部面特征. 为每个面计算面积, 边长比例, 法线, 邻接面数量, 二面角, 边界状态. 它们能组成确定性面描述符, 用于质量评分和局部聚类.
$\\$ $\cdot$ 紧凑性指标. MeshGPT追求紧凑Mesh, 反对神经隐式场Marching Cubes产生的过密三角. Meshova可以加入三角预算, 小三角比例, 长薄三角比例, 重复点比例, 近重合顶点比例.
$\\$ $\cdot$ 锐边保真. MeshGPT的优势之一是保留锐边. Meshova可以检测硬表面模型的二面角分布: 该有锐边的地方不能全部被平滑, 该平滑的曲面不能满是随机折痕.
$\\$ $\cdot$ 松散三角片修复. MeshGPT生成后会合并近邻重复顶点. Meshova已有拓扑清理思路, 后续可以把近点焊接, 退化面删除, 非流形诊断做成生成后的必经质量门.
$\\$ 这部分目前还没有作为MeshGPT启发式模块实现. 现有项目已有拓扑, Mesh指标, 清理, 深度冲突等基础工具, 但还没有统一成”局部几何Token / 面描述符 / 紧凑性评审器”.

4. MeshLLM可提取部分: 先看局部Primitive-Mesh, 再看整体装配

MeshLLM的原始方法是把OBJ文本化给大型语言模型, 再通过Primitive-Mesh分解缓解Token长度和结构丢失问题. 它包含数据扩增和监督微调任务设计, 但我们不采用训练流程, 只提取”局部部件分解 + 装配一致性” 的算法思想.
$\\$ MeshLLM将完整Mesh分解为多个局部基础块:
$$
M = \{M_1, M_2, \ldots, M_N\},
$$其中, $M$为完整Mesh, $M_i$为第$i$个局部Primitive-Mesh, $N$为局部基础块数量. 论文里有两类Primitive-Mesh: 一类是先对表面密采样, 再用最远点采样(FPS) 取中心并用近邻搜索(KNN) 聚类的几何基础块; 另一类是语义分割得到的部件级基础块. 对Meshova来说, 最可用的是第一类, 因为它可以确定性实现, 不依赖外部分割网络.
$\\$ 可落地路线:
$\\$ $\cdot$ 几何Primitive-Mesh. 严格跟随论文时, 可以先对模型表面采样, 再用最远点采样选中心并用KNN聚类; 工程上也可以退一步直接使用面中心, 再用空间半径或近邻关系聚类面. 每个簇保留局部包围盒, 法线分布, 面积, 边界, 邻接关系.
$\\$ $\cdot$ 语义Primitive-Mesh. 先不运行论文中的3D部件分割模型或GPT-4o标注. 用已有设计状态溯源, 部件名, 特征标签, 材质, 包围盒位置, 连接关系推断局部语义. 例如车轮, 腿, 槽, 肋, 面板这类特征可以直接给簇提供语义标签.
$\\$ $\cdot$ 顶点到面预测变成拓扑校验. 论文训练大型语言模型根据顶点坐标预测面连接关系:
$$
\max_\theta P(F \mid V, \theta),
$$其中, $P$为条件概率, $F$为面集合, $V$为顶点集合, $\theta$为模型参数. Meshova不训练这个任务, 但可以把它变成验证器: 给定顶点 / 面, 检查面是否形成合理局部连接, 是否有孤立三角, 重复面, 异常边界, 非流形边.
$\\$ $\cdot$ Mesh装配变成装配一致性校验. 论文训练大型语言模型从基础块还原完整Mesh:
$$
\max_\theta P(M \mid \{M_i\}_{i=1}^{k}, \theta),
$$其中, $P$为条件概率, $M$为完整Mesh, $M_i$为第$i$个局部Primitive-Mesh, $k$为基础块数量, $\theta$为模型参数. Meshova可转成确定性检查: 局部基础块之间是否贴合, 是否穿插, 是否漂浮, 是否满足对称, 支撑, 间距和间隙约束.
$\\$ 这部分对提升模型质量很重要, 因为很多生成错误不是单个三角坏了, 而是局部部件关系坏了: 椅腿漂浮, 轮子穿进车身, 窗户阵列不齐, 扶手左右不对称. Primitive-Mesh分解能把整体模型拆成可检查小块, 让评审器给出更局部的修正建议.

5. 三篇论文合起来, 可以形成Meshova的三层质量门

如果只选一个方向, Arko-T的设计状态最适合先落地, 因为它直接提升可编辑性和反馈定位. MeshGPT和MeshLLM更适合做第二层, 第三层验证.
$\\$ 推荐质量门如下:
$\\$ $\cdot$ 第一层: 设计状态门. 检查特征, 参数, 约束, 历史, 附着关系是否存在且引用有效. 参数补丁后必须还能执行. 必需特征不能只写元数据, 必须能对应到节点, 部件, 实例或面引用.
$\\$ $\cdot$ 第二层: 局部几何门. 检查每个部件或特征簇的三角质量, 边界环, 非流形边, 硬边分布, 紧凑性, 重复点, 薄片和深度冲突.
$\\$ $\cdot$ 第三层: 装配语义门. 把模型拆成Primitive-Mesh或设计特征实例, 检查数量, 等间距, 对称, 贴合, 不重叠, 间隙, 支撑.
$\\$ 这三层分别回答三个问题:
$\\$ $\cdot$ 这个模型是否保留了设计意图?
$\\$ $\cdot$ 这个Mesh局部是否干净?
$\\$ $\cdot$ 这些局部部件组合后是否合理?

图4: 当前项目已经能把重复元素数量 / 间距, 边界环, 贯穿通道, 对称和非重叠约束整理成几何证据表. 说明质量门不是抽象口号, 而是能产生可回归的量化检查结果.

$\\$ 这比单纯看Chamfer距离或截图评分更适合Meshova. 截图能发现外观问题, 但难以告诉AI”槽数量少了一个” 或”车轮半径改动后轮子穿进底盘”. 设计状态, 局部几何证据和拓扑证据能把错误定位到特征, 参数, 节点, 部件或面组.

6. 当前实现边界

当前项目已经完成Arko-T方向的基础工程化, 但还不是完整文本到设计系统.
$\\$ 已实现:
$\\$ $\cdot$ 操作计划可携带设计状态.
$\\$ $\cdot$ 设计状态可验证引用完整性.
$\\$ $\cdot$ 外露参数可通过绑定关系局部补丁.
$\\$ $\cdot$ 操作计划执行后可把设计溯源写到输出部件元数据.
$\\$ $\cdot$ 评审器可做特征级反馈和参数试改.
$\\$ $\cdot$ 孔 / 切口可通过元数据启动边界环和贯穿通道检测.
$\\$ $\cdot$ 对称, 贴合, 不重叠, 间隙已有包围盒近似版.
$\\$ 仍在设计阶段:
$\\$ $\cdot$ 每次生成都强制产出带设计状态的操作计划.
$\\$ $\cdot$ MeshGPT启发式面描述符, 紧凑性评审器, 锐边分布评审器.
$\\$ $\cdot$ MeshLLM启发式Primitive-Mesh分解和局部装配检查.
$\\$ $\cdot$ 语义簇自动命名与设计特征实例自动补全.
$\\$ $\cdot$ Reeb图柄环 / 隧道环等严格拓扑检测.
$\\$ 当前Arko-T提供了已经落地的设计状态框架; MeshGPT和MeshLLM提供了下一步几何质量门和局部结构分析的设计蓝图.

7. 下一步实现路线

短期最值得做的是把现有设计状态评审器接入默认生成反馈. 生成失败时, 不只返回TypeScript错误或整体几何评分, 而是返回特征级问题, 如:
$\\$ $\cdot$ 安装孔: 期望4个实例, 实际3个.
$\\$ $\cdot$ 槽数量参数补丁后执行失败.
$\\$ $\cdot$ 贯穿开口声明需要1个贯穿通道, 但扫描结果为0.
$\\$ $\cdot$ 左轮和右轮对称评分低于阈值.
$\\$ 中期做MeshGPT启发式局部几何门. 它不需要训练, 只需要确定性面描述符:
$\\$ $\cdot$ 面面积分布.
$\\$ $\cdot$ 边长比例.
$\\$ $\cdot$ 二面角直方图.
$\\$ $\cdot$ 边界边比例.
$\\$ $\cdot$ 重复顶点 / 退化面数量.
$\\$ $\cdot$ 局部三角密度方差.
$\\$ 长期做MeshLLM启发式Primitive-Mesh分解. 先用纯几何聚类, 后用设计状态元数据注入语义. 这样评审器可以从部件级进一步走到簇级, 把”椅子整体不好” 改成”后腿簇漂浮” 或”扶手簇没有连接到靠背”.

8. 结论

这三篇论文对Meshova最有价值的不是模型权重, 而是结构化思想.
$\\$ Arko-T告诉我们: 生成目标应该是可编辑设计状态, 不只是可运行代码或可渲染Mesh.
$\\$ MeshGPT告诉我们: 高质量Mesh有局部几何语言, 紧凑, 连贯, 锐边清晰, 而不是一团过密三角.
$\\$ MeshLLM告诉我们: 复杂Mesh需要先拆成局部Primitive-Mesh, 再看局部之间如何装配.
$\\$ 转成Meshova的工程路线, 就是设计状态 + 局部面描述符 + 拓扑证据 + Primitive-Mesh装配评审器. 全部可以用确定性算法逐步实现, 不需要训练数据, 也不需要运行论文作者发布的神经网络.
$\\$ 当前项目已经迈出第一步: Arko-T风格的设计状态和特征级验证已落地. 下一步要让MeshGPT / MeshLLM的思想进入评审器, 把Mesh质量和局部装配也变成可定位, 可解释, 可回归测试的反馈信号. 最终, AI生成模型才会从”看起来像” 走向”结构正确, 能改, 能长期维护”.

参考材料
1. 冯委. [我开发了一个AI程序化建模的Skill](https://zhuanlan.zhihu.com/p/2059832417960072992). 知乎, 2026.
2. Liang Wang, Zhaoyang Xi, Zekai Xiang, et al. [Arko-T: A Foundation Model for Text-to-Structured 3D Generation](https://arxiv.org/abs/2606.30429). arXiv, 2026.
3. Yawar Siddiqui, Antonio Alliegro, Alexey Artemov, et al. [MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers](https://arxiv.org/abs/2311.15475). CVPR, 2024.
4. Shuangkang Fang, I-Chao Shen, Yufeng Wang, et al. [MeshLLM: Empowering Large Language Models to Progressively Understand and Generate 3D Mesh](https://openaccess.thecvf.com/content/ICCV2025/html/Fang_MeshLLM_Empowering_Large_Language_Models_to_Progressively_Understand_and_Generate_ICCV_2025_paper.html). ICCV, 2025.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注