Paper Reproduction: Guaranteed Globally Injective 3D Deformation Processing
Background
This is my first attempt at reproducing a paper. I planned to first compile and run the provided program, and then try to understand the paper as much as possible.
Paper reproduction: I try to run the provided program on my own computer and reproduce the results shown in the paper.
Compiling and running the program: I clone the provided code, solve possible compilation problems, run the provided test cases, and observe whether the behavior matches the paper.
Understanding the paper: I first try to read the whole paper, then grasp its main idea and fill in missing prerequisite knowledge.
This paper should belong to the geometry and simulation direction of computer graphics.
Paper homepage: Guaranteed Globally Injective 3D Deformation Processing
Paper code: ipc-sim/IDP

Environment Setup
This paper needs to run under Linux or macOS.
I first tried an Ubuntu virtual machine in VirtualBox, but it was very laggy.
So I decided to install a physical Ubuntu system directly on my old ThinkPad.
First attempt: Ubuntu 22.04. It was too new, and many components could not be installed, so I prepared to switch back to Ubuntu 20.04.
Ubuntu 20.04 image download: Ubuntu 20.04.4 LTS (Focal Fossa)
Bootable USB creation software: rufus
Mouse and keyboard synchronization: considering synergy
Install a Shadowsocks client and GUI.
Installing v2ray
Successfully configuring Qv2ray on Ubuntu 20.04
Compilation and Running
After installing Ubuntu 20.04, I only needed to configure the libraries required by the paper. I installed the missing libraries and programs according to system prompts. Then I compiled according to the README in the paper’s code repository. The compilation took about half an hour.

Running the provided Python script took a little over an hour, and all test cases on the main branch finished.


Paper Analysis
This is a TOG paper in computer graphics. It introduces IPC, a finite-element collision-simulation framework for graphics, and uses that framework to implement the IPD modeling tool.
It can perform collision deformation on models, avoid mesh penetration, avoid locking to obtain more accurate and stable deformation, and achieve better performance.
Because I lacked much of the prerequisite knowledge, I basically could not understand the formulas. After guidance from Teacher Li, I learned that understanding those formulas requires knowledge of physically based modeling, digital geometry processing, computational methods, and optimization.