[NeurIPS 2025] PhysX-3D: Physical-Grounded 3D Asset Generation

안녕하세요 이번주는 3D 생성 모델에 대한 리뷰를 진행해보려고 합니다. 3D 생성 모델들은 다량의 합성 데이터를 바탕으로 기하와 텍스쳐의 복원 능력이 좋아지면서 최근에 등장한 structured latent 기반의 image to 3D의 복원 능력은 정말 놀라울 정도로 디테일해졌습니다. 제가 실제로 사용할때도 단일 이미지로부터 만들어지는 결과가 놀라웠는데, 그럼에도 불구하고 실세계의 물리적인 특성이 아예 반영되지 않는 모습은 매우 아쉬웠습니다. 이번 논문은 처음으로 해당 한계를 극복하려는 시도를 한 논문입니다. 리뷰 시작해보도록 하겠습니다.

Introduction

최근 3D 모델 생성 연구는 가상의 형상과 시각적 품질에서 물리적 현실감으로 관심이 이동하고 있습니다. 그러나 기존의 많은 3D 생성 모델들은 주로 물체의 형상과 텍스처에 집중한 나머지, 실제 세계 객체의 물리적 특성을 충분히 반영하지 못하고 있습니다. 3D 에셋들은 크기나 재질, articulation과 같은 중요한 물리 속성이 결여되어 있어, 로보틱스 시뮬레이션이나 embodied AI와 같은 실세계 응용 시나리오에서 한계가 발생합니다. 이러한 geometry 중심의 접근 방식은 현실 세계와 시뮬레이션 간의 gap의 주요 요인이 되었으며, 실제 데이터를 시뮬레이션으로 활용하는 real-to-sim 파이프라인에서도 주요 한계중 하나였습니다.

저자들은 이러한 문제를 해결하기 위해 위의 figure 1과 같이 물리 정보를 포함한 3D 에셋 생성의 접근을 처음으로 제시했습니다. 저자들은 PhysX-3D라는 파이프라인을 통해 기존의 3D 객체의 구조와 더불어 다섯 가지 물리적인 속성을 고려하는 end to end 생성 프레임워크를 제안했습니다. 이를 위해 대규모의 물리적인 속성이 annotation된 3D 데이터셋인 PhysXNet, 학습된 물리 지식을 활용하여 이미지를 3D asset으로 변환하는 PhysXGen을 제안했습니다. PhysXNet 데이터셋은 3D 객체에 대한 absolute scale, material, affordance, kinematics, function description 총 5가지 물리적 요소들을 직접 주석을 달아서 제공하며, 이를 통해 각 객체에 대한 중력, 마찰, 접촉 영역, 운동 궤적 등 동역학적 시뮬레이션에 필요한 정보를 추로너할 수 있게 했다고 합니다.

주요 contribution은 다음과 같습니다. 

  • 물리 기반 3D 생성 패러다임 제시: 형상과 질감뿐만 아니라 물리 속성까지 아우르는 end to end 물리 기반 3D asset 생성 방법을 최초로 제안했습니다. 가상의 3D asset을 실제 세계에 부합하도록 생성함으로써, 향후 로보틱스 시뮬레이션이나 embodied AI 분야에서 유용하게 쓸 수 있는 asset 생성을 가능하게 했다고 합니다.
  • Physics annotated 3D 데이터셋 (PhysXNet) : 기존의 기하 정보 중심 3D 데이터셋(ShapeNet, PartNet등등)을 정밀한 물리 주석이 포함된 데이터셋으로 변환하는 human in the loop annotation 파이프라인을 제안하고, 이를 활용해 PhysXNet을 구축하였습니다 . 더 나아가 PhysXNet-XL이라는 확장 버전을 통해, 6백만 개 이상의 대규모 데이터까지 확보하였습니다 .
  • 생성 모델 (PhysXGen) : 물리적 속성과 3D 구조의 상관관계를 latent space에서 동시에 학습하는 dual-branch 구조의 feed-forward 3D 생성 모델 PhysXGen을 제안하였습니다. 물체의 구조적 특징과 물리적 특성을 함께 고려하는 네트워크를 통해 shape-appearance와 physics 사이의 latent 상호 의존성을 학습하고, 그 결과 무게나 움직임 등이 현실에 부합하는 3D 객체를 만들어낼 수 있었다고 합니다. 

Related Works

3D datasets

기존 3D 데이터셋들은 ShapeNet·PartNet처럼 형상과 파트 구조 정보는 풍부하지만, PartNet-Mobility가 제한적인 kinematics만, ABO가 객체 단위의 거친 physical metadata만 제공하는 식으로 per-part 수준의 물리 정보 전반( 논문에서 제안한 데이터셋과 같은 absolute scale, material, affordance, kinematic parameters, function description)을 거의 다루지 못했고, Objaverse·OmniObject3D 같은 초대규모 컬렉션도 결국 geometry/appearance 중심이라 물리적으로 풍부한 3D vision, robotics 모델 개발에 병목으로 작용했습니다. 저자들의 PhysXNet은 PartNet의 파트 계층 구조를 계승하면서 각 파트에 대해 앞서 말한 다섯 가지 물리 속성을 모두 주석한 최초의 물리 중심 3D 데이터셋이라고 생각하면 될 것 같스빈다.

3D generative models

기존 3D 생성 연구는 DreamFusion·NeRF·latent diffusion 기반 모델처럼 geometry·appearance 중심으로 발전해왔지만, 이들은 물리 법칙을 전혀 학습하지 않기 때문에 생성된 3D 객체가 현실에서 실제로 사용 가능한가에 대한 보장이 없었습니다. Physics-guided optimization, articulated object 생성처럼 특정 물리 요소만 다루는 연구도 있었지만 속성 하나씩만 처리하는 단편적 접근이었고, 결국 geometry와 physics가 분리된 fragmented paradigm이 지금까지의 3D생성 모델의 real to sim에서의 한계였습니다. PhysX-3D는 이러한 문제를 해결하기 위해 geometry·appearance와 모든 물리 속성을 하나의 모델에서 공동 생성하며, 물리·구조 간 cross-property consistency를 학습하는 최초의 통합 프레임워크를 제안했습니다.

Methods (PhysXNet Dataset)

PhysXNet이라는 데이터셋은 저자들이 물리적인 상호작용을 위한 3D 객체 생성을 위해 part별로 annotation한 데이터셋인 만큼 각 요소들이 어떤 이유에서 필요한지 정리해보도록 하겠습니다.

Definition of Physical Properties

PhysXNet에서는 객체의 특성을 세 단계로 구분하여 annotation을 설계하였습니다. Identification, Function, Operation으로, 각각 객체의 기본적인 물성 파악, 역할과 용도 이해, 구체적인 사용 방식에 해당합니다. 이러한 구성을 통해 객체나 해당 part의 정체성(이 무엇이며 어떤 크기인지를 식별) -> 그 부분의 기능이나 쓰임(어떤 역할을 하는지 이해) -> 해당 부분의 작동 방식(움직이거나 연결되는 방식이 무엇인지 파악) 순으로 진행했다고 합니다. 이러한 구성으로 아래 다섯개의 물리적인 성질을 annotation 했습니다.

  • Absolute scale: 현실 세계에서 객체의 물리적 크기를 나타내는 값으로, length × width × height 형태로 제공된다고 합니다. 이를 통해 시뮬레이션 환경에서 해당 객체의 스케일을 현실적으로 설정할 수 있다고 합니다. Scale은 객체 전체 수준에서 annotation하고 part 별로는 진행하지 않는다고 합니다.
  • Material: 각 파트가 어떤 material로 만들어졌는지를 나타내며, 나아가 해당 재질의 density나 탄성 계수, 포아송 ration등을 포함한다고 합니다. 예를 들어 위 Fig. 1의 노트북 화면 부분은 Glass 로, 가방의 손잡이는 Leather로 표시되며, 그 밀도와 탄성 계수 등이 주석되어 있습니다 . 이러한 물성치는 물리 시뮬레이션에서 질량 계산이나 충돌 시 반발 계수 등을 추정하는 데 활용될 수 있다고 합니다. 객체의 각 파트 단위로 texture가 annotation돼있다고 합니다.
  • Affordance: 객체의 각 part가 가지는 기능적 용도나 행위 가능성을 나타냅니다. 해당 부품이 사람이나 다른 객체와 어떻게 상호작용할 수 있는지를 annotation 했습니다. 이때 각 파트에 대해 affordance rank를 부여해 그 파트가 객체 전체에서 상호작요에 있어서 얼마나 중요한  역할을 하는지를 표현 했다고 합니다. Affordance 정보 또한 파트별로 제공되며, 위 figure 2에서 “Find the part that holds and supports the plant.” 이라는 질문에 해당하는 part(꽃병 부분)가 지정되는 식으로 표현됩니다 . 이러한 서술은 사람이 이해하기에도 직관적이며, 로봇의 관점에서도 작업에 굉장히 유용한 정보를 제공한다고 합니다.
  • Kinematics: 객체의 part들이 서로 어떻게 연결되어 있고 움직일 수 있는지에 대한 정보입니다. 각 part 간의 계층 구조(어떤 part가 parent이고 어떤 part가 child인지)와 함께, 움직일 수 있는 part의 경우 움직임의 종류와 매개변수를 기록합니다. 움직임은 no movement(단순조립만 된 형태), translational movement (서랍 열기), rotation about an axis(문 경첩 같은 회전 작용), rotation about a point (특정 점을 기준으로 회전하는 경우), rigidly attached (하나의 부품)의 카테고리로 구분됩니다. 각 운동 가능 파트에 대해서는 운동 축 방향 벡터(direction), 운동 범위(range), 그리고 앞서 언급한 parent-child 관계 등을 annotation합니다. 예를 들어 <Fig. 1>의 수도꼭지를 보면, 손잡이 부분이 parent 파트(수도꼭지 몸체)에 대해 축 회전을 하며, 그 축의 방향 ([0,1,0])과 회전 각도 범위([0,180])가 주어져 있습니다.
  • Function description (기능 설명): 마지막으로 각 파트의 용도(의미)를 annotation한 것입니다. Description은 basic description, functional description, kinematic description 세 종류이고, basic description은 이름 (의자 시트, 노트북 화면 등), functional description은 그 파트의 용도 설명 (“지지하는 부분”, “출력을 보여주는 화면”), kinematic description은 움직임과 관련된 설명(문고리의 경우 ”[-180. 180]으로 회전하며 상호작용“)으로 구분됩니다.

Human in the Loop annotation

사실 제안된 물리 annotation은 굉장히 방대하기 때문에 효율적이고 정확하게 달기 위한 방법이 필요했고, 저자들은 이를 위해 human-in-the-loop 파이프라인을 제안했습니다. 수동으로 수만 개 객체의 모든 파트를 주석하는 것은 불가능에 가깝기 때문에, VLM의 힘을 빌리되 사람의 검수와 보정을 거쳤다고 합니다. 전체 파이프라인은 <Fig. 2> 와 같습니다. 크게 예비 데이터 획득, 운동학 파라미터 결정으로 구성되어 있습니다. 이를 좀 더 세분화하면 다음과 같습니다.

  • 대상 파트 시각적 분리: 먼저 주석 대상이 되는 각 파트를 개별적으로 렌더링하여, 해당 파트만 부각된 이미지를 얻습니다 . 원본 CAD 모델에서는 여러 부품이 겹쳐 보이거나 복잡한 배경이 있을 수 있으므로, alpha compositing을 활용해 각 파트의 형태가 잘 드러나도록 했다고 합니다. 이후 VLM에게 전달합니다.
  • VLM labeling: 잘 분리된 파트 이미지들을 입력으로 하여, VLM모델들을 활용해 해당 part의 속성들을 자동 기술합니다. 이를 통해 각 part에 대한 자동 라벨링을 진행합니다.
  • Human check: VLM의 결과를 인간이 검사하고 틀린 부분이 있다면 보정 작업을 거칩니다.
  • 접촉면 및 회전 축 추론: 움직일 수 있는 파트에 대해서는 보다 정량적인 운동학 매개변수를 결정해야 하기 때문에 해당 파트와 붙어있는 이웃 파트 간의 contact region을 계산합니다. 두 파트의 3D 메쉬로부터 point cloud를추출해, 일정 값보다 가까운 점들만 모아 어디를 기준으로 움직이는지 접촉 영역을 추론할 수 있다고 합니다.
  • plane fitting 및 축 후보 생성: 추출된 접촉 영역에 대해 plane fitting 알고리즘을 적용하여, 두 파트 사이의 접촉 면인 평면을 구성하고 해당 평면과 직각 방향으로 움직임의 방향을 정한다고 합니다. 축 회전의 경우는 접촉 영역의 점들을 대상으로 k means clustering을 통해 회전축이 지날 법한 중심점을 찾아낸다고 합니다.
  • 역학 파라미터 : 위에서 얻은 후보 (축 방향, 위치)중 하나를 선택하여 최종적으로 해당 파트의 운동 방향 벡터, 회전 중심 혹은 이동 경로, 가동 범위 각도/거리를 확정한다고합니다.

이러한 과정을 통해 저자들은 아래 figure와 같이 26000개의 3D 객체를 포함하며, 평균 5개의 part를 갖는 데이터를 생성했다고 합니다. PhyXNet 데이터셋 자체가 PartNet 기반이라 객체들은 소형 가구부터 대형 구조물까지 굉장히 넓은 범위로 들어있다고 합니다.

Methods (PhysXGen)

PhysXGen은 이미지 한 장을 입력으로 받아 해당 물체의 3D 모델과 물리 속성을 예측하는 feed-forward 구조의 image-to-3D 모델입니다. 저자들은 Trellis의 pretrained weight에 finetuning을 진행했다고 합니다. (다만 Trellis가 엄청나게 방대한 양의 학습 데이터로 학습했는데 26000개의 데이터로 잘 작동할지가 의문입니다. 워낙 trellis finetuning한 모델들이 욕을 먹었어서)

PhysXGen의 구조는 figure 4와 같이 Physical 3D VAE 프레임워크를 통한 latent 공간 학습 단계, latent 생성 단계로 나뉘어져 있습니다. 기존 3D 구조/형상 정보와 새로운 물리 속성 정보를 각각의 latent로 표현한 다음, 이 둘을 동시에 생성하는 diffusion 기반의 generator를 학습하는 식입니다. 큰 틀에서는 TRELLIS와 같이 structured latent 기반으로 보시면 될 것 같습니다. 그래서 DINOv2의 feature와 voxelize된 구조를 통해 latent로 인코딩하고 디코딩 하는 쪽은 freeze하고 진행합니다.

Physical 3D VAE Encoding and Decoding

 Physical branch는 absolute scale, material, affordance rank, kinematic parameters, function description의 CLIP 임베딩을 한개의 latent로 통합해서 geometry와 무관하게 객체의 물리적 의미, 역할, 움직임 등의 구조를 독립적으로 인코딩합니다. physical적인 부분과 geometry적인 부분을 분리함으로써 모델이 “형상은 유사하지만 물리 속성이 다른 객체”와 “물리는 비슷하지만 형태가 다른 객체” 모두를 구별해 학습할 기반을 갖게 된다고 합니다.

이 때 geometry latent와 physical latent를 완전히 독립적으로 재구성하면 geometry–physics 간 일관성이 깨질 수 있으므로 physical decoding을 gemoetry decoding 부분에 residual로 주입해 디코딩 단계에서 두 정보를 다시 결합한다고 합니다. 내용이 좀 빡세서 결론을 지어보자면 geometry와 physics가 동시에 보존되는 latent 공간을 학습하는 것이 목적입니다.

Physical Latent Generation

학습 이후에는 VAE에서 얻은 geometry와 physical latent를 sampling하는 부분입니다. 이를 위해 저자들은 transformer기반의 conditional flow matching을 설계했다고 합니다. Physics branch와 Geometry branch가 서로 skip connection 형태로 정보를 교환하며 물리적인 속성과 형상의 일관성을 반영하며 생성한다고 합니다.

이 때 학습방법이 conditional flow matching을 latent에 적용한 형태인데, 각 branch에서는 latent가 노이즈에서 원래 분포로 복원되는 흐름을 학습하고, 최종적인 학습 loss 도 두 flow matching loss를 합한 형태라고 합니다. 이렇게 학습한 생성기는 시뮬레이터에 즉시 사용할 수 있는 정도의 물리적, 기하적인 일관성을 갖춘다고 합니다. (자세한 loss나 학습 방법에 대해서는 질문 주시면 더 공부해서 답변드리도록 하겠습니다)

이미지 프롬프트로부터 3D를 생성하는 전체 흐름을 정리해보면 다음과 같습니다. 단일 RGB이미지 (의자 사진)을 입력하면, DINOv2를 통해 그 이미지에서 구조적 특징을 추출하고, 이를 기반으로 latent에서 physics, geometry를 담고있는 정보가 생성됩니다. 이후에 생성된 latent들을 VAE 디코더들이 3D 메시와 texture, 각 파트에 대응되는 물리 속성 (크기, 재질, affordance, kinematics)을 복원합니다.

Experiments

실험은 모두 PhysXNet 데이터셋을 기준으로 이루어졌고, 24K의 객체로 학습하고 각각 Validation과 Test가 1K씩이라고 합니다. Trellis모델을 베이스라인으로 생성된 모델 기반으로 물리적인 요소들을 예측해 직접적으로 저자들이 제안한 방버론과 비교했다고합니다. Absolute scale, Material, Affordance rank, Kinematic parameter, function description과는 각각 cm 단위의 MAE, rank difference, L2 error, CLIP cosine simililarity를 사용했습니다.

우선 Table2를 보면 Trellis와 비교했을때 각각의 물리적인 속성들의 오차를 비롯해 PSNR과 CD 또한 감소해서 물리적인 예측과 더불어 해당 요소들을 제약으로 한 geometry 복원도 더 뛰어남을 보였습니다.

또한 Table3을 통해 geometry 정보가 물리정보 생성에 도움을 주고, 역으로 물리 정보가 geometry 생성에도 서로 긍정적인 영향을 주고, 이러한 dual branch 구조가 설계의 핵심임을 정량적으로 보였습니다. structural하고 physical한 정보의 interdependencies를 활성화 했을 때 제일 성능이 좋은 모습을 볼 수 있습니다.

Figure 5는 각 image prompt에서 얻은 geometry output과 physical properties를 정성적으로 보여주는데, 이 떄 특히 크기도 크기지만 affordance 영역이 part 단위로 매우 잘 나누어진 모습이 인상적이었습니다. 다만 기존의 trellis가 structure를 복원할 때 part 단위가 아닌 것으로 알고있는데, 수백만개로 학습한 pretrained weight를 24000개로만 finetuning해서 이정도의 결과물을 만들 수 있나..? 싶습니다.

Figure 6를 통해 베이스라인 세팅과의 정성적인 비교도 보여주었습니다. 확실히 part 단위로 처리된 구조와 그에 따른 affordance가 잘 나타났습니다.

Conclusion

저자들의 연구가 초기 시도인 만큼 몇 가지 한계가 존재합니다. 저자들이 지적했듯 material별 마찰력과 같은 부분에 대한 추론은 불가능 하다고 하였습니다. 또한 PhysXNet이 현재는 대부분 합성 CAD 기반이고 실제 3D데이터를 많이 보지 못한만큼 Trellis와 마찬가지로 결과물이 깨지거나 완성도가 부족한 경우들도 있었다고 합니다. 저자들은 이에 대해 OmniObject3D 같은 현실 스캔을 PhysXNet에 통합하고 physics 정보를 더 추가해 정교한 물리 시뮬레이션까지 지원하는 방향으로 발전시킬  수 있다고 언급했습니다. 이제 physics에 대한 생성도 image to 3D에서 연구되기 시작한 만큼 robotics 분야에서 image to 3D 구조는 정말 대세로 굳혀진 것 같습니다. 교수님이 최근 공유해주신 SAM 3D 도 놀라웠는데 앞으로 real to sim할때 기대가 됩니다..

Author: 김 영규

1 thought on “[NeurIPS 2025] PhysX-3D: Physical-Grounded 3D Asset Generation

  1. 안녕하세요. 리뷰 잘 읽었습니다. 한가지 질문이 있는데,

    해당 방법론에서 데이터셋을 구축하는데 있어 VLM이 선제적으로 auto labeling을 수행한다고 나와있고 그 뒤에 사람이 검수한다고 이해를 했습니다. 근데 VLM이 물리적인 부분에 대해서 labeling을 잘 수행할 수 있는지 이에 대한 신뢰성이 과연 높은지에 대해 의문이 있어서요.

    우선 리뷰 내용에서 등장하는 데이터셋의 물리적 어노테이션 타입?이 다음 5가지로 하셨습니다: Absolute scale, Material, Affordance, Kinematics, Function description. 여기서 어떤 성분들이 VLM으로 auto labeling이 되고 어떤 부분들은 그외에 추가적인 파트로 계산이 되는지 궁금하네요.

    예를들어, properties에 대한 framework 설명하는 그림에서는 일단 Mesh랑 Material에서부터 시작하는 것 같은데 그럼 Mesh랑 Material 정보는 이미 기존에 제공되어 있으니 Affordance와 Kinematics, Function description만을 VLM으로 auto labeling하면 되는 것일까요?

Leave a Reply

Your email address will not be published. Required fields are marked *