IJCV 2026|北大团队提出DragMesh:一次拖拽,实现可交互的3 D关节运动生成
本文作者来自北京大学计算机学院。张天山、张泽宇为共同第一作者,唐浩为通讯作者。
近年来,3D 生成模型在几何质量和渲染效果上进步很快。从 Mesh 到 NeRF、3D Gaussian Splatting,生成一个外观完整的三维物体已经不再困难。现有不少 articulated 3D generation 工作,更多关注的是从输入中生成一整套可动 3D 资产,包括物体几何、部件划分以及关节结构。这类方法适合从零创建新的 articulated object,但很多时候,用户手里已经有一个现成的柜子、微波炉或者抽屉模型,真正需要改变的只是其中某个可动部件。
比如拖动柜门,系统只需要让门围绕正确的铰链旋转;拖动抽屉,也只需要让抽屉沿滑轨方向平移。如果每次交互都重新生成完整物体,大量计算其实会花在不会发生变化的静态部分上。对于这类局部交互任务,更直接的做法是保留已有 3D 资产,只对目标可动部件进行运动学推理和运动生成。这也是 DragMesh 的出发点。
近日,北京大学团队提出的 DragMesh: Interactive 3D Generation Made Easy 被 International Journal of Computer Vision(IJCV)接收。该工作面向已有 3D 资产上的局部交互,通过一次 drag 恢复目标部件的运动学参数,并进一步生成完整、连续的关节运动轨迹,而不需要针对每个新物体重新训练一套 motion model。
DragMesh 将运动学预测、运动生成和外观渲染分开处理:先判断目标部件属于什么关节、运动轴和关节位置在哪里,再生成对应的 motion trajectory,最后将同一套运动迁移到 Mesh 或 3D Gaussian Splatting 表示中。论文主要聚焦 single-joint rigid articulated objects,并在 GAPartNet 的 clean mesh setting 下进行验证。
论文标题:DragMesh: Interactive 3D Generation Made Easy
论文地址:https://arxiv.org/abs/2512.06424
项目主页:https://aigeeksgroup.github.io/DragMesh/
代码地址:https://github.com/AIGeeksGroup/DragMesh
研究背景
带着前面的问题来看已有研究,完整 articulated object generation 和已有 3D 资产上的交互,其实对应着两种不同的需求。前者需要从零得到一个完整的可动资产,几何、部件甚至关节结构都需要一起生成。但在交互阶段,物体本身往往已经存在,真正缺少的是运动。系统需要知道被选中的部件属于哪一种关节、运动轴在哪里,以及当前这次 drag 最终应该对应怎样的运动。一旦把问题放到已有资产的交互场景里,主要会遇到两个挑战。
挑战一:一次 drag 并没有直接告诉系统目标部件应该怎么动。
用户拖动一个部件时,系统能够看到拖拽的位置和方向,但这些信息本身并不等于物体的运动学结构。以柜门为例,它通常对应 revolute joint,需要围绕固定轴旋转;抽屉则通常对应 prismatic joint,只能沿特定方向平移。系统还需要进一步判断 joint type、axis 和 origin。
如果这些参数判断错误,即使后面的动画看起来连续,运动本身也可能并不符合物体结构。对于完整资产生成来说,这些信息可以和 geometry 一起生成;但对于已有资产上的交互,重新生成整个物体没有必要,系统需要直接从现有几何和用户输入中恢复目标部件的运动学参数。
挑战二:局部运动既要满足运动学约束,也需要足够轻量。
如果每遇到一个新物体,都重新优化或者训练一套 motion model,交互本身就很难做到实时。另一方面,如果完全依赖自由的生成模型,又很容易产生不符合 joint constraint 的运动。系统因此需要一套可以在不同物体之间复用的 motion prior,根据一次 drag 直接生成完整轨迹,同时保持旋转轴、平移方向等运动学约束。
此外,适合处理运动学的表示和适合高质量渲染的表示也不完全相同。Mesh 有明确的顶点、拓扑和部件结构,适合做刚体运动和关节变换;3DGS 更擅长高质量实时渲染,但本身并不天然包含关节关系。怎样让两种表示共享同一套运动,也是 DragMesh 需要解决的问题。
针对这些问题,DragMesh 将整个系统拆成三个部分:关节参数预测、运动轨迹生成,以及从 Mesh 到 3DGS 的运动迁移。