你有没有玩过那种能360度自由走动的3D场景?最近两年,这种技术突然爆发了。打开HY-World 2.0、Marble、Lyra 2.0这些工具,输入一张图片或者一段文字,几十秒之后,一个完整的三维世界就生成出来了,你可以在里面随意转圈、拉近拉远,火山、湖泊、宫殿,细节丰富得让人惊讶。
但玩了五分钟之后,你会发现一个很诡异的地方:这个世界是死的。
火山口的烟雾永远停在半空,一丝不动。湖面像玻璃一样光滑,没有一丝波纹。挂在屋檐下的灯笼纹丝不动,仿佛时间被按了暂停键。你可以从任何角度看这个世界,但你看到的每一帧,本质上都是同一张照片的不同切片。
这就是2026年这篇论文要解决的问题:怎么让一个静止的3D世界,真正"活起来"。
**静止世界的困境,比你想的更棘手**
你可能会说,这还不简单,加个动画不就行了?
但事情没有这么简单。研究团队在论文开头就列出了之前所有尝试的方案,发现它们都有致命缺陷。
先说"2D电影图"这个概念。英文叫cinemagraph
*cinemagraph:一种让照片中特定区域循环播放微小动态,其余部分保持静止的视觉效果,常见于时尚杂志封面的"活照片"*
这种技术已经存在了十几年,比如让瀑布一直流动,而周围的岩石和树木保持静止。但它的局限很明显:只能在一个固定的2D画面里玩花样,你换个角度看,这个"动画"就穿帮了,因为它压根不是真正的三维场景,只是一张图片加了点小把戏。
那3D版本的尝试呢?论文里提到了三个代表性工作:3D Cinemagraphy、LoopGaussian、3D-MOM。这几个方法确实能做到换角度观看,但它们全都依赖一种叫"欧拉流"的运动建模方式。
*欧拉流(Eulerian flow):一种描述流体运动的数学方法,关注空间中固定点上速度场随时间的变化,常用于模拟水流、烟雾等流体现象*
这个方法的问题在哪?它天生就是为流体设计的,所以这些方法做出来的动态效果,基本只能是水流、云雾这种"软乎乎"的东西。你让它模拟一个人物转身,或者模拟灯光从亮变暗,它直接就不会了。更麻烦的是,这几个方法全都需要人工划定一个"运动遮罩"
*运动遮罩(motion mask):一张标注图,用来告诉算法画面里哪些区域应该动、哪些区域应该保持静止*
也就是说,你得先用鼠标圈出"这片水该动"、"这棵树该晃",算法才知道该在哪里下手。这不仅麻烦,更本质的问题是:算法自己完全没有能力判断一个场景里什么东西动起来才合理。
研究团队做了一张对比表,列出五个关键能力:是否需要人工遮罩、是否支持真正的三维自由视角、是否数学上保证能无缝循环、是否支持多样化的运动类型、是否支持光照变化。结果是,之前所有方法都在某一项或多项上打了叉,只有他们的新方法OuroWorld在五项上全部打钩。
这个名字很有意思,Ouro来自"衔尾蛇"Ouroboros,那条咬住自己尾巴、形成完美闭环的蛇。这个意象精准地对应了论文想解决的核心问题:怎么让一段动画永远循环下去,而看不出接缝。
**借video生成模型的脑子,让场景学会"该怎么动"**
既然欧拉流这条路走不通,那怎么让算法知道一个场景里什么该动、怎么动?
研究团队的思路挺聪明:别自己造轮子了,直接借用现在最强的视频生成模型的"常识"。
过去两年,视频生成模型突飞猛进,像Seedance 2.0这样的模型,已经能根据一句话描述生成逼真的、包含复杂运动的视频了。这些模型见过海量的真实世界视频,天然就懂得"烟该怎么飘"、"水该怎么波动"、"光该怎么闪烁"。
OuroWorld的第一步,就是找一个视觉语言模型
*视觉语言模型(VLM, Vision-Language Model):既能"看懂"图片内容,又能用自然语言描述和推理的AI模型,论文中使用的是GPT-5.5*
来看一眼这个静态3D场景渲染出的某个画面,让它自己判断"这个场景里什么东西应该动,应该怎么动"。比如看到一片森林,VLM可能会想到阳光透过树叶洒落、树叶轻轻摇晃;看到一个火山场景,它会想到烟雾升腾、岩浆微微发光。
这一步解决的是"创意"问题。如果没有这一步,你永远得靠人工告诉算法该往哪个方向发挥想象力。这就像让一个完全不懂厨艺的人去做菜,你必须一步步教他放多少盐、炒多久,但如果请来一个经验丰富的大厨,你只需要说"做一道清淡的菜",剩下的细节他自己就能把握得恰到好处。VLM在这里扮演的正是那个"大厨"的角色,它见过足够多的世界,知道什么样的动态是自然的、合理的。
VLM生成一段文字描述之后,这段描述会喂给视频生成模型Seedance 2.0,让它生成一段大约10秒钟、看起来接近循环的参考视频。生成之后,VLM还会再检查一遍结果,把那些动得不自然、不合理的生成结果过滤掉。
但这里有个问题:这段参考视频,只是从一个固定的视角拍出来的。而我们要做的是一个能自由走动观看的3D场景,光有一个视角的视频,根本撑不起整个三维空间。
**从一个视角,"长出"二十个视角**
这是整篇论文第二个关键的技术环节:怎么把一段单视角的视频,变成一组能支撑三维重建的多视角视频。
研究团队用了一个叫VGGT-Ω的三维基础模型
*VGGT-Ω:一种能够从图像或视频中估计相机位姿、三维几何结构的深度学习模型,论文中用来把参考视频"抬升"成一个动态点云*
把那段参考视频和原本3DGS场景里渲染出的多角度静态画面一起喂进去,得到一个随时间变化的动态点云。
点云可以理解成用无数个带位置信息的小点,去描述一个三维空间里物体的形状和位置。接下来,研究团队在水平方向正负20度的范围内,均匀选取20个不同的观察角度,把这个动态点云从这些角度分别"拍"出来,变成20段视频。
但这里立刻冒出一个新麻烦:从一个固定角度拍出来的内容,换个角度去看,必然会出现"看不见的地方",这些空洞在论文里被称为disocclusion holes
*去遮挡孔洞(disocclusion holes):当视角发生变化时,原本被遮挡住、没有被观察到的区域暴露出来后留下的信息空白*
想象你站在一棵树前面拍照,树干挡住了后面的一部分风景。当你走到侧面重新拍摄,之前被树干挡住的那部分突然露出来了,但你压根没拍到那块区域的真实样子,只能靠猜测去补全。
这个"猜测"的工作,交给了一个叫TrajectoryCrafter的视频修复模型
*TrajectoryCrafter:一种能够重新定向相机轨迹的视频扩散修复模型,用于补全多视角视频中因视角变化产生的缺失内容*
它参考那段原始的参考视频,把每个视角里缺失的部分智能地填补完整,最终得到20段完整的、彼此有联系的多视角视频。
走到这一步,表面上问题好像解决了,但实际上,一个更隐蔽的麻烦正潜伏在这堆生成出来的视频里。
**二十段视频互相"打架"怎么办**
这20段视频是独立生成的,即便参考了同一段原始视频,它们之间也不可能完全一致。这个视角里烟雾往左飘,那个视角里烟雾可能往右飘;这个视角里的光是亮的,另一个视角里可能偏暗一点。
如果你直接把这20段互相矛盾的视频,硬塞给一个三维场景重建算法,让它去学习"同一个场景在不同视角下应该是什么样子",会发生什么?
论文里给出的答案很直接:场景会变得模糊、运动会变得杂乱无章。研究团队做了一张示意图,清楚地展示了这个"没有特殊处理"版本的失败效果,细节逐渐褪色,动态变得不连贯。
这其实是一个很根本的矛盾。想要场景动起来,就得从生成的视频里学东西;但生成的视频天生就互相矛盾,学得越多,场景被污染得越严重。这就好比你想拼一幅完整的拼图,但手里的二十盒拼图碎片,虽然画的都是同一幅图,边角却对不太上,你越想把它们硬凑在一起,拼出来的画面就越扭曲变形。
研究团队给出的解法叫"接地漂移场"
*接地漂移场(Grounded Drift Field):一种专门用来吸收不同视角生成内容之间的不一致性的辅助网络,它只在训练阶段起作用,推理生成最终结果时会被直接丢弃*
这个设计的核心思路是这样的:既然每个视角生成的内容都带着自己的"小毛病",那就专门训练一个额外的网络,去学习并记录每个视角"独有的偏差"是什么样子。换句话说,场景本身该怎么动,由一个主网络负责;而每个视角比主网络"多出来的、不该算在场景真实运动里的那部分偏差",交给漂移场去单独消化。
训练结束后,这个漂移场就完成了它的使命,被直接扔掉。最终渲染3D cinemagraph
*3D cinemagraph:具备自由视角、能够无缝循环播放的三维动态场景,是本文提出的核心概念,区别于传统只能从固定视角观看的2D cinemagraph*
的时候,用的只是那个干净的主网络,它学到的是场景真实该有的运动,而不是被各个视角的噪声污染过的"妥协版本"。
但这里还藏着一个微妙的陷阱。既然漂移场这么好用,能帮主网络"甩锅",那它会不会把该学的运动也一起甩掉了?
研究团队确实发现了这个问题,并给出了一个叫"接地"(Grounding)的额外约束。具体做法是:那段最初由视频生成模型直接产生的参考视角,被认定为最可信、最权威的信息来源,这个视角上完全不允许漂移场插手。也就是说,场景的主网络必须独自把参考视角的动态完整还原出来,不能依赖漂移场帮忙分担。而对于其他视角,漂移场只能去吸收那部分"相对于参考视角多出来的额外偏差"。
论文里的消融实验数据很有说服力。去掉这个"接地"约束之后,Vividness Degree,也就是衡量动态丰富程度的指标,从0.0423直接掉到0.0392。这个数字差距看起来不大,但它说明的是:一旦漂移场可以在参考视角上也插手,它就会把本该让场景学会的运动,偷偷揽到自己身上,等训练结束漂移场被丢弃,场景就显得没那么生动了。
**用傅里叶级数,从数学上锁死"循环"这件事**
说完了怎么让场景学会动、怎么处理视角冲突,还剩下论文开头提出的另一个核心挑战:怎么保证这段动画真的能无缝循环播放,首尾相接看不出破绽。
一般的做法可能是:生成一段视频,让它的最后一帧尽量和第一帧长得像,然后硬接上。但"尽量像"和"完全一样"之间,永远存在误差,这个误差哪怕只有一点点,在循环播放的瞬间也会被人眼捕捉到,变成一个很突兀的跳帧。
OuroWorld的解法很巧妙,直接从数学结构上杜绝了这个问题,而不是靠后期调整去修补。
具体来说,场景里每一个三维高斯点
*3D Gaussian Splatting(3DGS):一种用大量带有位置、颜色、透明度等属性的三维高斯分布点来表示和渲染场景的技术,渲染速度快,是当前主流的三维场景表示方法*
的时间变化,不是用一个任意的神经网络去预测,而是严格用傅里叶级数
*傅里叶级数(Fourier series):一种用若干个不同频率的正弦和余弦波叠加来逼近任意周期函数的数学工具*
来表达。傅里叶级数这个工具有个天生的数学性质:只要周期T设定好了,这个函数在时间上必然是周期性的,t和t+T的取值永远完全相等,这是数学公式本身决定的,不是靠训练碰运气凑出来的。
这意味着不管网络训练得好不好、学到的具体运动模式对不对,只要用了这套傅里叶级数的参数化方式,循环这件事就是100%保证的,不存在"训练得不够好所以循环有瑕疵"这种情况。
这个设计思路可以这样理解:假设你要做一个一直转圈的旋转木马,有两种办法。第一种是雇一个司机,每次都尽量精确地把木马停回起点再重新开始,但司机难免有误差,久而久之,起点和终点会慢慢对不上。第二种办法是直接把木马装在一个固定的旋转轴上,物理结构本身就决定了它只能绕着轴转圈,根本不存在"停不准"的问题。傅里叶级数在这里扮演的就是这根旋转轴的角色,它从结构上杜绝了误差累积的可能性。
如果不用这种周期性结构会怎样?论文的消融实验专门测试了这一点:把傅里叶基的周期从T改成2T,表面上模型的表达能力没变,但循环的保证彻底消失了。实验数据显示,Seam SSIM(衡量循环接缝处相似度的指标)从0.9965直接跌到0.9783,循环最后一帧和第一帧之间出现了明显的跳跃感。有意思的是,另一个指标MALF几乎没变(0.0809到0.0788),这说明问题精确地集中在循环接缝那一个点上,而不是整体运动变得混乱了,这恰好验证了周期性约束的作用确实只在"闭环"这件事上。
**没有标准答案,怎么判断做得好不好**
这篇论文还有一个挺现实的难题:怎么评价一个3D cinemagraph做得好不好?
如果是传统的图像识别任务,有现成的标准答案可以对照打分。但这里的场景是生成出来的全新内容,世界上根本不存在一个"正确答案"去对比。你怎么知道这段烟雾飘得自然不自然?这段循环接得顺不顺滑?
研究团队设计了一套不依赖标准答案的评估体系,从四个维度衡量:生动程度、自然程度、循环接缝的连贯性、画面整体质量。
生动程度(Vividness)这个指标由三部分组成:画面里有多少像素发生了明显的运动变化,有多少像素的亮度发生了明显改变,整体画面结构相似度的变化幅度有多大。这三者取平均,就是Vividness Degree。
自然程度(Naturalness)的衡量方式挺有意思,研究团队用另一个独立的视频生成模型MiniMax H3,针对每个场景生成20段参考视频,用这些视频去代表"自然视频应该长什么样"的分布,然后计算待评估的视频和这个分布之间的距离,这个距离越小,说明生成的内容越接近真实世界里视频该有的样子。这里特意换了一个和自己生成流程里用的Seedance 2.0完全不同的模型,避免"自己考自己的试卷,自己打分"的嫌疑。
循环接缝连贯性这块,研究团队专门设计了一个新指标,叫运动感知循环保真度
*Motion-Aware Loop Fidelity(MALF):一种专门用来评估循环动画质量的指标,它只有在场景同时满足两个条件时才会得高分:运动幅度足够大,并且运动确实精准地回到了起点*
这个指标设计得很巧妙,它故意惩罚那种"几乎不动所以看起来很循环"的偷懒方案。一个完全静止的视频,所有帧长得都一样,循环接缝自然完美无缺,但这种"完美"毫无意义。MALF的计算方式会同时考察"同一相位间隔一个周期后是否吻合"和"相比其他相位是否更吻合",只有真的动了,而且动得精准回到起点,才能拿到高分。
最终的实验结果显示在一张汇总表里。
| 维度 | 指标 | OuroWorld | 次优方法 |
|---|---|---|---|
| 生动程度 | Vividness Degree | **0.0423** | 0.0374 |
| 自然程度 | KVD(越低越好) | **108.23** | 127.47 |
| 循环连贯性 | MALF | **0.0809** | 0.0317 |
| 循环连贯性 | Seam SSIM | 0.9965 | 0.9998 |
| 画面质量 | 美学质量 | **0.6748** | 0.6718 |
表里有个很值得琢磨的现象:LoopGaussian的Seam SSIM反而比OuroWorld还高,达到0.9998。但别被这个数字骗了,LoopGaussian的MALF只有0.0025,几乎等于零,这说明它的场景基本上是静止的,循环接缝"完美"只是因为它压根没怎么动。而OuroWorld在MALF上以0.0809遥遥领先第二名将近3倍的同时,Seam SSIM依然保持在0.9965的高位,这才是真正意义上"动得明显又接得顺"的双重胜利。
除了这套自动化指标,研究团队还做了一场真人用户调研,找来30名参与者,针对39个场景、和4个基线方法做两两对比,让参与者在生动程度、自然度、循环连贯性、画面质量四个维度上投票。结果显示,OuroWorld在所有对比中的胜率全部超过70%,其中对LoopGaussian的胜率达到了82.6%到91.8%之间,对3D-MOM的胜率甚至高达97%到99%。生动程度这一项的胜率差距最大,这也印证了前面提到的,视频生成模型带来的那种多样化想象力,是传统欧拉流方法完全给不出来的东西。
**消融实验揪出每个组件到底在干什么活**
光说"效果好"还不够,研究团队做了一系列消融实验,把每个组件单独拿掉,看看效果会变成什么样,这样才能证明每个设计都确实有存在的必要,不是摆设。
去掉漂移场之后,场景的清晰度指标(Variance of Laplacian,衡量图像锐利程度)明显下降,细节会随着时间推移逐渐模糊消失。论文里专门展示了一组对比图:没有漂移场的版本里,冰岛峡谷场景中的云朵会慢慢模糊并消散,星系场景里的星云会变得模糊不清,地面上的岩石细节会逐渐消失不见。而加入漂移场的完整版本,这些细节在整个循环过程中都能保持清晰稳定。
去掉接地约束之后,前面已经提到过,Vividness Degree会从0.0423掉到最低点0.0392,这是所有消融变体里最低的数值,证实了漂移场一旦被允许在参考视角上插手,就会偷走本该属于场景主体的动态表现力。
去掉场景视角一致性优化(也就是用简单的像素级损失函数代替带扩散模型精细化的损失函数)之后,情况变得更糟。Subject Consistency(主体一致性)跌到了消融实验里的最低值0.9642,而清晰度指标在旋转相机视角下更是暴跌了22%。这说明,如果直接把那些可能存在瑕疵的生成内容硬塞给场景去学习,瑕疵会被原封不动地"烤进"场景里,形成永久性的损伤。
这三组消融实验放在一起看,其实讲的是一个共同的故事:生成式AI产出的素材天生带着噪声和不一致,而真正决定一个系统能不能用的,往往不是生成模型本身有多强,而是你怎么设计一套机制,去筛选、调和、消化这些带着瑕疵的素材。
**局限和留白**
论文最后也很坦诚地承认了两个局限。
第一个局限是,整个系统生成出来的动态效果,天花板完全取决于视频生成模型本身的想象力和准确性。如果视频生成模型本身理解错了场景,生成了不合理的内容,这个错误会一路传递到最终的三维场景里。VLM的过滤机制能挡掉一部分明显不合理的结果,但没法做到百分百兜底。
第二个局限涉及视角覆盖范围。整套流程是从单一的参考视角生成视频,再往外扩展到多视角。这意味着如果你想要的观察范围特别大,离参考视角越远的地方,去遮挡孔洞和各视角之间的不一致问题就会越严重。研究团队提到一个可能的改进方向:从多个不同的参考视角分别生成视频,而不是依赖单一的起点,这样有希望缓解远距离视角下的质量下滑问题,但这还只是论文里提出的一个展望,没有付诸实验验证。
Q&A
Q1:OuroWorld是什么?
A:OuroWorld是一个让静态3D高斯溅射场景变成可无缝循环的动态三维场景的框架,它不需要人工标注运动区域,能通过视觉语言模型和视频生成模型自动判断场景该怎么动,再用一套专门设计的三维表示方法保证动画能完美首尾衔接。
Q2:OuroWorld和之前的3D cinemagraph方法比有什么不同?
A:之前的方法比如LoopGaussian、3D Cinemagraphy都依赖欧拉流,只能模拟水流云雾这类流体运动,还必须人工划定运动遮罩。OuroWorld借助视频生成模型实现了更丰富多样的动态,包括物体运动和光照变化,而且完全不需要人工标注。
Q3:OuroWorld怎么保证动画能无缝循环播放?
A:OuroWorld用傅里叶级数来描述场景中每个点随时间的变化,这种数学结构天生具备周期性,只要设定好周期T,t时刻和t加T时刻的数值必然完全相等,所以循环效果是从数学结构上直接保证的,不依赖训练效果的好坏。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。