Table des matières
IPC Toolkit est une bibliothèque C++ de calculs de contact. Elle fournit la détection de collisions, les dérivées de distance et les potentiels de friction. L’application gère la boucle temporelle et le solveur.
1. Sa place dans la simulation
La simulation transmet la géométrie de collision et le mouvement des sommets à la bibliothèque. Le schéma suit cette requête : sélection des candidats en phase large, détection continue de collisions (CCD) en phase étroite, puis retour du résultat à l’application.

La simulation lance la requête et reçoit le résultat. Elle conserve la gestion du temps et de la résolution.
2. Les calculs disponibles
Les routines couvrent plusieurs aspects du traitement des contacts :
| Domaine | Calculs disponibles |
|---|---|
| Détection de collisions | Détection continue de collisions en phases large et étroite. |
| Distance | Dérivées de distance pour les arêtes et les triangles. |
| Barrières de contact | Fonctions barrière et dérivées, potentiels de barrière de distance et raideur adaptative. |
| Friction | Potentiels de friction dissipative lisse ou retardée. |
IPC Toolkit n’est pas un moteur physique complet. Le projet amont cite PolyFEM et Rigid IPC comme implémentations complètes qui utilisent la bibliothèque.
3. Mes contributions
Le fork antoinebou12/ipc-toolkit[1] sert à préparer les changements avant de les proposer en amont. Les demandes de fusion ci-dessous sont le registre public (GitHub, relevé du 2026-11-05) ; le statut est celui que GitHub indique.
| Demande de fusion | Ouverte | Statut |
|---|---|---|
| ipc-sim/ipc-toolkit #210 — Friction anisotrope[2] | 2026-02 | Fusionnée le 2026-04-16 |
| ipc-sim/ipc-toolkit #208 — Paramètres transmis à la phase fine de Scalable CCD[3] | 2026-01 | Fusionnée le 2026-01-26 |
| ipc-sim/ipc-toolkit #144 — Brouillon de documentation sur l’adhésion[4] | 2024-11 | Fusionnée le 2024-12-11 |
| ipc-sim/ipc-toolkit #139 — Coefficients statique et cinétique dans la force tangentielle de collision[5] | 2024-11 | Fermée sans fusion |
| ipc-sim/ipc-toolkit #128 — Friction statique et cinétique par paire de matériaux[6] | 2024-11 | Fermée sans fusion |
Continuous-Collision-Detection/Scalable-CCD #5 — Retrait de -fpic pour la compilation CUDA Windows (vcpkg)[7] | 2024-09 | Fusionnée le 2024-09-27 |
| Continuous-Collision-Detection/Scalable-CCD #6 — Tests sur plusieurs versions de CUDA[8] | 2024-09 | Fermée sans fusion |
Deux demandes de préparation restent ouvertes sur le fork : #3 — extraire la tolérance et le nombre maximal d’itérations de TightInclusionCCD pour la CCD GPU[9] et #4 — friction anisotrope[10], la branche derrière la #210 en amont.
Le fil conducteur : une friction qui dépend de la direction et de la paire de matériaux, ce dont mon travail de mémoire sur l’usure de surface avait besoin dans le modèle de contact, plus le chemin de détection continue de collision sur GPU (Scalable CCD) que la compilation Windows et la transmission des paramètres ont débloqué.
4. Consulter le code et compiler
La documentation du projet présente la structure du dépôt. Le README amont[11] contient les instructions de compilation. Le fork contributeur[1] permet de consulter les changements de ce fork.