I am trying to use small deformable bodies, but I am not able make them stiff enough.
Or rather, I am simply not able to configure the deformable body properly. I tried out a lot of different parameter values but none worked. The deformable body just behaves in a very weird way for the values I used.
The goal is to have a deformable body which is so stiff, that it does not get squished under an attached rigid body if there is only gravity. The deformable body should only be deformed when additional force is applied.
How can I achieve this?
Here is a simple usd scene and two videos showcasing some of the issues I had (one with and one without attachment between rigid and deformable body).
Softbody_files.zip (1.4 MB)
Hi @Duce123 ,
Yes, small deformables are not well supported with our FEM solver, particularly because gravity is massive relative to the size of the objects. It get’s even worse if you try to simulate interactions between high density rigid body and low density deformable. In your example your rigid body weighs 20 grams, and your deformable weighs ~ 0.002 * 0.025^2*0.00425 * 10^3 grams, which leaves us with a huge mass difference. We are working on solver improvements, but this will remain pretty challenging.
I tried the following to improve the situation:
- create physics scene, and set simulation rate to 480, you can also try to increate position iteration counts
- increase attachment overlap offset to 0.0005 (there was actually nothing attached)
- increate filtering offset to 0.01 to filter all deformable vertices against rigid body from collisions. you shouldn’t need them
- apply mass component to deformable body and set to 0.02, same as rigid body.
You can also experiment with lowering the simulation resolution of your deformable, and lowering gravity.
thanks a lot for your input. Sadly the stuff you mentioned do not work well for me. Especially the performance is suffering a lot and reaching a satisfactory stiffness seems impossible.
Is it possible to set the TolerancesScale mentioned in the PhysX docs here https://nvidia-omniverse.github.io/PhysX/physx/5.3.0/docs/API.html#using-different-units in Isaac Sim?
Maybe adjusting this value helps.
As a side note/ additional question:
I thought that this parameter was perhaps connected to the “metersPerUnit” value in Isaac Sim or rather that adjusting this value would help. So I set it to 0.01 and adjusted my usd assets accordingly (with the USD Unit converter of Isaac sim). Weight for soft body and rigid body was 0.02. I hoped that it would be the same as scaling up the soft body by 100 (which improves the behaviour by a lot), but sadly its not really improving anything.
Do you know why?
Once again, thanks
Hi @Duce123 ,
Tolerance scale won’t help you unfortunately. It’s just used for epsilon values in the PhysX SDK which won’t do anything useful for you.
Changing the units also doesn’t help, because that means you scale gravity with it. Increasing the size of the soft body helps, because that means gravity in comparison to the scale of the object is smaller.
Did you try to play with the deformable body simulation mesh resolution?
Ah I see and yes, I already played around with the mesh resolution.