NVIDIA / warp

A Python framework for high performance GPU simulation and graphics
https://nvidia.github.io/warp/
Other
4.19k stars 237 forks source link

[BUG] Hard-coded collision value will cause small deformable bodies to be unstable/inaccurate. #329

Open mmichelis opened 4 days ago

mmichelis commented 4 days ago

Bug Description

In warp/sim/integrator_euler.py line 306 there are hard-coded collision checks between triangles that are less than 0.01 apart. When loading a soft deformable mesh that is on millimeter scale, these collision checks will come into play and cause artificial damping in best case, and divergence in worst case scenarios. The symplectic integrator will no longer be energy-conserving when this self-collision check is done between each particle in the soft mesh.

System Information

No response

AnkaChan commented 4 days ago

Hi @mmichelis, thank you for bringing this up. I will look into it. We can make this value an adjustable parameter, such as soft_contact_radius within Model.

mmichelis commented 3 days ago

Excellent, thanks!

shi-eric commented 3 days ago

Let's leave the issue open until the fix is in so we can keep an eye on it.