Jianghanxiao/PhysTwin

[ICCV 2025] PhysTwin: Physics-Informed Reconstruction and Simulation of Deformable Objects from Videos

PhysTwin – ビデオから変形可能オブジェクトの物理情報に基づく再構成とシミュレーション

概要

  • 柔らかい、または変形可能なオブジェクト(布、ロープ、ぬいぐるみなど)のRGB-Dビデオを取得し、シミュレーションやインタラクションが可能な物理ベースのモデル、すなわち digital twin(デジタルツイン)を構築するオープンソースの研究フレームワークです。
  • このツインは、視覚的な手がかりと微分可能なスプリング・マス・シミュレータを組み合わせることで学習されます。そのため、復元されたモデルは物理的な制約(力、材料の剛性、衝突)を遵守します。
  • 一度構築されると、ツインはインタラクティブなプレイグラウンドで探索したり、可視化したり、あるいはロボットのプランニング、RL、またはXR/VRシミュレーションなどのダウンストリーム・タスクに使用したりできます。

主な機能

機能 内容
Reconstruction 生のRGB-D録画を、物理情報に基づく変形可能オブジェクト・モデル(「PhysTwin」)に変換します。
Interactive simulation GradioベースのWeb UIまたはローカルウィンドウを介して、リアルタイムでツインを操作できます(キーボードまたはリモートコントロール)。
Analysis tools 推論された力、材料パラメータ、およびマルチオブジェクトの衝突を可視化します。
Optimization pipelines 2段階のトレーニング:高速なゼロ次(CMA-ES)ステージに続き、Nvidia Warpを使用した1次勾配ベースのステージにより、迅速な収束を実現します(単純なケースではRTX 4090で約5分)。
Extensibility Model-Predictive Path Integral (MPPI) プランニング、バッチシミュレーション (Boba)、およびロボット・物理統合 (Real2Sim-Eval) のサンプルコードを提供します。

インストール

  • このリポジトリは、Linux、Windows、Docker、およびRTX 5090に特化した環境をサポートしています。一般的なLinuxでの手順は以下の通りです:
    conda create -n phystwin python=3.10
    conda activate phystwin
    bash ./env_install/env_install.sh          # core depsをインストールします
    bash ./env_install/download_pretrained_models.sh
    
  • オプションのコンポーネント(Trellis, Grounding-SAM-2, RealSense, SDXL)は、インタラクティブなプレイグラウンドのみが必要な場合はスキップできます。
  • Dockerユーザーは ./docker_scripts/build.sh でビルドし、コンテナ内でプレイグラウンドを実行できます。

データと学習済みアセット

  • 前処理済みのデータセットとモデルのチェックポイントはHugging Faceにホストされています。zipファイル(data.zip, experiments_optimization.zip, experiments.zip, gaussian_output.zip, オプションの additional_data.zip)をダウンロードし、リポジトリのルートに展開してください。
  • データには、マルチビューRGB-D録画、キャリブレーションファイル、およびいくつかのデモ用オブジェクト(ロープ、布、"sloth" ぬいぐるみなど)の準備された最適化結果が含まれています。

典型的なワークフロー

  1. 生のビデオを処理する(独自の録画がある場合):
    python script_process_data.py
    python export_gaussian_data.py   # 最初のフレームの外観を準備します
    
  2. ツインを最適化 / 学習する
    # ゼロ次 (高速、粗い)   
    python script_optimize.py
    # 1次 (精緻化)        
    python script_train.py
    
  3. 推論 / レンダリングを実行する
    python script_inference.py
    bash gs_run.sh                 # Gaussian-splatting レンダリング
    
  4. インタラクティブに探索する
    python interactive_playground.py --case_name double_lift_cloth_3 --n_ctrl_parts 2
    
    • --inv_ctrl を追加すると、制御方向を反転させます。
    • ヘッドレス・サーバーでのWebアクセスには gradio_playground ブランチを使用してください。
  5. 分析する(力、材料、マルチオブジェクトの衝突)ために、提供された可視化スクリプトを使用します。例:
    python visualize_force.py --case_name single_push_rope_1
    python visualize_material.py --case_name double_lift_cloth_1
    

デモのハイライト

  • Boba(バッチシミュレータ)は、RTX 4090上で >3,300 FPSで動作し、RLポリシーのトレーニングを数分で行うことができます。
  • Deform360 データセットは、41台のカメラとタクタイル・グリッパーを用いて、198個の日常的なオブジェクトを1,980個のインタラクション・シーケンスとしてキャらプチャしています。
  • リアルタイム・インタラクティブ・プレイグラウンドは、"sloth" のケースにおいて、RTX 4090上で約37 FPSで動作します。

誰が使うべきか

  • ロボティクスやVR/ARのためのソフトボディ・ワールドモデルを構築している研究者。
  • 変形可能アイテムの実際のビデオ映像を、シミュレーション可能なアセットに変換するためのパイプラインを必要とする開発者。 | - 開発者。
  • 物理学を考慮したビデオ理解、微分可能シミュレーション、またはデータ駆動型のソフトボディ・コントロールに興味がある人。

Citation 研究で PhysTwin を使用する場合、付属の ICCV 2025 の論文 (arXiv 2503.17973) を引用してください。README には、PhysTwin を基にしたダウンストリーム・ワークについても記載されています。


上記の詳細はすべてリポジトリの README から直接引用されており、外部の仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト