2024年前后,如果你让一个顶尖的AI模型生成一个3D微波炉模型,它大概率能做出一个看起来惟妙惟肖的微波炉。门是对的形状,旋钮在对的位置,颜色纹理都很逼真。
但如果你把这个模型丢进物理模拟器,让门打开试试,你会看到一件尴尬的事:门穿过了机身。
不是贴着机身转,是直接穿模而过,像鬼魂一样从固体中间滑过去。这不是个例。这篇来自新加坡南洋理工大学、牛津大学、剑桥大学等机构联合团队的论文里有一组数据:市面上现有的AI生成方法,在模拟多关节联动的真实使用场景时,碰撞发生率普遍在60%到100%之间。
**也就是说,现在大多数AI生成的"能动的3D物体",有超过一半的概率在你真正操作它的时候,部件会互相穿插。**
这事儿乍一听有点反直觉。我们已经见过Sora生成电影级的视频,见过AI画出以假乱真的油画,怎么到了"生成一个能正常开关的抽屉"这种看起来简单得多的任务上,反而翻车了?
这篇论文要回答的,正是这个问题。
为什么好看不等于好用
要理解这个困境,得先弄明白一件事:生成一个3D物体的"长相",和生成一个3D物体的"行为逻辑",其实是两套完全不同的工程。
你看到的漂亮渲染图,只是几何形状加上贴图和材质,这是外观层面的事。但一个真正能用的物体,比如一台微波炉,它还得有骨架结构:门和机身是两个独立的刚体,中间靠一个转轴连接,这个转轴有旋转范围限制,门板转动的时候不能撞到周围任何东西,整台机器放在桌上不能因为重心不稳而翻倒。
这些属性,统称为物理属性,具体包括几何形状、质量、材质,以及关节的运动学结构,比如父子部件关系、转轴位置、运动范围。
这类带有运动结构、能够拆解成独立活动部件的3D物体,在这篇论文里被称为关节化3D资产。你家里的每一扇门、每一个抽屉、每一把剪刀,本质上都是关节化物体。
过去的AI生成方法,往往是把外观、几何、关节运动、物理属性这几件事分开处理。有的模型专注做形状和贴图,有的模型专注预测关节轴在哪,还有的单独研究怎么估算物体质量或者判断它站不站得稳。
这种各管一段的做法,最大的问题在于,没有人真正对"这玩意儿最后能不能用"这件事负责。
打个比方,这就像一个团队做一辆自行车,一个人只管设计车架的外形好不好看,另一个人只管前轮怎么转,第三个人只管后轮怎么转,但谁都没有把整车组装起来、骑上去试一圈。结果就是,车架做得挺帅,前轮转得也挺顺,后轮也没毛病,可装在一起你会发现脚踏板的位置正好会撞到车架。如果没有一个人全程盯着整车的实际运行状态,这种局部都对、整体却坏掉的情况几乎是必然的。
Articraft的单人裁判问题
在ARTISAN这篇论文之前,已经有一个叫Articraft的系统尝试解决这个问题。它的思路是让一个大语言模型,也就是我们常说的LLM
**LLM:大语言模型,Large Language Model,像GPT、Claude这类能理解和生成文字、代码的AI系统。**
像写代码一样,把3D物体的构造过程写成一段可执行的程序,然后自己检查、自己修改。这个思路比传统的程序化生成要灵活得多,因为它不是套固定模板,而是让AI根据具体的物体需求现场写代码。
但这里有个微妙的问题:既当运动员又当裁判,容易出现自我评判偏差。
这个偏差具体是什么意思呢?打个比方,如果让你自己给自己写的论文打分,你很可能会不自觉地对自己宽容一点,因为你太清楚自己写这段话时的用意是什么了,你会觉得"我这里写得没问题,因为我知道我想表达什么",但一个完全不了解你意图的审稿人可能一眼就看出逻辑漏洞。同一个AI既负责构建3D物体,又负责验证这个物体对不对,它天然会倾向于认为自己做的东西没问题,因为它知道自己的设计意图,这种知道恰恰会让它忽略掉外部视角才能发现的瑕疵。
更要命的是,Articraft的检查主要停留在"程序逻辑看起来合理"这个层面,并没有真的把生成的物体丢进物理模拟器里跑一遍,去验证它在真实的重力和碰撞规则下到底会发生什么。这就像一份只做了语法检查、却从没在真实浏览器里打开运行过的网页代码,语法没错不代表页面真的能正常显示。
这篇论文的研究团队正是从这两个缺口切入的:一是打破自我评判,二是引入真实的物理模拟反馈。他们把这个新系统命名为ARTISAN。
三个agent各司其职
ARTISAN的核心设计,是把原来一个人全包的流程,拆成三个相互独立、只通过固定接口交换信息的agent
**agent:智能体,这里指具备自主决策和工具调用能力的AI程序,可以理解为一个专门负责某项任务、能自己思考和操作的AI角色。**
设计agent、编码agent、审查agent,分别负责蓝图设计、代码实现、质量把关。
设计agent拿到用户的文字描述和参考图片之后,先不急着动手建模,而是先写一份结构化的蓝图,把这个物体有哪些部件、部件之间怎么连接、关节怎么运动、甚至部件之间有没有联动关系,比如"按下踏板盖子才会打开"这种耦合动作,全部用文字描述清楚。
这份蓝图写完之后,还会通过一个图像生成模型转换成一张"设计板",上面包含物体的多视角正交图、拆解成零件的爆炸图、开合状态对比的运动示意图,以及剖面图。这相当于在正式开工之前,先把施工图纸画出来,而且是那种带着立体分解图的说明书,方便后续的编码agent照着做,也方便人类读者在这一步就发现设计上的明显错误。
蓝图定稿之后,编码agent接手,把这份文字描述翻译成真正的Python程序,执行之后生成几何体、关节结构和物理参数。这一步里有个很巧妙的设计,叫标准连接件。
研究团队观察到,在机械设计领域,工程师们早就总结出了一套标准连接件,比如铰链、滑轨、销轴这些通用零件,不需要每次都重新设计。ARTISAN把这套思路搬进了3D生成里,提供了六大类参数化标准件:铰链、滑轨、销轴、旋转连接件、伸缩滑块、螺纹套筒。
这意味着当编码agent需要给一个抽屉装滑轨的时候,它不用从零开始计算滑轨和导轨之间该留多大间隙、怎么对齐轴线,它只需要调用现成的滑轨连接件模板,调整一下尺寸和安装位置就行。
**这就好比盖房子的时候,你不需要每次都现场炼钢、手工打磨一个螺丝钉,而是直接从五金店买标准规格的螺丝,拧进去就行。**
如果没有这套标准件,每次都靠AI凭空设计连接结构,出现悬空连接或者意外卡死穿模的概率会大大增加,论文里也证实了这一点:有了标准连接件之后,生成物体的碰撞率明显下降。
编码agent生成的候选物体,并不会直接定稿,而是先送进一个物理验证环节。这个环节用的是MuJoCo
**MuJoCo:一款被广泛用于机器人和物理仿真研究的物理引擎,能够模拟物体在重力、碰撞等真实物理规则下的运动表现。**
来检测两件事:碰撞和稳定性。
碰撞检测会让每个关节按照单关节、双关节、多关节三种组合方式分别运动,采样出上百甚至上千个不同的姿态,逐一检查部件之间有没有穿模。稳定性检测则是把物体放到地面上,模拟五秒钟的自由落体和静止过程,看它会不会因为重心没算对而倾倒。
这份物理检测报告,连同蓝图和当前生成的物体,会一起交给审查agent。
审查agent的职责是对照最初的蓝图和物理报告,给这个物体打分,并列出具体问题清单。这里有个很关键的细节:审查agent自己不直接修改物体,它只负责提出意见,真正的修改权仍然在编码agent手里。
这个分权设计其实很有讲究。
**如果审查agent既能挑毛病又能自己动手改,那它很可能会图省事,用最简单粗暴的方式让检查通过,比如论文里举的例子:编码agent为了让门不撞到机身,干脆把门的开合角度从90度砍到45度,这样碰撞检测确实能过关,但审查agent一旦发现这个开合角度已经偏离了蓝图里设定的功能需求,就会把这个"偷懒式修复"打回去,要求重新设计门的铰链结构,而不是简单缩小开合范围。**
这种分工就像公司里的质检部门和生产部门必须是两条线,质检员不能直接上手改产品,他只能指出"这批货有问题",然后让生产线按标准重新调整。如果质检员和生产工人是同一个人,为了赶工期,他太容易说服自己"这个小瑕疵不算什么"。
编码agent拿到审查反馈之后,会针对性地修改程序,重新生成,再送回审查agent,如此循环,直到问题被认为已经严重影响使用才会被标记为必须修复的硬伤,而不是靠一个笼统的总分来掩盖结构性缺陷。
怎么知道一个3D物体生成得好不好
光有生成方法还不够,这篇论文另一个重要贡献,是搭建了一套相当全面的评测基准,用来衡量生成出来的物体到底好不好。
这套基准覆盖四个维度:空间保真度、物理合理性、下游任务表现、以及人类主观评价。
空间保真度看的是生成的物体外观、几何形状、运动结构,跟参考资产之间差多少。这里面用了很多精细的指标,比如IoU
**IoU:交并比,Intersection over Union,衡量两个区域重叠程度的指标,数值越接近1说明两者形状越吻合。**
、PSNR、SSIM、LPIPS这些图像相似度指标,还有专门针对3D形状的倒角距离
**倒角距离:Chamfer Distance,简称CD,一种衡量两组三维点云之间相似程度的距离度量,数值越小表示两个形状越接近。**
来衡量整体和局部部件的几何误差。
物理属性评测则更贴近这篇论文的核心关切,包括材质还原度、质量准确度、碰撞率、以及稳定性。质量评测用的是美国亚马逊的ABO-500数据集,这是一批带有真实产品重量标注的商品图片,相当于拿真实世界里称重称出来的重量当标准答案,看AI估算的质量准不准。
稳定性评测这块,研究团队专门构造了一组50个"容易翻车"的物体,刻意挑选那些重心本来就容易偏高、结构容易失衡的类型,比如悬臂结构、伸缩升降台、细长立柱这些,用来考验生成系统在极端结构下还能不能保持物体站得住。
下游任务表现,是这篇论文里我觉得最有说服力的部分,因为它测的不是纸面指标,而是生成出来的物体能不能真的用在机器人训练里。研究团队用一个叫π0.5的视觉语言动作模型
**π0.5:一种结合视觉理解、语言理解和动作输出的机器人控制模型,可以理解为让机器人"看懂场景、听懂指令、做出动作"的AI大脑。**
在RoboTwin 2.0和RoboCasa365这两个机器人仿真基准上做实验,把ARTISAN生成的物体加入训练数据,看机器人完成任务的成功率有没有提升。
数据说话
先看空间保真度的表现。在ArtVIP这个包含家具、厨房电器、机械设备等多种类别的50物体评测集上,用GPT-6-Astra模型的ARTISAN在11项指标里拿下了其中8项的第一名,appearance方面的IoU达到0.7675,SSIM达到0.8769,几何方面的物体级倒角距离做到0.0011,部件级IoU达到0.3587,全面领先其余十多个对比方法,包括最新的专用模型Instruct-Particulate、PhysX-Anything,以及Codex、Claude、Gemini这些通用编程agent。
物理属性方面的提升更为悬殊。碰撞检测这一项,ARTISAN把单关节碰撞率压到了1.7%,双关节碰撞率压到了3.7%,多关节碰撞率压到了13.0%。
对比一下其他方法:Instruct-Particulate的单关节碰撞率是70.4%,URDF-Anything+更是高达84.6%,就连同系列但没有加物理验证的消融版本"Ours w/o phys."也达到了37.5%。
这组数字意味着什么?
意味着在真实的操作场景里,如果你用Instruct-Particulate生成的物体做实验,每10次开合动作里差不多有7次会出现部件互相穿插,几乎没法用。而ARTISAN的完整版本,10次里只有不到2次会出问题,剩下8次以上都是干干净净、没有任何穿模的正常动作。
稳定性方面,ARTISAN在静止状态下的稳定率达到98%,完全打开状态下也能保持96%,而排名第二的Codex分别是86%和82%,Articraft只有82%和82%,大部分方法在重心偏高的开放姿态下稳定率都会明显下滑,唯独ARTISAN几乎不受影响。
**这组实验最有意思的地方在于消融实验。研究团队专门做了一个对照组,把ARTISAN里的物理验证环节关掉,只保留多agent架构,结果appearance和geometry指标几乎没什么变化,但碰撞率立刻从个位数飙升到接近物理验证版的十倍以上。**
这说明外观和几何形状的准确性,跟物理行为的正确性,根本就是两件可以完全脱钩的事。一个模型完全可能把物体的样子做得惟妙惟肖,同时内部的物理逻辑一团糟,而且单纯依靠更强的语言模型是补不上这个窟窿的。论文里提到即使把Articraft和Codex都换成更强的GPT-6-Astra模型,碰撞率依然远高于加了物理验证的ARTISAN,这说明模型能力的提升,和物理合理性的保障,根本不是同一回事。
机器人任务上的结果同样说明问题。在RoboTwin 2.0的三个任务上,只用原生数据集训练的策略平均成功率是80%,加入ARTISAN生成的数据之后提升到了84%;而只用Articraft生成的数据训练,成功率反而掉到60%。在RoboCasa365的八个任务上,差距更夸张,原生数据是39%,加入ARTISAN数据提升到43%,而Articraft生成的资产大部分根本连"能不能用于生成成功演示"这一关都过不了,在两轮资产合格测试里,RoboCasa365上Articraft的通过率只有8%,而ARTISAN达到了44%,原生资产是76%。
人类主观评测这块,研究团队招募了30名非专业学生,让他们不只看渲染图,还要在浏览器里亲手拖拽操作每一个候选物体的MuJoCo模拟场景。结果ARTISAN拿到43%的第一名选票和85.1%的前三名选票,远超排名第二的Codex的21.1%和68.7%。这个评测方式本身也值得一提,因为它强迫参与者真的去"摸一摸"这个物体,而不是只看一张漂亮的静态照片就打分。
一些没解决的事
这篇论文也坦诚地留了一些开放问题。生成一个ARTISAN资产的平均API成本大约在6美元左右,生成时间要三十多分钟,这比起Articraft几分钟、几毛钱的开销,代价高了不少。这是可以理解的,毕竟多了一整套物理模拟循环和跨agent的反复沟通,但这也意味着目前这套方法还没到能大规模、低成本铺开的阶段。
另外在RoboCasa365的失败案例分析里,研究团队发现了一个很有意思的细节:有些生成的物体在物理层面完全没问题,却因为具体的机械设计跟参考演示不完全一致而导致数据生成失败。比如一个电热水壶的参考演示里用的是滑动式按钮,但生成的资产用了铰链式按钮,虽然这个设计本身完全合理、物理上也站得住,但依赖轨迹迁移的演示生成流程就是没法把这种开合方式的动作迁移过去。这说明光是物理合理还不够,生成的物体还得跟后续的具体应用管线兼容,这是一个比单纯物理正确性更微妙的层次。
写在后面
读完这篇论文,我印象最深的其实是那个电热水壶滑动按钮变成铰链按钮的例子。
这件事乍一看是个小bug,但往深想,它其实揭示了一个更本质的问题:物理正确不等于功能可用。
一个物体可以完全符合所有物理定律,站得稳,不穿模,材质也对,但它依然可能因为一个微小的机械设计选择,跟整个使用链路脱节。这让我想到,我们现在谈论"AI生成的内容是否可用",往往默认的标准是看起来对不对、运行起来崩不崩,但真正决定一个东西能不能融入真实工作流的,常常是那些更细碎、更依赖具体上下文的匹配问题。
另一个让我反复琢磨的地方,是那个"自我评判偏差"的设计洞察。这不是一个3D生成专属的问题,几乎所有需要AI自我验证的场景都会撞上这堵墙。写代码的AI给自己写的代码打分,写文章的AI给自己的文章挑错,本质上都存在同样的结构性盲区:它知道自己想干什么,所以很难站在一个完全不知情的外部视角去审视结果。ARTISAN给出的答案很朴素,就是让负责生产和负责审查的,必须是两个互相不干涉决策权的独立角色。这个思路听起来简单,但做起来需要真金白银的工程代价,比如多一轮agent之间的往返通信,多一份独立维护的测试集。简单的解法往往是最容易被偷懒跳过的那个。
一个物体好不好,到底应该由谁来说了算?是写出它的人,还是真正去用它的人?
Q&A
Q1:ARTISAN是什么?
A:ARTISAN是一套生成"物理上站得住、关节能正常活动"的3D物体的系统,由设计agent、编码agent、审查agent三个独立模块组成,并引入MuJoCo物理模拟反馈,专门解决AI生成3D物体外观好看但物理逻辑错乱的问题。
Q2:ARTISAN生成的3D物体真的能用在机器人训练里吗?
A:可以。论文实验显示,把ARTISAN生成的数据加入机器人训练后,RoboTwin 2.0任务成功率从80%提升到84%,RoboCasa365任务成功率从39%提升到43%,而对比方法Articraft生成的数据反而会拖累成功率。
Q3:为什么3D生成模型容易出现部件穿模的问题?
A:因为大多数方法只关注外观和几何形状是否逼真,却没有真正把生成结果放进物理模拟器里验证关节运动是否合理。论文测试显示,没有物理验证环节的方法碰撞率普遍在37%到100%之间,而加入物理反馈后碰撞率能降到个位数。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。