Soft Vertex Edge Stitch
Soft Vertex Edge Stitch is an inter-primitive constitutive model where each (vertex, edge) pair from two separate meshes forms a triangle element. The triangle's shape-keeping energy is based on the Saint-Venant–Kirchhoff (StVK) membrane model, which is polynomial and free of logarithmic singularities.
The first mesh provides a set of vertices, and the second mesh provides a set of edges. For each paired vertex \(\mathbf{x}_0\) and edge \((\mathbf{x}_1, \mathbf{x}_2)\), a triangle is formed with vertices \(\mathbf{x}_0\), \(\mathbf{x}_1\), \(\mathbf{x}_2\).
#29 Soft Vertex Edge Stitch
For a triangle element with vertices at positions \(\mathbf{x}_0\) (from the vertex mesh), \(\mathbf{x}_1\) and \(\mathbf{x}_2\) (from the edge mesh), we define the edge vectors:
The current metric tensor is:
Similarly, for the reference (rest) configuration with positions \(\bar{\mathbf{x}}_0\), \(\bar{\mathbf{x}}_1\), \(\bar{\mathbf{x}}_2\):
The right Cauchy–Green deformation tensor in material coordinates is:
The Green–Lagrange strain tensor is:
Deformation Energy Density
The StVK membrane energy density is:
where:
-
\(\mu\) is the shear modulus
-
\(\lambda\) is the Lamé parameter
This energy is polynomial in the vertex positions (degree 4), with no logarithmic or determinant-based barriers. It remains well-defined even when the triangle degenerates or inverts, making it suitable for stitching configurations where the vertex may initially lie on or near the edge.
Total Energy
The total energy for each element is:
where:
-
\(t\) is the thickness parameter
-
\(A_0 = \frac{1}{2} \|\bar{\mathbf{e}}_{01} \times \bar{\mathbf{e}}_{02}\|\) is the rest area of the triangle
The factor of 2 accounts for the one-sided thickness convention.
Degenerate Handling
When the vertex \(\bar{\mathbf{x}}_0\) is too close to the edge \((\bar{\mathbf{x}}_1, \bar{\mathbf{x}}_2)\) in the rest configuration (distance \(< d\), where \(d\) is min_separate_distance):
-
If the vertex is not collinear with the edge: the rest vertex is moved along the existing vertex-to-edge direction until the distance equals \(d\).
-
If the vertex is collinear with the edge (distance \(\approx 0\)): the rest vertex is offset by \(d\) in an arbitrary direction perpendicular to the edge.
Attributes
On instances:
mu: \(\mu\) in the energy abovelambda: \(\lambda\) in the energy abovethickness: \(t\), the shell thickness parametermin_separate_distance: \(d\), the minimum rest separation distance for degenerate handling