作者:蒋陈凡夫

编辑:桃子

UCLA应用数学副教授蒋陈凡夫写下万字长文,回顾了从转系生到终身教授十二年的自我历程。

最近评上tenure,有人来祝贺:”Nowyoucanfreelydeclinereviewrequests!”。我想了想,似乎对心态上的改变确实如此而已。又想到也许可以写个什么纪念一下。那这19岁到31岁,有什么拿来回味的没有?好像有很多,但不整理一下的话,又不知从何说起。那还是直接写一点吧。从物理本科,到CSPhD,CS教职,又在数学tenure,这看似曲折的十二年竟是在做同样的研究,一年都没有浪费。一路走来,有很多东西值得缅怀和总结,也许能帮助思考未来。顺便把这一路干过的牛逼的事,和遇到过的牛逼的人都写下来,看着应该很舒爽。

第〇章:我的三叉戟

第一章:缘起

第二章:一炮炸出来两个坑

第三章:雪与海的浪漫

第四章:摩擦摩擦,在光滑的路上,摩擦

第五章:少年英雄胡渊鸣

第六章:与timestep结缘

第七章:摩擦碰撞的第三次战役,IPC魔童降世

第八章:下一个“Timestep”

第〇章:我的三叉戟

十二年来摸爬滚打地给计算机图形学做了些物理模拟相关的科研。拿的出手的代表方向有三:物质点法(MaterialPointMethod:MPM),仿射粒子元胞法(AffineParticleInCell:APIC),和增量势能接触法(IncrementalPotentialContact:IPC)。每个方法的人和事下面的章节再去回忆,这一章,先笼统概括一下。

第一个方向:MPM。说到物质点法,按照惯例,或许得提一下自己多多少少参与了的冰雪奇缘。年发掘MPM后我去做了些别的事情,组里其他同学拿MPM验证了雪;我在早期没有去参与最初的SIGGRAPH工作。迪士尼工作室的代码很臃肿,远远不止99行,而且迪士尼的律师可不是吃素的,向来有荒岛求生画米奇一说。既然不能描绘太多代码的事情,那就只放好看的剧照:

MPM擅长做雪在短期内成为了一个刻板印象。于是我决定花一些功夫来重塑一下MPM的形象。从技术层面上来说,MPM只是一个基本的Galerkin空间架构,物理过程数值模拟的真正技术点在于时间和空间的离散算法、本构模型的设计、性能的加速、以及巧妙求解偏微分方程数值解的不同手段。MPM是一块高品质的画布,这些技术点的创新才是真正的笔法(stroke)。但是技术点是里子,MPM是面子。于是从面子上看到的,便是我与一干志趣相投之士用MPM去平A物理的世界的各种固体和流体:巧克力,果冻,面包,牙膏,冰淇淋,泡沫,泥土,岩浆,牛排,东坡肉,橘子,西瓜,肌肉,骨骼,内脏,布料,毛衣,头发,雪山,沙海,冰川,河流,无人机,炸药,等等。这里有固体,有牛顿流体,有非牛顿流体,有粒状体,有固液混合体,还有人体。大到山川河流,小到雨露甘霖,MPM从一个铁头功,逐渐被扩写成了一本七十二绝技。

后来跟人合开了公司,写了一个实用的MPM特效解算器。最近Autodesk买下并放进了Maya,相信未来的几年,更多的电影里会看到MPM的应用场景。

第二个方向:仿射粒子元胞法(APIC)。这是我年得意的文章,是年的圣诞节独自一人在迪士尼的大帽子studio里加班完工的。迪士尼所在的Burbank是大洛杉矶地区一个荒漠城市,我却在荒漠和大海结了缘。于是那一年,APIC给海洋奇缘里的水提升了许多丰富的细节。

时间快进到年,有一位气血翻腾的胡姓少年来访问我,一起把APIC和MPM系列工作推到了高潮:MovingLeastSquaresMPM(MLS-MPM)。那之中与后来

太极图形的渊源和MPM在可微分模拟领域的拓展,已有好文记录。

第三个方向:IPC。年12月31日,宾夕法尼亚大学计算机图形学中心,23点59分,手里的咖啡还烫。有一块补天的石头,它吸满了天地灵气日月精华,突然炸裂开了。增量势能接触法IPC横空出世。王婆卖瓜自卖自夸:我窃以为,IPC改良了固体模拟,启动了“工业革命”,把连续固体的仿真科学(不只在图形学)带入了“蒸汽机时代”。年,它的衍生故事还在不断上演:

第一章:缘起

年,我遇到了改变了我一生的三个人。第一个人是我的妻子;这十二年,我们相恋五年,结婚七年,她挽着我踩下了每一个有深有浅的脚印。十二年来做过的每一个回头来看无比正确的决定,大到职业道路,小到咬文嚼字,我的许多影响深远的选择背后都有她默默的付出不休不眠的时间陪我去抽丝剥茧和理性分析。我在中科大少年班选的专业是等离子体物理,年在UCLA入学后想转到计算机,如果没有她绝对理性地安抚我的急躁和帮我规划合理的步骤,我可能连第一学期都没读完就自暴自弃、不知所向。她还会陪我走很远很远。

年改变我命运的另两个人,就是我读PhD的联合导师DemetriTerzopoulos和JosephTeran。他们的成就是我一生奋斗的目标。

我在UCLACS系的导师Demetri是英国皇家学会的院士(并列于牛顿、本杰明富兰克林、霍金等人),奥斯卡技术奖得主,他是年代计算机图形学里第一个做物理仿真的人,可谓元宇宙物理引擎之父。他同时也是计算机视觉泰斗,发明了snake算法。他其实还跟Hinton一起在二十多年前就发表了世界上第一篇用神经网络做物理仿真的图形学文章,似乎常常被人漏cite。我在数学系的共同导师是Joseph,他是陶哲轩的同事(我现在也是了),levelset发明人StanOsher的徒孙和同事,曾被discover评为40岁以下最聪明的20个大脑之一(20BestBrainsUnder40),他是图形学里最有名的做有限元固体仿真的人。

年秋天,我跟一个朋友一起联系了Demetri,以及Joseph和朱松纯老师。朱老师给出了很理性的不赞成我转系的答复。(后来朱老师对我改观,跟Osher一起加入了我的博士委员会,再后来通过挚友,如今北大智能学院的朱毅鑫教授,形成密切的学术合作关系,这是后话。)Demetri和Joseph冒着很大的实验室财务浪费的风险,看着我一段蹩脚的弹簧模拟代码(MATLAB写的),但是考虑到我以前发表过相对论相关的论文应该脑子不笨,给了我一个机会。我赶紧红牛下肚,花了几个通宵强行通读了一本教材,并复现出了一篇有限元肌肉仿真的siggraph文章。诸如此行为,是impress图形学教授最简洁有效的手段。从此一发不可收拾。

写代码和图形学,我入门都很迟。

胡渊鸣初中就写刚体引擎小游戏了,我博一还在自学C++模板。跟许多有理想的图形学或游戏爱好者一样,从头搭建一个自己的引擎是一个抑制不住的冲动。年初,补完所有计算机和应用数学课程的我结合自己的物理背景,摸索出了一个长期目标:用物理仿真去重建这个世界。Demetri也鼓励我:你比谁都适合去closethegapbetweenvirtualrealityandphysicalreality,把虚拟世界跟物理世界给打通。那时候没有元宇宙这个说法,但是我的两个导师都是digitaldouble虚拟人体的深度发烧友,这对我的科研兴趣的影响不可谓不大。回到物理引擎这个构想上,心动不如行动,这世界五颜六色千变万化,那这引擎就叫魔方大,哦不,百变怪吧!于是ditto诞生了:

ditto里包含了几个固体仿真和碰撞处理的练手项目,特别是隐式有限元的3D布料仿真。当时有taichi语言的话,应该写出来能当一次GAMES大作业拿个A+。可惜Ditto维持了半年后,我投入一篇siggraph文章的具体工作中,便没有再更新了。后来8年z-emotion/ZelusFX公司的CEO突然联系我,说他年跟我要的ditto代码帮助他弄出来一个布料设计软件的公司,现在有很多用户。我开心了很久。

第二章:一炮炸出来两个坑

我博士期间花了两年时间合作的第一个项目,是物体破碎。网上有人说,计算机图形学是程序员的三大浪漫之一(另两个是操作系统和编译原理),但那时的我还没有看到浪漫,只看到了狂拽炫酷,只想在siggraph上播最帅的demo,做最靓的仔。

那时我学完了计算固体力学。跟许多做仿真的初学者一样,一切都是从模拟果冻开始,毕竟果冻是最典型的弹性体,并且往往很软,不会给ODE(常微分方程)的时间步离散格式带来过分stiff从而要么dt小,要么系统难解的这个数值问题。于是在弹塑性固体里面,我找到一个想要模拟的案例:子弹射穿果冻。那时乃至今日看来,都没有多少比这更炫酷的实拍视频:

现在教职期间,我常告诉自己的学生,想做什么科研,在大致调研相关工作并确定学术品位和潜在影响力之后,可以直接开始撸代码,不要太担心techinicalcontribution不够。因为你开始做之后,很快就会遇到你之前多半没预料到的问题,解决它们将成为你文章的最主要contribution。我们用有限元去写果冻破碎,不到半个月,就碰到了两个重大的难题:(1)如何自然破裂,即不能在裂面看到三角形丑陋的样子,和(2)如何稳健地处理复杂碎片之间的摩擦碰撞。

拓扑变化哪家强,levelset敢称王。要实现自然破裂,结合有限元和levelset方法是一个非常巧妙的思路。Levelset有非常强的灵活性,可以从各种自然的角度去分裂四面体,而且可以完全避免重新划分网格(remesh)。

Levelset方法的发明人StanOsher在UCLA,给了我们一些宝贵的建议,很快,破裂的问题便迎刃而解了。

这篇文章,我更主要负责的是做摩擦碰撞。建模破裂之后,这顺其次成为最头疼的事情。levelset的marchingtetrahedra切割法带来了无数形状“恶心”的果冻碎片:在裂面上,有的三角形瘦如一道闪电,有的扁如一张大饼。计算几何上,这些奇特的三角形被称作是“illconditioning”,想要用普通几何方法去搞定它们的碰撞,不说碰撞算法本身的case难以穷举,光是浮点数精度带来的千变万化的误判就足以让人望洋兴叹。我花一年时间试了很多算法,皆以宣告失败。

最值得讲的一个算法,是一个非常大胆的idea。我把解算完的固体投射到一个规则的网格上,然后让网格假装看到的是不可压流体,求解一个泊松方程,把速度场变成无散的,再插值回到固体上。这竟给出了非常漂亮的不穿透解!但是缺点在于,物体的运动被变的太像流体一般轻盈灵动了,缺少了那份固体特有的执拗。我便去问我的导师Joseph,有没有类似于这个解流体方法的解固体的方法,我想拿来在碰撞上试一试。他回忆良久,说出了我一个我随后持续专注十年的名称:MPM。

MPM是年在美国的国家实验室发明的。它是一个混合拉格朗日粒子和欧拉网格的固体解算方法。往前追溯到年代的Particle-In-Cell(PIC法,最初用于求解等离子体物理的麦克斯韦方程)和年代的Fluid-Implicit-Particle-Method(FLIP法,用于流体结算,

张心欣的导师RobertBridson,我的师叔,于年引入图形学)。它像流体一样,自动防止了材料间的穿透,又可以漂亮地求解固体的方程。把MPM拿过来做碰撞处理,在当时的我看来,再合适不过了:

终于,我交了一份目前回头看来远远不够完美的答卷:

这颗子弹大的有点夸张,更像一枚炮弹。它被评为了SCA3的BestPaperAward。它也炸开来两个MPM带来的学术大坑:拓扑变化的多材料,和自动处理的摩擦碰撞。我和MPM被凑到了一起,从暧昧到沉迷。

彩蛋:文章里还首次用刑了一只犰狳,引起了许多论文读者的不适。但后来这个场景,竟多次被别的研究者作为benchmark来follow,那可不怪我咯。

第三章:雪与海的浪漫

学习MPM的那几个月,同组的俄国师兄Alexey也加入到粉丝小分队中来,并主导了广为流传的“MPMsnow”的那篇文章。一时间,我们组和迪士尼的联姻传为佳话。有我在内的好几个学生去迪士尼实习和参与写作Production软件代码。在冰雪奇缘的庆功宴上,我第一次尝到技术产业化的喜悦。

冰雪奇缘之后,迪士尼做了一个BigHero6超能陆战队。在那里,MPM被用在模拟一些奇怪的材料上,这是个未怎么宣传过的信息。

Disney#39;sBigHero6

时间随之转移到年。我打算博士毕业了,想做一些在MPM和PIC里面更数学更基础的东西,又同时希望能在现有的FLIP流体和MPM固体上做出有应用价值的变革。那么回顾一下,用FLIP做流体,和用MPM做固体,流程中的数学上有什么不合理的hack呢?内行人一定会指出:是FLIP-PICblendingratio。FLIP和PIC其实可以指代混合粒子网格法中,网格向粒子插值的那个步骤。PIC直接做速度场的插值,但是会引入巨大的数值粘性,FLIP插值速度增量,但是会引入巨大的不稳定性。于是图形学的流体泰斗RobertBridson教授在年就提出,把FLIP的结果乘以0.97,再把PIC的结果乘以0.03,然后把它们加起来。这个数字是一个用户可调的参数,但可调而不可控!不同的场景下,不同数字会给出非常不同的结果。它是艺术家的噩梦,是强迫症的地狱。于是我决定干一票大的,把这个东西除掉,因为我有一个信念:需要设置heuristic参数的仿真算法绝不可能是一个好算法的最终形态。

再结合对于角动量守恒方程的理论分析,跳过一些技术细节,AffineParticleInCell(APIC)被误打误撞推导了出来。FLIP流体和MPM固体进入了一个新的篇章,艺术家们可以更轻松的得到它们需要的仿真结果粘稠度,无论是山川大河,还是岩浆滚滚。它们在我心中,是可以媲美冰雪的浪漫。

迪士尼非常高兴,迫不及待地把APIC用进了海洋奇缘:

年夏天,我毕业和结婚。婚礼在洛杉矶南边的玻璃大教堂,有山有海有树林。那年暑假的SIGGRAPH,我认识了很多很多志同道合的朋友。印象最深的是在流体的session上,我看到一位风流倜傥的银发少年。他跑来问我,“今年的好文章众多,能长久流传的是哪几个?”我随便应付了几句。他说道:“今年的文章,有两篇最diao,一篇是我的IVOCK,另一篇是你的APIC。”我吃了一惊,连忙互换姓名。原来这位霸气的少年,叫

张心欣,他现在带领“泽森科工”在为中国特效打天下。那时纯粹的我们,在对方双眸反光里,都看到了一个勇者,持各自打造的巨剑,浴血挑战着一头叫做数值耗散的恶龙。自那天起,我们也开始了迄今长达七年的并肩合作。

毕业之后,我继续深耕MPM固体和流体。学术界的人其实蛮喜欢立flag。我就一直尽量坚持去贯彻一个基本原则:即使我的仿真文章是投在图形学会议和期刊上,我也绝不为了视觉效果去做任何不符合物理和数学原理的hack;我需要每个算法都普适到整个计算物理学。这个原则给后来教授期间的我带来了很多的好处:包括了(1)自然科学研究基金的青睐,(2)在Nature子刊发表的MPM自然灾害预测技术(雪崩,山体滑坡,泥石流,冰川碎裂,海啸),

以及(3)医院十分喜爱的虚拟创伤和手术的仿真平台:

它们也许没有雪与海一样浪漫,但却更加真实和直接地影响到了这个世界,甚至帮忙拯救生命。这些工作也给图形学里做物理仿真的同行在自然科学和医学领域赢得了更多的尊重,纠正这些别的领域的人关于图形学就是不断引入他们做的东西的误解。毕竟很多图形学论文喜欢把这个叫作contribution:“WeintroducetheXXXmethodto

转载请注明地址:http://www.abmjc.com/zcmbyf/2348.html