Default flex internal contacts to "false".

This function is unusual in the context of soft body simulations and has been a common gotcha for users, see e.g. #2500, #2079, #1900, and #1433. It should be used only if element inversion cannot be prevented otherwise.

PiperOrigin-RevId: 736822983
Change-Id: I76b0965c91c94dd88123826d218d7544ec37a88c
This commit is contained in:
Alessio Quaglino
2025-03-14 04:54:12 -07:00
committed by Copybara-Service
parent 40891eeadc
commit f25fc63f0f
4 changed files with 15 additions and 4 deletions
+4 -2
View File
@@ -4041,7 +4041,7 @@ extensions specific to flexes.
.. _flex-contact-internal:
:at:`internal`: :at-val:`[true, false], "true"`
:at:`internal`: :at-val:`[true, false], "false"`
Enables or disables internal collisions which prevent flex self-penetration and element inversion. Note that flex
elements that have shared vertices cannot collide (or else there will be permanent contacts). In 1D and 2D, internal
collision checks rely on predefined vertex-element pairs, where the vertex is treated as a sphere with the same
@@ -4049,7 +4049,9 @@ extensions specific to flexes.
flex. The pre-defined vertex-element pairs are generated by the model compiler automatically. In 3D, internal
collision checks are performed within each tetraheron: each vertex is collided with the plane corresponding to the
opposing triangle face (again using the flex radius). The resulting contacts are always created with condim 1, gap 0,
margin 0.
margin 0. Note that internal contacts modify the behavior implied by the :ref:`elasticity
parameters<flex-elasticity>` and is recommended only for flexes where element inversion cannot be prevented. The
default value of this attribute was changed from "true" to "false" in version 3.3.1.
.. _flex-contact-selfcollide: