License: arXiv.org perpetual non-exclusive license
arXiv:2401.15169v1 [cs.GR] 26 Jan 2024
Refer to caption
Figure 1. Starting from real fabrics, we construct the matching yarn structures and derive the yarn model parameters. Subsequently, we sample a range of in-plane and out-of-plane deformations, run periodic yarn-level simulations on each deformed surface and record the yarn responses, which we use for optimizing the membrane and bending elasticity parameters of a shell model. We validate our shell parameters by comparing against full yarn-level simulations as well as real fabric captures and measurements. Finally, we simulate full-body garments and compare to reference footage.

Estimating Cloth Elasticity Parameters From Homogenized Yarn-Level Models

Joy Xiaoji Zhang Cornell University, Meta Reality LabsUSA Gene Wei-Chin Lin Meta Reality LabsCanada Lukas Bode Meta Reality LabsSwitzerland Hsiao-yu Chen Meta Reality LabsUSA Tuur Stuyck Meta Reality LabsUSA  and  Egor Larionov Meta Reality LabsUSA
Abstract.

Virtual garment simulation has become increasingly important with applications in garment design and virtual try-on. However, reproducing garments faithfully remains a cumbersome process. We propose an end-to-end method for estimating parameters of shell material models corresponding to real fabrics with minimal priors. Our method determines yarn model properties from information directly obtained from real fabrics, unlike methods that require expensive specialized capture systems. We use an extended homogenization method to match yarn-level and shell-level hyperelastic energies with respect to a range of surface deformations represented by the first and second fundamental forms, including bending along the diagonal to warp and weft directions. We optimize the parameters of a shell deformation model involving uncoupled bending and membrane energies. This allows the simulated model to exhibit nonlinearity and anisotropy seen in real cloth. Finally, we validate our results with quantitative and visual comparisons against real world fabrics through stretch tests and drape experiments. Our homogenized shell models not only capture the characteristics of underlying yarn patterns, but also exhibit distinct behaviors for different yarn materials.

1. Introduction

The physical realism of simulated cloth plays a critical role in digital garment design. Cloth simulation, once primarily used in video games and animations, has now become a crucial aspect of this creative process. Increasingly, faithful reproduction of clothing behaviors has become a focus point in garment design software (CLO3D, 2024; Browzwear, 2024; Style3D, 2024) where the designed textiles are simulated to determine the fit on a virtual body. The simulator needs to accurately predict the behaviors of different types of fabrics composed of numerous knitted or woven yarn structures consisting of various materials. While (Wu et al., 2020) demonstrate simulation-assisted design of complex 3D patterns such as a woven shoe, modeling and simulating faithful full body garments that account for the underlying fabric compositions remains challenging.

Textile design software commonly model fabrics as linear or hyperelastic materials (CLO3D, 2024). While it is possible for shell simulations to be computed in real-time on the GPU, they generally require tedious manual processes and expert knowledge in tuning the parameters to reproduce satisfactory dynamics of a desired material type. In addition, the limited degrees of freedom in shell models makes it exceedingly hard for shell simulations to exhibit the rich behaviors that we observe in real fabrics such as edge curling in stockinette patterns and anisotropic bending in weave patterns.

Several approaches have been explored to produce more faithful cloth behaviors. One solution is to model cloth as a collection of interacting yarns (Kaldor et al., 2008; Leaf et al., 2018). This approach is quite accurate in reproducing the complex cloth behaviors but at an excessively high computational cost. Another line of research focuses on improving the shell model and gaining better automatic estimations for the model parameters. A handful of works (Larionov et al., 2022; Miguel et al., 2012; Clyde et al., 2017; Wang et al., 2011; Feng et al., 2022) estimate the cloth elasticity parameters from a range of data gathered from real fabrics including physical experiments of mechanical properties and high resolution images. Although these methods are capable of producing high-quality results, they require potentially expensive specialized equipment. On the other hand, Sperl et al. (2020) learns shell material models from yarn-level deformation responses using numerical homogenization, which is closely related to our work.

We present a method for estimating the shell-level cloth material parameters required to simulate real fabrics given only basic information about the fabric. Using physics-based simulations, we provide parameter estimations that reflect the behaviors of various fabric compositions. Given a real fabric, we derive the yarn model parameters from simple measurements as well as freely available experimental data from textile research, and use numerical homogenization (Sperl et al., 2020) for collecting yarn-level responses to a range of shell deformations including anisotropic bending, while accounting for the nonlinearity in yarn stretching. Our periodic yarn relaxation result (see Fig. 3) can further drive an efficient surface-based cloth appearance model (Zhu et al., 2023), which drastically enhances rendered results.

In contrast to previous work that learns a different material model for every yarn pattern (Sperl et al., 2020), we optimize the thin shell model parameters directly and demonstrate that the parameters are not only determined by the yarn patterns, but also the physical properties such as material type and yarn thickness. Furthermore, we estimate the off-diagonal terms in the bending matrix to capture anisotropic bending effects, thus constructing the entire stiffness matrix through homogenization and eliminating the laborious process of tuning parameters by hand. Finally, we validate our homogenized shell parameters against machine measurements of real fabric swatches, and discover that the simulated fabrics are not only capable of visually establishing the representative behaviors of each material, but also match the real fabrics quantitatively despite the absence of an inverse process in our pipeline.

Our approach generalizes to shell models that are based on the first two fundamental forms (i.e. stretching and bending strains). In addition, we estimate bending parameters along all three out-of-plane directions, providing reliable initial estimates for more complex parameter estimation methods, which can improve over our estimates using specialized machines.

To summarize, we offer the following technical contributions, which allow us to model shell-level cloth starting from only a basic fabric description:

  • An end-to-end method to estimate shell simulation parameters corresponding to real fabrics that is compatible with any shell material model based on the first and second fundamental forms.

  • A novel yarn parameter estimation method from simple measurements of real fabrics, with a nonlinear stretching model incorporating experimental results of textile research.

  • An approach for homogenizing anisotropic bending including the warp-weft coupling term.

2. Related Work

Shell-Level Cloth Simulation. Starting with the pioneering work of Baraff and Witkin (1998), thin shell cloth simulations have seen widespread success over the last decades with applications in animation and special effects (Stuyck, 2022). Since then, many improvements have been made relating to robustness, accuracy and efficiency. Müller et al. (2007) proposed a Position Based Method (PBD) designed for efficiency where constraints are solved in parallel by updating positions directly. To overcome the limitations of PBD, eXtended Position Based Dynamics (XPBD) (Macklin et al., 2016) was proposed to eliminate iteration count dependency of simulation results. Bouaziz et al. (2014) employed an implicit integrator which bridges the gap between continuum mechanics and PBD. In contrast to prior linear element methods, Ni et al. (2023) simulated thin shells using the bicubic Hermite element method.

Yarn-Level Cloth Simulation. Shell-level cloth has seen many advances in recent years which significantly improve realism, yet it remains difficult to reproduce all intricate behaviors of fabrics. To improve on these models, Kaldor et al. (2008) proposed original work to model knits at the yarn-level. Generating yarn-level geometries can be cumbersome. To alleviate this, Yuksel et al. (2012) created full garment yarn-level geometries based on simple triangle models. Albeit more computationally expensive, they were capable of reproducing unique effects such as edge curling under tension. Cirio et al. (2014) extended this work with a focus on computational efficiency by modeling interlaced yarns based on yarn crossings and yarn sliding, with implicit contacts and persistent contacts in follow-up work (Cirio et al., 2015, 2016). A different way to improve efficiency is to model the yarns periodically (Leaf et al., 2018), enabling interactive pattern design. In order to obtain yarn-level like behavior at moderate computational cost, Casafranca et al. (2020) combined both shell-level and yarn-based simulation models in a single framework.

Numerous yarn representations have been proposed. Remion et al. (1999) developed equations for modeling knitted patterns with spline curves, and uses springs between control points for length preservation. Jiang and Chen (2005) modeled the relaxed configuration of woven patterns using spline curves. There has also been a series of work on modeling and simulating thin elastic rods based on Kirchhoff rods (Bergou et al., 2008; Bertails et al., 2006; Spillmann and Teschner, 2007) that uses discrete poly-line representations. Our yarn-level simulation employs the Cosserat rod model (Spillmann and Teschner, 2007) and the periodic boundary conditions (Leaf et al., 2018).

Multiscale Modeling and Homogenization of Cloth. In computer graphics, representing cloth using a mixture of scales has been extensively studied to leverage the efficiency of simulating shell models while preserving the detailed effects produced by yarn models. Martin et al. (2010) defined a unified, high-order integration for elastic responses shared among elastic rods, shells and solids. Casafranca et al. (2020) proposed a kinematic transition between triangle and yarn representations. Fei et al. (2018) produced anisotropic effect in cloth-fluid coupling by modeling the fiber-level porous structures. Our work is most closely related to Schumacher et al. (2018) and Sperl et al. (2020) that derived shell models using elastic responses of underlying thin structures subjecting to shell deformations. Sperl et al. (2022) presented a technique for modeling the yarn-level mechanics of cloth, based on real fabric responses to mechanical forces. Sperl et al. (2021) animated yarn-level cloth geometry on top of a deformed mesh while accounting for the underlying mechanics.

Material Parameter Estimation. Several works focus on estimating material models and parameters to model clothing based on captured data. Early work optimized material parameters from videos of captured cloth (Bhat et al., 2003). Follow up work captured cloth deformations under known loads to estimate the material models (Miguel et al., 2012; Clyde et al., 2017; Wang et al., 2011). Larionov et al. (2022) proposed the use of an FFT-based loss to robustly handle bifurcations in cloth buckling. Differentiable simulation has successfully been applied to material estimation from synthetic (Stuyck, 2022) and real data (Li et al., 2023). Wang et al. (2020) learned a material model directly instead of fitting parameters to existing material models.

3. Background

We briefly review a few key concepts on which our parameter estimation pipeline is based. We introduce the Cosserat rod model for representing yarns, the orthotropic StVK material for modeling thin shells, as well as numerical homogenization detailed by Sperl et al. (2020). We expand on XPBD, a constraint-based simulation framework, that we employ for both the yarn-level and shell-level simulations.

Although we use constraint based dynamics, our approach is compatible with any solver that finds the static equilibrium of yarns. Our technical contribution lies in deriving strain-dependent yarn model parameters from freely available measurements of real yarns and fitting shear bending terms to homogenized yarn-level cloth, which was omitted in previous work.

3.1. Compliant Constraint Formulations of Models

For both yarn and shell simulations, we follow Macklin et al. (2016) and minimize an energy potential of the form

(1) U(𝒙)=12𝑪(𝒙)𝜶1𝑪(𝒙)𝑈𝒙12𝑪superscript𝒙topsuperscript𝜶1𝑪𝒙U(\bm{x})=\frac{1}{2}\bm{C}(\bm{x})^{\top}\bm{\alpha}^{-1}\bm{C}(\bm{x})italic_U ( bold_italic_x ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_C ( bold_italic_x ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_α start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_italic_C ( bold_italic_x )

where 𝜶𝜶\bm{\alpha}bold_italic_α is a compliant matrix that represents the inverse stiffness and 𝑪𝑪\bm{C}bold_italic_C are bilateral constraint functions describing the kinematics of the dynamic system (Bender et al., 2015). We describe shell-level constraints with 𝑪¯¯𝑪\overline{\bm{C}}over¯ start_ARG bold_italic_C end_ARG to distinguish from yarn-level constraints 𝑪𝑪\bm{C}bold_italic_C.

3.2. Modeling Yarns With Cosserat Rods

A Cosserat rod is described by a centerline curve and a set of local orthonormal frames (𝒅1,𝒅2,𝒅3)subscript𝒅1subscript𝒅2subscript𝒅3(\bm{d}_{1},\bm{d}_{2},\bm{d}_{3})( bold_italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) attached to each point on the curve, such that 𝒅3subscript𝒅3\bm{d}_{3}bold_italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT aligns with the centerline direction and (𝒅1,𝒅2)subscript𝒅1subscript𝒅2(\bm{d}_{1},\bm{d}_{2})( bold_italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) span the cross-sectional direction of the rod.

We represent the yarn centerline as a set of points {𝒑0,,𝒑N}subscript𝒑0subscript𝒑𝑁\{\bm{p}_{0},\dots,\bm{p}_{N}\}{ bold_italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , … , bold_italic_p start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT } and edges {𝒆0,,𝒆N1}subscript𝒆0subscript𝒆𝑁1\{\bm{e}_{0},\dots,\bm{e}_{N-1}\}{ bold_italic_e start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , … , bold_italic_e start_POSTSUBSCRIPT italic_N - 1 end_POSTSUBSCRIPT } where 𝒆i=𝒑i+1𝒑isubscript𝒆𝑖subscript𝒑𝑖1subscript𝒑𝑖\bm{e}_{i}=\bm{p}_{i+1}-\bm{p}_{i}bold_italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT - bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Each edge has an associating local frame written as a quaternion 𝒒𝒒\bm{q}bold_italic_q that consists of a real part q0=(𝒒)subscript𝑞0𝒒q_{0}=\Re(\bm{q})italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = roman_ℜ ( bold_italic_q ) and an imaginary part 𝒒im=(𝒒)subscript𝒒𝑖𝑚𝒒\bm{q}_{im}=\Im(\bm{q})bold_italic_q start_POSTSUBSCRIPT italic_i italic_m end_POSTSUBSCRIPT = roman_ℑ ( bold_italic_q ), representing the angle of rotation θ=cos1(q0)𝜃superscript1subscript𝑞0\theta=\cos^{-1}(q_{0})italic_θ = roman_cos start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) around an axis (𝒒)sinθ𝒒𝜃\frac{\Im(\bm{q})}{\sin\theta}divide start_ARG roman_ℑ ( bold_italic_q ) end_ARG start_ARG roman_sin italic_θ end_ARG. In our yarn model, 0,1subscript0subscript1\Im_{0},\Im_{1}roman_ℑ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , roman_ℑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT represent bending and 2subscript2\Im_{2}roman_ℑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT corresponds to twisting. Contrary to the Discrete Elastic Rod formulation (Bergou et al., 2008) where the bending and twisting are calculated from (ϕ,θ)italic-ϕ𝜃(\phi,\theta)( italic_ϕ , italic_θ ) corresponding to the turning angle between adjacent edges and the rotation angle of local frames, the quaternion is a unified representation of both the bending and twisting, i.e. 𝒒T=[q0,𝒒imT]Tsuperscript𝒒𝑇superscriptsubscript𝑞0superscriptsubscript𝒒𝑖𝑚𝑇𝑇\bm{q}^{T}=[q_{0},\bm{q}_{im}^{T}]^{T}bold_italic_q start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT = [ italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_italic_q start_POSTSUBSCRIPT italic_i italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT such that 𝑹(𝒒)=[𝒅1,𝒅2,𝒅3]𝑹𝒒subscript𝒅1subscript𝒅2subscript𝒅3\bm{R}\left(\bm{q}\right)=[\bm{d}_{1},\bm{d}_{2},\bm{d}_{3}]bold_italic_R ( bold_italic_q ) = [ bold_italic_d start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_italic_d start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , bold_italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ], and requires additional geometric constraints to align the local frames with the centerline. The Rodriguez formula 𝑹(𝒒)𝑹𝒒\bm{R}\left(\bm{q}\right)bold_italic_R ( bold_italic_q ) computes the rotation from world frame to local frame.

(2) 𝑹(𝒒)𝑹𝒒\displaystyle\bm{R}\left(\bm{q}\right)bold_italic_R ( bold_italic_q ) =2𝒒𝒒T+(q02𝒒imT𝒒im)𝟏+2q0[𝒒im]×absent2𝒒superscript𝒒𝑇superscriptsubscript𝑞02superscriptsubscript𝒒𝑖𝑚𝑇subscript𝒒𝑖𝑚12subscript𝑞0superscriptdelimited-[]subscript𝒒𝑖𝑚\displaystyle=2\bm{q}\bm{q}^{T}+\left(q_{0}^{2}-\bm{q}_{im}^{T}\bm{q}_{im}% \right)\bm{1}+2q_{0}\left[\bm{q}_{im}\right]^{\times}= 2 bold_italic_q bold_italic_q start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT + ( italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT - bold_italic_q start_POSTSUBSCRIPT italic_i italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i italic_m end_POSTSUBSCRIPT ) bold_1 + 2 italic_q start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ bold_italic_q start_POSTSUBSCRIPT italic_i italic_m end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT × end_POSTSUPERSCRIPT

Our yarn model follows the formulation by Kugelstadt and Schömer (2016) where we model stretching-shearing and bending-twisting energies. The total energy for a yarn with N+1𝑁1N+1italic_N + 1 points is

(3) Uyarnsubscript𝑈yarn\displaystyle U_{\text{yarn}}italic_U start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT =Ustretch_shear+Ubend_twistabsentsubscript𝑈stretch_shearsubscript𝑈bend_twist\displaystyle=U_{\text{stretch\_shear}}+U_{\text{bend\_twist}}= italic_U start_POSTSUBSCRIPT stretch_shear end_POSTSUBSCRIPT + italic_U start_POSTSUBSCRIPT bend_twist end_POSTSUBSCRIPT
=i=0N112𝑪sT𝜶s1𝑪s+i=0N212𝑪bT𝜶b1𝑪bwhereabsentsuperscriptsubscript𝑖0𝑁112superscriptsubscript𝑪𝑠𝑇superscriptsubscript𝜶𝑠1subscript𝑪𝑠superscriptsubscript𝑖0𝑁212superscriptsubscript𝑪𝑏𝑇superscriptsubscript𝜶𝑏1subscript𝑪𝑏where\displaystyle=\sum_{i=0}^{N-1}\frac{1}{2}\bm{C}_{s}^{T}\bm{\alpha}_{s}^{-1}\bm% {C}_{s}+\sum_{i=0}^{N-2}\frac{1}{2}\bm{C}_{b}^{T}\bm{\alpha}_{b}^{-1}\bm{C}_{b% }\ \text{where}= ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_α start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT + ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 2 end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_C start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_italic_α start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT bold_italic_C start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT where
𝜶s1superscriptsubscript𝜶𝑠1\displaystyle\bm{\alpha}_{s}^{-1}bold_italic_α start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT =[EAEAEA]l0,𝜶b1=[EI1EI2GI3]l0.formulae-sequenceabsentmatrix𝐸𝐴missing-subexpressionmissing-subexpressionmissing-subexpression𝐸𝐴missing-subexpressionmissing-subexpression𝐸𝐴subscript𝑙0superscriptsubscript𝜶𝑏1matrix𝐸subscript𝐼1missing-subexpressionmissing-subexpressionmissing-subexpression𝐸subscript𝐼2missing-subexpressionmissing-subexpressionmissing-subexpression𝐺subscript𝐼3subscript𝑙0\displaystyle=\begin{bmatrix}EA&&\\ &EA\\ &&EA\end{bmatrix}l_{0},\ \ \bm{\alpha}_{b}^{-1}=\begin{bmatrix}EI_{1}&&\\ &EI_{2}&\\ &&GI_{3}\end{bmatrix}l_{0}.= [ start_ARG start_ROW start_CELL italic_E italic_A end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL italic_E italic_A end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL italic_E italic_A end_CELL end_ROW end_ARG ] italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_italic_α start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_E italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL italic_E italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL italic_G italic_I start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT .

Here, E𝐸Eitalic_E is the Young’s modulus, G𝐺Gitalic_G is the shear modulus where E=2G(1+ν)𝐸2𝐺1𝜈E=2G(1+\nu)italic_E = 2 italic_G ( 1 + italic_ν ), ν𝜈\nuitalic_ν is the Poisson’s ratio, and Iisubscript𝐼𝑖I_{i}italic_I start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the second area moment of inertia. For a cylindrical yarn with circular cross-section, A=πr2𝐴𝜋superscript𝑟2A=\pi r^{2}italic_A = italic_π italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, I1=I2=14πr2subscript𝐼1subscript𝐼214𝜋superscript𝑟2I_{1}=I_{2}=\frac{1}{4}\pi r^{2}italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 4 end_ARG italic_π italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and I3=12πr2subscript𝐼312𝜋superscript𝑟2I_{3}=\frac{1}{2}\pi r^{2}italic_I start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_π italic_r start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT.

Stretching-Shearing

(4) 𝑪s(𝒑i,𝒑i+1,𝒒i)subscript𝑪𝑠subscript𝒑𝑖subscript𝒑𝑖1subscript𝒒𝑖\displaystyle\bm{C}_{s}\left(\bm{p}_{i},\bm{p}_{i+1},\bm{q}_{i}\right)bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT , bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) =1l0(𝒑i+1𝒑i)𝒅3(𝒒i)absent1subscript𝑙0subscript𝒑𝑖1subscript𝒑𝑖subscript𝒅3subscript𝒒𝑖\displaystyle=\frac{1}{l_{0}}\left(\bm{p}_{i+1}-\bm{p}_{i}\right)-\bm{d}_{3}(% \bm{q}_{i})= divide start_ARG 1 end_ARG start_ARG italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG ( bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT - bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) - bold_italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )
=1l0(𝒑i+1𝒑i)𝑹(𝒒i)𝒆^3,absent1subscript𝑙0subscript𝒑𝑖1subscript𝒑𝑖𝑹subscript𝒒𝑖subscript^𝒆3\displaystyle=\frac{1}{l_{0}}\left(\bm{p}_{i+1}-\bm{p}_{i}\right)-\bm{R}(\bm{q% }_{i})\hat{\bm{e}}_{3},= divide start_ARG 1 end_ARG start_ARG italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG ( bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT - bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) - bold_italic_R ( bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) over^ start_ARG bold_italic_e end_ARG start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ,

where l0subscript𝑙0l_{0}italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is the rest length of edge 𝒆isubscript𝒆𝑖\bm{e}_{i}bold_italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and 𝒆^3subscript^𝒆3\hat{\bm{e}}_{3}over^ start_ARG bold_italic_e end_ARG start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT is a unit vector in the yarn center-line direction in world frame.
Bending-Twisting

(5) 𝑪b(𝒒i,𝒒i+1)subscript𝑪𝑏subscript𝒒𝑖subscript𝒒𝑖1\displaystyle\bm{C}_{b}\left(\bm{q}_{i},\bm{q}_{i+1}\right)bold_italic_C start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) =𝚿𝚿0=2l0(𝒒¯i𝒒i+1)(𝒒¯i𝒒i+1)2l0(𝒒¯i0𝒒i+10)(𝒒¯i0𝒒i+10),absent𝚿superscript𝚿02subscript𝑙0subscript¯𝒒𝑖subscript𝒒𝑖1subscript¯𝒒𝑖subscript𝒒𝑖12subscript𝑙0subscriptsuperscript¯𝒒0𝑖subscriptsuperscript𝒒0𝑖1subscriptsuperscript¯𝒒0𝑖superscriptsubscript𝒒𝑖10\displaystyle=\bm{\Psi}-\bm{\Psi}^{0}=\frac{2}{l_{0}}\frac{\Im\left(\bar{\bm{q% }}_{i}\bm{q}_{i+1}\right)}{\Re\left(\bar{\bm{q}}_{i}\bm{q}_{i+1}\right)}-\frac% {2}{l_{0}}\frac{\Im\left(\bar{\bm{q}}^{0}_{i}\bm{q}^{0}_{i+1}\right)}{\Re\left% (\bar{\bm{q}}^{0}_{i}\bm{q}_{i+1}^{0}\right)},= bold_Ψ - bold_Ψ start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = divide start_ARG 2 end_ARG start_ARG italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG divide start_ARG roman_ℑ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG - divide start_ARG 2 end_ARG start_ARG italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG divide start_ARG roman_ℑ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ) end_ARG ,

where the superscript 0 denotes the rest configuration and 𝚿𝚿\bm{\Psi}bold_Ψ is the modified Darboux vector.

3.3. Modeling Shells with Orthotropic StVK

To simulate hyperelastic shells, we require membrane (in-plane) and bending (out-of-plane) energies. We focus on 2D knitted and woven patterns where the yarn patterns are aligned with two orthogonal directions, which we henceforth refer to as weft and warp indicated by subscripts t𝑡{}_{t}start_FLOATSUBSCRIPT italic_t end_FLOATSUBSCRIPT and p𝑝{}_{p}start_FLOATSUBSCRIPT italic_p end_FLOATSUBSCRIPT respectively111Note that the terms warp and weft apply only to woven fabrics in the textile industry.. We compute the strain following the discrete Kirchhoff-Love shell model (Weischedel et al., 2012; Chen et al., 2018; Wen and Barbič, 2023). The in-plane stretching strain can be represented as

(6) ϵ¯s=[ϵttϵtpϵtpϵpp]𝕀¯rest1(𝕀¯𝕀¯rest)subscript¯bold-italic-ϵ𝑠matrixsubscriptitalic-ϵ𝑡𝑡subscriptitalic-ϵ𝑡𝑝subscriptitalic-ϵ𝑡𝑝subscriptitalic-ϵ𝑝𝑝proportional-tosuperscriptsubscript¯𝕀rest1¯𝕀subscript¯𝕀rest\overline{\bm{\epsilon}}_{s}=\begin{bmatrix}\epsilon_{tt}&\epsilon_{tp}\\ \epsilon_{tp}&\epsilon_{pp}\end{bmatrix}\propto\overline{\mathbb{I}}_{\text{% rest}}^{-1}(\overline{\mathbb{I}}-\overline{\mathbb{I}}_{\text{rest}})over¯ start_ARG bold_italic_ϵ end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_ϵ start_POSTSUBSCRIPT italic_t italic_t end_POSTSUBSCRIPT end_CELL start_CELL italic_ϵ start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ϵ start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT end_CELL start_CELL italic_ϵ start_POSTSUBSCRIPT italic_p italic_p end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] ∝ over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( over¯ start_ARG blackboard_I end_ARG - over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT )

where 𝕀¯¯𝕀\overline{\mathbb{I}}over¯ start_ARG blackboard_I end_ARG and 𝕀¯restsubscript¯𝕀rest\overline{\mathbb{I}}_{\text{rest}}over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT are the first fundamental forms on the deformed and rest surfaces respectively. The elements ϵttsubscriptitalic-ϵ𝑡𝑡\epsilon_{tt}italic_ϵ start_POSTSUBSCRIPT italic_t italic_t end_POSTSUBSCRIPT, ϵppsubscriptitalic-ϵ𝑝𝑝\epsilon_{pp}italic_ϵ start_POSTSUBSCRIPT italic_p italic_p end_POSTSUBSCRIPT and ϵtpsubscriptitalic-ϵ𝑡𝑝\epsilon_{tp}italic_ϵ start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT measure weft, warp and shear deformations respectively. Let us define 𝕀~=𝕀¯rest1(𝕀¯𝕀¯rest)~𝕀superscriptsubscript¯𝕀rest1¯𝕀subscript¯𝕀rest\tilde{\mathbb{I}}=\overline{\mathbb{I}}_{\text{rest}}^{-1}(\overline{\mathbb{% I}}-\overline{\mathbb{I}}_{\text{rest}})over~ start_ARG blackboard_I end_ARG = over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( over¯ start_ARG blackboard_I end_ARG - over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT ), then the constraint and stiffness matrix are

(7) 𝑪¯ssubscript¯𝑪𝑠\displaystyle\overline{\bm{C}}_{s}over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT =A(𝕀~tt,𝕀~pp,𝕀~tp)absent𝐴subscript~𝕀𝑡𝑡subscript~𝕀𝑝𝑝subscript~𝕀𝑡𝑝\displaystyle=\sqrt{A}(\tilde{\mathbb{I}}_{tt},\tilde{\mathbb{I}}_{pp},\tilde{% \mathbb{I}}_{tp})= square-root start_ARG italic_A end_ARG ( over~ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT italic_t italic_t end_POSTSUBSCRIPT , over~ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT italic_p italic_p end_POSTSUBSCRIPT , over~ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT )
𝜶¯s1subscriptsuperscript¯𝜶1𝑠\displaystyle\overline{\bm{\alpha}}^{-1}_{s}over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT =h[s00s01s01s11s22]absentmatrixsubscript𝑠00subscript𝑠01missing-subexpressionsubscript𝑠01subscript𝑠11missing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝑠22\displaystyle=h\begin{bmatrix}s_{00}&s_{01}&\\ s_{01}&s_{11}&\\ &&s_{22}\end{bmatrix}= italic_h [ start_ARG start_ROW start_CELL italic_s start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL italic_s start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ]

where A𝐴Aitalic_A is the area of a triangle, and hhitalic_h is the thickness of the shell. The weft and warp stiffness of the fabric are controlled by s00subscript𝑠00s_{00}italic_s start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT and s11subscript𝑠11s_{11}italic_s start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT respectively. s01subscript𝑠01s_{01}italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT controls the coupling between deformations in warp and weft directions, and s22subscript𝑠22s_{22}italic_s start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT is the shear stiffness. We can express the stiffness values in terms of the more intuitive Young’s moduli Ep,Etsubscript𝐸𝑝subscript𝐸𝑡E_{p},E_{t}italic_E start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT, Poisson’s ratios νpt,νtpsubscript𝜈𝑝𝑡subscript𝜈𝑡𝑝\nu_{pt},\nu_{tp}italic_ν start_POSTSUBSCRIPT italic_p italic_t end_POSTSUBSCRIPT , italic_ν start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT and shear modulus μ𝜇\muitalic_μ:

(8) [s00s01s01s11s22]=11νtpνpt[EtνptEtνtpEpEpμ(1νtpνpt)].matrixsubscript𝑠00subscript𝑠01missing-subexpressionsubscript𝑠01subscript𝑠11missing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝑠2211subscript𝜈𝑡𝑝subscript𝜈𝑝𝑡matrixsubscript𝐸𝑡subscript𝜈𝑝𝑡subscript𝐸𝑡missing-subexpressionsubscript𝜈𝑡𝑝subscript𝐸𝑝subscript𝐸𝑝missing-subexpressionmissing-subexpressionmissing-subexpression𝜇1subscript𝜈𝑡𝑝subscript𝜈𝑝𝑡\displaystyle\begin{bmatrix}s_{00}&s_{01}&\\ s_{01}&s_{11}&\\ &&s_{22}\end{bmatrix}=\frac{1}{1-\nu_{tp}\nu_{pt}}\begin{bmatrix}E_{t}&\nu_{pt% }E_{t}&\\ \nu_{tp}E_{p}&E_{p}&\\ &&\mu(1-\nu_{tp}\nu_{pt})\end{bmatrix}.[ start_ARG start_ROW start_CELL italic_s start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT end_CELL start_CELL italic_s start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL italic_s start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = divide start_ARG 1 end_ARG start_ARG 1 - italic_ν start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT italic_ν start_POSTSUBSCRIPT italic_p italic_t end_POSTSUBSCRIPT end_ARG [ start_ARG start_ROW start_CELL italic_E start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_CELL start_CELL italic_ν start_POSTSUBSCRIPT italic_p italic_t end_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_ν start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT italic_E start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_CELL start_CELL italic_E start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL italic_μ ( 1 - italic_ν start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT italic_ν start_POSTSUBSCRIPT italic_p italic_t end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] .

The bending strain is proportional to the change in the curvature of the surface 𝕀𝕀~=𝕀¯rest1(𝕀𝕀¯𝕀𝕀¯rest)~𝕀𝕀superscriptsubscript¯𝕀rest1¯𝕀𝕀subscript¯𝕀𝕀rest\tilde{\mathbb{II}}=\overline{\mathbb{I}}_{\text{rest}}^{-1}(\overline{\mathbb% {II}}-\overline{\mathbb{II}}_{\text{rest}})over~ start_ARG blackboard_I blackboard_I end_ARG = over¯ start_ARG blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( over¯ start_ARG blackboard_I blackboard_I end_ARG - over¯ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT ), where 𝕀𝕀¯¯𝕀𝕀\overline{\mathbb{II}}over¯ start_ARG blackboard_I blackboard_I end_ARG and 𝕀𝕀¯restsubscript¯𝕀𝕀rest\overline{\mathbb{II}}_{\text{rest}}over¯ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT are the second fundamental forms. Using the same formulation, we define the bending constraints as

(9) 𝑪¯b=A(𝕀𝕀~tt,𝕀𝕀~pp,𝕀𝕀~tp)subscript¯𝑪𝑏𝐴subscript~𝕀𝕀𝑡𝑡subscript~𝕀𝕀𝑝𝑝subscript~𝕀𝕀𝑡𝑝\displaystyle\overline{\bm{C}}_{b}=\sqrt{A}(\tilde{\mathbb{II}}_{tt},\tilde{% \mathbb{II}}_{pp},\tilde{\mathbb{II}}_{tp})over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = square-root start_ARG italic_A end_ARG ( over~ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT italic_t italic_t end_POSTSUBSCRIPT , over~ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT italic_p italic_p end_POSTSUBSCRIPT , over~ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT italic_t italic_p end_POSTSUBSCRIPT )

All our experiments assume a flat rest shape with 𝕀𝕀¯rest=𝟎subscript¯𝕀𝕀rest0\overline{\mathbb{II}}_{\text{rest}}=\bm{0}over¯ start_ARG blackboard_I blackboard_I end_ARG start_POSTSUBSCRIPT rest end_POSTSUBSCRIPT = bold_0. The stiffness matrix is 𝜶¯b1=h3diag(b00,b11,b22)subscriptsuperscript¯𝜶1𝑏superscript3diagsubscript𝑏00subscript𝑏11subscript𝑏22\overline{\bm{\alpha}}^{-1}_{b}=h^{3}\operatorname*{diag}(b_{00},b_{11},b_{22})over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = italic_h start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT roman_diag ( italic_b start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT ).

Refer to caption
Figure 2. A square swatch (oriented vertically along the warp direction) is draped using various bending parameters. Each column indicates which parameter is modified with respect to the others. The right column makes all parameters either soft (top row) or stiff (bottom row).

3.4. Homogenization

Homogenization aims at obtaining macroscopic equations for systems with a fine microscopic structure. Following Sperl et al. (2020), we describe the macroscopic thin shell using reference coordinates 𝑿¯¯𝑿\overline{\bm{X}}over¯ start_ARG bold_italic_X end_ARG, deformed coordinates 𝒙¯¯𝒙\overline{\bm{x}}over¯ start_ARG bold_italic_x end_ARG, and deformation gradient 𝑭¯=𝒙¯𝑿¯¯𝑭¯𝒙¯𝑿\overline{\bm{F}}=\frac{\overline{\bm{x}}}{\overline{\bm{X}}}over¯ start_ARG bold_italic_F end_ARG = divide start_ARG over¯ start_ARG bold_italic_x end_ARG end_ARG start_ARG over¯ start_ARG bold_italic_X end_ARG end_ARG. Correspondingly, the microscopic yarn-level structure has the descriptors 𝑿𝑿\bm{X}bold_italic_X, 𝒙𝒙\bm{x}bold_italic_x and 𝑭𝑭\bm{F}bold_italic_F.

Given an arbitrary deformation, the deformed thin shell is defined on a mid-surface ϕ¯¯bold-italic-ϕ\overline{\bm{\phi}}over¯ start_ARG bold_italic_ϕ end_ARG corresponding to the representative volume element (RVE) as 𝒙¯=ϕ¯(𝑿¯)+h𝒏¯¯𝒙¯bold-italic-ϕ¯𝑿¯𝒏\overline{\bm{x}}=\overline{\bm{\phi}}(\overline{\bm{X}})+h\overline{\bm{n}}over¯ start_ARG bold_italic_x end_ARG = over¯ start_ARG bold_italic_ϕ end_ARG ( over¯ start_ARG bold_italic_X end_ARG ) + italic_h over¯ start_ARG bold_italic_n end_ARG. Here, hhitalic_h is the thickness or deviation from the mid-surface and 𝒏𝒏\bm{n}bold_italic_n is the surface normal. The underlying yarn structure undergoes the same deformation, i.e. 𝕀=𝕀¯𝕀¯𝕀\mathbb{I}=\overline{\mathbb{I}}blackboard_I = over¯ start_ARG blackboard_I end_ARG, 𝕀𝕀=𝕀𝕀¯𝕀𝕀¯𝕀𝕀\mathbb{II}=\overline{\mathbb{II}}blackboard_I blackboard_I = over¯ start_ARG blackboard_I blackboard_I end_ARG. The resulting yarn geometry is a subdivision of the macro-scale mid-surface ϕbold-italic-ϕ\bm{\phi}bold_italic_ϕ plus additional fluctuations 𝒖~~𝒖\tilde{\bm{u}}over~ start_ARG bold_italic_u end_ARG induced by the yarn relaxation process expressed as 𝒙=ϕ(𝑿)+h𝒏+𝒖~(𝑿)𝒙bold-italic-ϕ𝑿𝒏~𝒖𝑿\bm{x}=\bm{\phi}(\bm{X})+h\bm{n}+\tilde{\bm{u}}(\bm{X})bold_italic_x = bold_italic_ϕ ( bold_italic_X ) + italic_h bold_italic_n + over~ start_ARG bold_italic_u end_ARG ( bold_italic_X ). Homogenization theory assumes that the macroscale quantities 𝒙¯¯𝒙\overline{\bm{x}}over¯ start_ARG bold_italic_x end_ARG and 𝑭¯¯𝑭\overline{\bm{F}}over¯ start_ARG bold_italic_F end_ARG are averaged from the microscale quantities 𝒙𝒙\bm{x}bold_italic_x and 𝑭𝑭\bm{F}bold_italic_F which span the macro region. In addition, the RVE is treated as constant across the micro region. These two assumptions indicate that the yarn-level fluctuations always average out over the shell mid-surface which is expressed as

(10) Ω𝒖~(𝑿)𝑑ΩsubscriptΩ~𝒖𝑿differential-dΩ\displaystyle\int_{\Omega}\tilde{\bm{u}}(\bm{X})d\Omega∫ start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT over~ start_ARG bold_italic_u end_ARG ( bold_italic_X ) italic_d roman_Ω =0,Ω𝒖~(𝑿)𝑑Ωabsent0subscriptΩ~𝒖𝑿differential-dΩ\displaystyle=0,\ \int_{\Omega}\nabla\tilde{\bm{u}}(\bm{X})d\Omega= 0 , ∫ start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT ∇ over~ start_ARG bold_italic_u end_ARG ( bold_italic_X ) italic_d roman_Ω =0absent0\displaystyle=0= 0

4. Method

Refer to caption
Figure 3. Overview of our proposed yarn-shell parameter estimation method.

We now elaborate our end-to-end method for estimating shell simulation parameters corresponding to real fabrics. Our method consists of three stages: (i) initial yarn relaxation, (ii) yarn simulation on deformed surfaces and finally (iii) shell model parameter fitting. Figure 3 provides a visual overview.

  1. Yarn Initialization and Relaxation. Given a real garment, we first obtain the material type through information readily found on their labels. We then visually determine the yarn structure through close-up captures and sample a fabric swatch to measure the density. With additional information provided by textile research on the tensile strength of materials, we derive the yarn model parameters. We leverage a database of knitted or woven patterns (Leaf et al., 2018) to relax the corresponding yarn pattern using periodic boundary conditions (PBC).

  2. Yarn Simulation on Deformed Surfaces. We simulate the relaxed yarns to establish the shape of a deformed mid-surface, required for homogenization. Given a sampled deformation at the macro scale, we compute the resulting shape of the shell. Subsequently, we tile yarns on the deformed shell and record the resulting yarn-level energy by running a yarn-level simulation subject to homogenization constraints. This provides a map** from the deformation space at the macro level to the energy densities at the micro level, which exhibits rich physical responses that are not well represented using the macro level constitutive model.

  3. Shell Parameter Estimation. Finally, we fit an orthotropic StVK shell model to the collected yarn-level deformation response data. We validate our homogenized shells for each material against quantitative measurements of real fabrics as well as full yarn simulations (without PBC) on stretching and dra** experiments. In addition, we simulate full-sized garments using our homogenized shell parameters and compare with recorded real-world footage.

4.1. Deriving Yarn Model Parameters from Real Fabrics

Provided with simple measurements of real fabrics, we estimate the stiffness matrices in Eq. 3 using a nonlinear stretching model inspired by (Sperl et al., 2022).

Refer to caption
Figure 4. Strain-force plot. Blue: Biphasic piecewise linear stretch proposed by Sperl et al. (2020). Orange: Ours.
(11) E={k1ϵyarnfor ϵyarn<0k2ϵyarnfor ϵyarn>0Uyarn{k1ϵyarn2k2ϵyarn2𝐸casessubscript𝑘1subscriptitalic-ϵ𝑦𝑎𝑟𝑛for subscriptitalic-ϵ𝑦𝑎𝑟𝑛0subscript𝑘2subscriptitalic-ϵ𝑦𝑎𝑟𝑛for subscriptitalic-ϵ𝑦𝑎𝑟𝑛0subscript𝑈yarnproportional-tocasessubscript𝑘1superscriptsubscriptitalic-ϵ𝑦𝑎𝑟𝑛2𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒subscript𝑘2superscriptsubscriptitalic-ϵ𝑦𝑎𝑟𝑛2𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒E=\begin{cases}k_{1}\epsilon_{yarn}&\text{for }\epsilon_{yarn}<0\\ k_{2}\epsilon_{yarn}&\text{for }\epsilon_{yarn}>0\end{cases}\Rightarrow\nabla U% _{\text{yarn}}\propto\begin{cases}k_{1}\epsilon_{yarn}^{2}\\ k_{2}\epsilon_{yarn}^{2}\end{cases}italic_E = { start_ROW start_CELL italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT end_CELL start_CELL for italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT < 0 end_CELL end_ROW start_ROW start_CELL italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT end_CELL start_CELL for italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT > 0 end_CELL end_ROW ⇒ ∇ italic_U start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT ∝ { start_ROW start_CELL italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT italic_ϵ start_POSTSUBSCRIPT italic_y italic_a italic_r italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL start_CELL end_CELL end_ROW

The rate of change in the Young’s modulus k1,k2subscript𝑘1subscript𝑘2k_{1},k_{2}italic_k start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_k start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT are derived from tensile testing on various materials including polyester, yarn and wool fibers (Serra et al., 2019). Note that we only provide a rough estimate for the ranges of the Young’s moduli, which are distinct for the materials in our scope. More accurate estimates can be obtained by conducting physical experiments on the individual yarns composing the respective fabrics.

We initialize the yarn centerlines using the yarn pattern data from Leaf et al. (2018), which contains the geometry of a single periodic repeat. Finally, the yarn radius is estimated as r=ρshellpxpyρyarnL0π𝑟subscript𝜌shellsubscript𝑝𝑥subscript𝑝𝑦subscript𝜌yarnsubscript𝐿0𝜋r=\sqrt{\frac{\rho_{\text{shell}}p_{x}p_{y}}{\rho_{\text{yarn}}L_{0}\pi}}italic_r = square-root start_ARG divide start_ARG italic_ρ start_POSTSUBSCRIPT shell end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_ARG start_ARG italic_ρ start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT italic_L start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_π end_ARG end_ARG. Here, px,pysubscript𝑝𝑥subscript𝑝𝑦p_{x},p_{y}italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT is the width and length of a single repeat and L0subscript𝐿0L_{0}italic_L start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is the total rest length of yarns, all of which are calculated from the initialized yarn geometry. ρshellsubscript𝜌shell\rho_{\text{shell}}italic_ρ start_POSTSUBSCRIPT shell end_POSTSUBSCRIPT is measured by weighing a piece of fabric and dividing the mass by the number of repeats in the swatch.

4.2. Periodic Yarns

We model 2D fabrics as a tiling of a small repeated unit which are strongly connected when tiled periodically. Our homogenization process gathers deformation responses from a large tile by simulating the periodically repeating unit, similar to Sperl et al. (2020). We model the connections of the yarn patch to adjacent ghost tiles using a constraint formulation. We find all pairs of connected yarn ends which are in the form of (𝒑ij,𝒑kl,xoff,yoff)superscriptsubscript𝒑𝑖𝑗superscriptsubscript𝒑𝑘𝑙subscript𝑥offsubscript𝑦off(\bm{p}_{i}^{j},\bm{p}_{k}^{l},x_{\textnormal{off}},y_{\textnormal{off}})( bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , bold_italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT , italic_x start_POSTSUBSCRIPT off end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT off end_POSTSUBSCRIPT ) where 𝒑ijsuperscriptsubscript𝒑𝑖𝑗\bm{p}_{i}^{j}bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT and 𝒑klsuperscriptsubscript𝒑𝑘𝑙\bm{p}_{k}^{l}bold_italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT are the connected yarn points (e.g. j𝑗jitalic_jth sampled point of the i𝑖iitalic_ith yarn), and (xoff,yoff)subscript𝑥offsubscript𝑦off(x_{\textnormal{off}},y_{\textnormal{off}})( italic_x start_POSTSUBSCRIPT off end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT off end_POSTSUBSCRIPT ) indicate the position of the ghost tile where vklsuperscriptsubscript𝑣𝑘𝑙v_{k}^{l}italic_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT resides relative to the simulated tile, i.e. (xoff,yoff){(1,0),(1,0),(0,1),(0,1)}subscript𝑥offsubscript𝑦off10100101(x_{\textnormal{off}},y_{\textnormal{off}})\in\{(1,0),(-1,0),(0,1),(0,-1)\}( italic_x start_POSTSUBSCRIPT off end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT off end_POSTSUBSCRIPT ) ∈ { ( 1 , 0 ) , ( - 1 , 0 ) , ( 0 , 1 ) , ( 0 , - 1 ) }. Each yarn connection introduces two ghost edges 𝒆ijsuperscriptsubscript𝒆𝑖𝑗\bm{e}_{i}^{j}bold_italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT and 𝒆kl1superscriptsubscript𝒆𝑘𝑙1\bm{e}_{k}^{l-1}bold_italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l - 1 end_POSTSUPERSCRIPT adjacent to 𝒑ijsuperscriptsubscript𝒑𝑖𝑗\bm{p}_{i}^{j}bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT and 𝒑klsuperscriptsubscript𝒑𝑘𝑙\bm{p}_{k}^{l}bold_italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT respectively , corresponding to stretching-shearing constraints 𝑪s(𝒑ij,𝒑~kl+1,𝒒(𝒆ij))subscript𝑪𝑠superscriptsubscript𝒑𝑖𝑗superscriptsubscript~𝒑𝑘𝑙1𝒒superscriptsubscript𝒆𝑖𝑗\bm{C}_{s}\left(\bm{p}_{i}^{j},\tilde{\bm{p}}_{k}^{l+1},\bm{q}(\bm{e}_{i}^{j})\right)bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , over~ start_ARG bold_italic_p end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l + 1 end_POSTSUPERSCRIPT , bold_italic_q ( bold_italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT ) ) and 𝑪s(𝒑lk,𝒑~ij1,𝒒(𝒆kl1))subscript𝑪𝑠superscriptsubscript𝒑𝑙𝑘superscriptsubscript~𝒑𝑖𝑗1𝒒superscriptsubscript𝒆𝑘𝑙1\bm{C}_{s}\left(\bm{p}_{l}^{k},\tilde{\bm{p}}_{i}^{j-1},\bm{q}(\bm{e}_{k}^{l-1% })\right)bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ( bold_italic_p start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT , over~ start_ARG bold_italic_p end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT , bold_italic_q ( bold_italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l - 1 end_POSTSUPERSCRIPT ) ) as well as the bending-twisting constraint 𝑪b(𝒒(𝒆ij1),𝒒(𝒆kl))subscript𝑪𝑏𝒒superscriptsubscript𝒆𝑖𝑗1𝒒superscriptsubscript𝒆𝑘𝑙\bm{C}_{b}\left(\bm{q}(\bm{e}_{i}^{j-1}),\bm{q}(\bm{e}_{k}^{l})\right)bold_italic_C start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ( bold_italic_q ( bold_italic_e start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT ) , bold_italic_q ( bold_italic_e start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT ) ) following Equations 4 and 5. Note that 𝒑~~𝒑\tilde{\bm{p}}over~ start_ARG bold_italic_p end_ARG indicate positions in the adjacent ghost tiles.

4.3. Yarn Contacts

At each simulation step, yarn self-collisions and inter-object collisions are processed by detecting and culling potential collisions using bounding volume hierarchies that comprise of all edge segments of the discretized yarns and the colliding triangle meshes. Edge-edge and point-triangle contacts are identified by continuous and proximity collision detection. The contacts are then resolved through a unilateral distance constraint with position-based friction to maintain a minimal separation distance equal to the yarn diameter (Macklin et al., 2014).

4.4. Surface Tiling

We introduce additional homogenization constraints such that the periodic yarn tiling matches a deformed surface during simulation.

Mid-Surface Constraints. We build on Eq. 10 and transform all the yarn-level fluctuations to a common frame defined by the mid-surface (Sperl et al., 2020). The transformation matrix is essentially the rotation 𝑹𝑹\bm{R}bold_italic_R of the surface normal from the undeformed surface to the deformed surface. For an arbitrary yarn i𝑖iitalic_i with (N+1)𝑁1(N+1)( italic_N + 1 ) sampled points, we compute the rotation matrix corresponding to every yarn sampled point by taking the polar decomposition of the local mid-surface deformation jϕi=𝑹ij𝑺ijsubscript𝑗subscriptbold-italic-ϕ𝑖subscript𝑹𝑖𝑗subscript𝑺𝑖𝑗\nabla_{j}\bm{\phi}_{i}=\bm{R}_{ij}\bm{S}_{ij}∇ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT bold_italic_ϕ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = bold_italic_R start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT bold_italic_S start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT where 𝑺ijsubscript𝑺𝑖𝑗\bm{S}_{ij}bold_italic_S start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT represents the in-plane deformation. The homogenization constraint is

(12) 𝑪RVE(𝒖~)subscript𝑪RVE~𝒖\displaystyle\bm{C}_{\text{RVE}}(\tilde{\bm{u}})bold_italic_C start_POSTSUBSCRIPT RVE end_POSTSUBSCRIPT ( over~ start_ARG bold_italic_u end_ARG ) =j=0N𝑹ijT𝒖~ij=0absentsuperscriptsubscript𝑗0𝑁superscriptsubscript𝑹𝑖𝑗𝑇subscript~𝒖𝑖𝑗0\displaystyle=\sum_{j=0}^{N}{\bm{R}_{ij}}^{T}\tilde{\bm{u}}_{ij}=0= ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT bold_italic_R start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over~ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT = 0

We also make sure that the boundaries are well-aligned when being tiled. For each yarn connection involving points (𝒑ij,𝒑kl)superscriptsubscript𝒑𝑖𝑗superscriptsubscript𝒑𝑘𝑙(\bm{p}_{i}^{j},\bm{p}_{k}^{l})( bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , bold_italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_l end_POSTSUPERSCRIPT ),

(13) 𝑪RVE_Γ(𝒖~)=𝑹ijT𝒖~ij𝑹klT𝒖~kl=0subscript𝑪RVE_Γ~𝒖superscriptsubscript𝑹𝑖𝑗𝑇subscript~𝒖𝑖𝑗superscriptsubscript𝑹𝑘𝑙𝑇subscript~𝒖𝑘𝑙0\displaystyle\bm{C}_{\text{RVE}\_\Gamma}(\tilde{\bm{u}})={\bm{R}_{ij}}^{T}% \tilde{\bm{u}}_{ij}-{\bm{R}_{kl}}^{T}\tilde{\bm{u}}_{kl}=0bold_italic_C start_POSTSUBSCRIPT RVE _ roman_Γ end_POSTSUBSCRIPT ( over~ start_ARG bold_italic_u end_ARG ) = bold_italic_R start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over~ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT - bold_italic_R start_POSTSUBSCRIPT italic_k italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over~ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_k italic_l end_POSTSUBSCRIPT = 0

Here, 𝑹ijsubscript𝑹𝑖𝑗\bm{R}_{ij}bold_italic_R start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT remains the same across the tiling, given our assumption of constant surface gradient.

Zero-Twist Constraints. We enforce each yarn to have zero net twist and the yarn ends to have matching twist angles, to ensure the twists do not get accumulated when tiling the yarns. The twist angle is proportional to the last entry of the Darboux vector in Eq. 5. For a yarn with N𝑁Nitalic_N edges:

(14) Cztsubscript𝐶zt\displaystyle C_{\text{zt}}italic_C start_POSTSUBSCRIPT zt end_POSTSUBSCRIPT =i=0N22(𝒒¯i𝒒i+1)(𝒒¯i𝒒i+1)=0,absentsuperscriptsubscript𝑖0𝑁2subscript2subscript¯𝒒𝑖subscript𝒒𝑖1subscript¯𝒒𝑖subscript𝒒𝑖10\displaystyle=\sum_{i=0}^{N-2}\frac{\Im_{2}(\bar{\bm{q}}_{i}\bm{q}_{i+1})}{\Re% (\bar{\bm{q}}_{i}\bm{q}_{i+1})}=0,= ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 2 end_POSTSUPERSCRIPT divide start_ARG roman_ℑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG = 0 ,
Czt_Γsubscript𝐶zt_Γ\displaystyle C_{\text{zt}\_\Gamma}italic_C start_POSTSUBSCRIPT zt _ roman_Γ end_POSTSUBSCRIPT =2(𝒒¯0𝒒1)(𝒒¯0𝒒1)2(𝒒¯N2𝒒N1)(𝒒¯N2𝒒N1)=0.absentsubscript2subscript¯𝒒0subscript𝒒1subscript¯𝒒0subscript𝒒1subscript2subscript¯𝒒𝑁2subscript𝒒𝑁1subscript¯𝒒𝑁2subscript𝒒𝑁10\displaystyle=\frac{\Im_{2}(\bar{\bm{q}}_{0}\bm{q}_{1})}{\Re(\bar{\bm{q}}_{0}% \bm{q}_{1})}-\frac{\Im_{2}(\bar{\bm{q}}_{N-2}\bm{q}_{N-1})}{\Re(\bar{\bm{q}}_{% N-2}\bm{q}_{N-1})}=0.= divide start_ARG roman_ℑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) end_ARG - divide start_ARG roman_ℑ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_N - 2 end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_N - 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_N - 2 end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_N - 1 end_POSTSUBSCRIPT ) end_ARG = 0 .

4.5. Yarn-Level Simulation

We execute yarn-level simulation in two phases. The first phase brings the yarns to a relaxed state. The second then minimizes the yarn energy density subject to the homogenization constraints.

Yarn Relaxation. We minimize the energy in Eq. 3 with slight modifications to the yarn constraints as shown in Eq. 15. We introduce a small amount of yarn shrinkage by setting the rest lengths of all yarn segments to be shorter than their initial lengths, so that the relaxed yarns are touching while the overall size of the patch remains unchanged. In practice, we set a shrinking factor rssubscript𝑟𝑠r_{s}italic_r start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT of 0.8 for knitted fabrics and 0.9 for woven fabrics. In addition, we assume that the yarns are naturally straight.

(15) 𝑪s(𝒑i,𝒑i+1,𝒒i)superscriptsubscript𝑪𝑠subscript𝒑𝑖subscript𝒑𝑖1subscript𝒒𝑖\displaystyle\bm{C}_{s}^{\prime}(\bm{p}_{i},\bm{p}_{i+1},\bm{q}_{i})bold_italic_C start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT , bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) =𝒑i+1𝒑irsl0𝒅3(𝒒i)wherers(0,1)absentsubscript𝒑𝑖1subscript𝒑𝑖subscript𝑟𝑠subscript𝑙0subscript𝒅3subscript𝒒𝑖wheresubscript𝑟𝑠01\displaystyle=\frac{\bm{p}_{i+1}-\bm{p}_{i}}{r_{s}l_{0}}-\bm{d}_{3}(\bm{q}_{i}% )\ \text{where}\ r_{s}\in(0,1)= divide start_ARG bold_italic_p start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT - bold_italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG start_ARG italic_r start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG - bold_italic_d start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ( bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) where italic_r start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT ∈ ( 0 , 1 )
𝑪b(𝒒i,𝒒i+1)superscriptsubscript𝑪𝑏subscript𝒒𝑖subscript𝒒𝑖1\displaystyle\bm{C}_{b}^{\prime}(\bm{q}_{i},\bm{q}_{i+1})bold_italic_C start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( bold_italic_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) =(𝒒¯i𝒒i+1)(𝒒¯i𝒒i+1).absentsubscript¯𝒒𝑖subscript𝒒𝑖1subscript¯𝒒𝑖subscript𝒒𝑖1\displaystyle=\frac{\Im\left(\bar{\bm{q}}_{i}\bm{q}_{i+1}\right)}{\Re\left(% \bar{\bm{q}}_{i}\bm{q}_{i+1}\right)}.= divide start_ARG roman_ℑ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG start_ARG roman_ℜ ( over¯ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_q start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) end_ARG .

Homogenization. We use the relaxed yarns from the first phase as the new rest state. From this, we compute the new rest lengths and curvatures. Subsequently, we tile the yarns on a deformed surface following Sec. 4.4 sampled from a range of deformations detailed in Sec. 4.6. In contrast to the compliant yarn constraints, the homogenization constraints are modeled as hard constraints in our simulations. We minimize the energy (Eq. 3) and record the resulting energy density:

(16) U¯yarnsubscript¯𝑈yarn\displaystyle\overline{U}_{\text{yarn}}over¯ start_ARG italic_U end_ARG start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT =1Amin𝐮~Uyarnwhere A=pxpyabsent1𝐴subscript~𝐮subscript𝑈yarnwhere 𝐴subscript𝑝𝑥subscript𝑝𝑦\displaystyle=\frac{1}{A}\min_{\tilde{\mathbf{u}}}U_{\text{yarn}}\ \text{where% }A=p_{x}p_{y}= divide start_ARG 1 end_ARG start_ARG italic_A end_ARG roman_min start_POSTSUBSCRIPT over~ start_ARG bold_u end_ARG end_POSTSUBSCRIPT italic_U start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT where italic_A = italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT
s.t.𝑪contactformulae-sequence𝑠𝑡subscript𝑪contact\displaystyle\ s.t.\ \bm{C}_{\text{contact}}italic_s . italic_t . bold_italic_C start_POSTSUBSCRIPT contact end_POSTSUBSCRIPT =𝑪RVE=𝑪RVE_Γ=𝑪zt=𝑪zt_Γ=𝟎.absentsubscript𝑪RVEsubscript𝑪RVE_Γsubscript𝑪ztsubscript𝑪zt_Γ0\displaystyle=\bm{C}_{\text{RVE}}=\bm{C}_{\text{RVE}\_\Gamma}=\bm{C}_{\text{zt% }}=\bm{C}_{\text{zt}\_\Gamma}=\bm{0}.= bold_italic_C start_POSTSUBSCRIPT RVE end_POSTSUBSCRIPT = bold_italic_C start_POSTSUBSCRIPT RVE _ roman_Γ end_POSTSUBSCRIPT = bold_italic_C start_POSTSUBSCRIPT zt end_POSTSUBSCRIPT = bold_italic_C start_POSTSUBSCRIPT zt _ roman_Γ end_POSTSUBSCRIPT = bold_0 .

Although we employ a compliant constraint formulation in our implementation, we only obtain the minimized energy from the final quasi-static state. Any alternative quasi-static solver would suffice.

4.6. Fitting

We collect the yarn responses from two distinct sets of experiments where we apply either in-plane or out-of-plane deformations. For membrane deformations, we sample pure weft/warp stretching (𝕀12=0subscript𝕀120\mathbb{I}_{12}=0blackboard_I start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT = 0, 𝕀111subscript𝕀111\mathbb{I}_{11}\neq 1blackboard_I start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT ≠ 1 and/or 𝕀221subscript𝕀221\mathbb{I}_{22}\neq 1blackboard_I start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT ≠ 1) and pure shearing (𝕀11=𝕀22=1subscript𝕀11subscript𝕀221\mathbb{I}_{11}=\mathbb{I}_{22}=1blackboard_I start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT = blackboard_I start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT = 1, 𝕀120subscript𝕀120\mathbb{I}_{12}\neq 0blackboard_I start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT ≠ 0) to avoid ambiguity in the off-diagonal entries of the transformation matrix. For bending deformations, in addition to sampling orthogonal sets of singly-bent surfaces where only one of 𝕀𝕀11𝕀subscript𝕀11\mathbb{II}_{11}blackboard_I blackboard_I start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT and 𝕀𝕀22𝕀subscript𝕀22\mathbb{II}_{22}blackboard_I blackboard_I start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT is non-zero, we also sample bending along the bias direction with |𝕀𝕀12|=|𝕀𝕀11|=|𝕀𝕀22|0𝕀subscript𝕀12𝕀subscript𝕀11𝕀subscript𝕀220|\mathbb{II}_{12}|=|\mathbb{II}_{11}|=|\mathbb{II}_{22}|\neq 0| blackboard_I blackboard_I start_POSTSUBSCRIPT 12 end_POSTSUBSCRIPT | = | blackboard_I blackboard_I start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT | = | blackboard_I blackboard_I start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT | ≠ 0. Given the minimized energy densities corresponding to all sampled surface deformations, we use the weighted least squares method to optimize the compliance matrices for stretching/shearing and bending for the shell model. Our weights follow a Gaussian distribution centered at the zero strain to produce a better fit at small strains as these are more common due to the limited extensibility of yarns. Given N𝑁Nitalic_N samples,

(17) ϵ=min𝜸italic-ϵsubscript𝜸\displaystyle\epsilon=\min_{\bm{\gamma}}italic_ϵ = roman_min start_POSTSUBSCRIPT bold_italic_γ end_POSTSUBSCRIPT i=0N1wi(U¯shelli(𝜸)U¯yarni)2wheresuperscriptsubscript𝑖0𝑁1subscript𝑤𝑖superscriptsuperscriptsubscript¯𝑈shell𝑖𝜸superscriptsubscript¯𝑈yarn𝑖2where\displaystyle\sum_{i=0}^{N-1}w_{i}(\overline{U}_{\text{shell}}^{i}(\bm{\gamma}% )-\overline{U}_{\text{yarn}}^{i})^{2}\ \text{where}∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N - 1 end_POSTSUPERSCRIPT italic_w start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( over¯ start_ARG italic_U end_ARG start_POSTSUBSCRIPT shell end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ( bold_italic_γ ) - over¯ start_ARG italic_U end_ARG start_POSTSUBSCRIPT yarn end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT where
U¯shelli(𝜸)superscriptsubscript¯𝑈shell𝑖𝜸\displaystyle\overline{U}_{\text{shell}}^{i}(\bm{\gamma})over¯ start_ARG italic_U end_ARG start_POSTSUBSCRIPT shell end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ( bold_italic_γ ) =1A(Ustretchi+Ubendi)absent1𝐴superscriptsubscript𝑈stretch𝑖superscriptsubscript𝑈bend𝑖\displaystyle=\frac{1}{A}(U_{\text{stretch}}^{i}+U_{\text{bend}}^{i})= divide start_ARG 1 end_ARG start_ARG italic_A end_ARG ( italic_U start_POSTSUBSCRIPT stretch end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT + italic_U start_POSTSUBSCRIPT bend end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT )
=12A𝑪¯sT𝜶¯s1𝑪¯s+12A𝑪¯bT𝜶¯b1𝑪¯b,absent12𝐴superscriptsubscript¯𝑪𝑠𝑇subscriptsuperscript¯𝜶1𝑠subscript¯𝑪𝑠12𝐴superscriptsubscript¯𝑪𝑏𝑇subscriptsuperscript¯𝜶1𝑏subscript¯𝑪𝑏\displaystyle=\frac{1}{2A}\overline{\bm{C}}_{s}^{T}\overline{\bm{\alpha}}^{-1}% _{s}\overline{\bm{C}}_{s}+\frac{1}{2A}\overline{\bm{C}}_{b}^{T}\overline{\bm{% \alpha}}^{-1}_{b}\overline{\bm{C}}_{b},= divide start_ARG 1 end_ARG start_ARG 2 italic_A end_ARG over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT + divide start_ARG 1 end_ARG start_ARG 2 italic_A end_ARG over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ,

𝜸=(s00,s11,s22,s01,b00,b11,b22)𝜸subscript𝑠00subscript𝑠11subscript𝑠22subscript𝑠01subscript𝑏00subscript𝑏11subscript𝑏22\bm{\gamma}=(s_{00},s_{11},s_{22},s_{01},b_{00},b_{11},b_{22})bold_italic_γ = ( italic_s start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT 01 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 00 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 11 end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT ) is the set of stiffness coefficients for stretch and bending, and 𝜶¯s1,𝜶¯b1,𝑪¯s,𝑪¯bsubscriptsuperscript¯𝜶1𝑠subscriptsuperscript¯𝜶1𝑏subscript¯𝑪𝑠subscript¯𝑪𝑏\overline{\bm{\alpha}}^{-1}_{s},\overline{\bm{\alpha}}^{-1}_{b},\overline{\bm{% C}}_{s},\overline{\bm{C}}_{b}over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT , over¯ start_ARG bold_italic_α end_ARG start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT , over¯ start_ARG bold_italic_C end_ARG start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT are defined in Section 3.3. We do not jointly sample membrane and bending deformations, i.e. 𝕀=𝟎𝕀0\mathbb{I}=\bm{0}blackboard_I = bold_0 if 𝕀𝕀𝟎𝕀𝕀0\mathbb{II}\neq\bm{0}blackboard_I blackboard_I ≠ bold_0 and vice versa.

5. Results

We estimate the shell parameters for five real fabrics comprised of different yarn structures and materials, as shown in Figure 5. We derive the yarn parameters for three distinct materials: wool, cotton and polyester, following Section 4.1, and provide the exact parameters and simulation setup in a supplementary document. The virtual cloth is visualized using a surface-based shading model (Zhu et al., 2023) with the required normal and tangent information being directly inferred from the relaxed woven and knitted patterns.

Refer to caption
Figure 5. The garments used in our results. The bottom row shows close-up images of the fabrics.
Refer to caption
Figure 6. Fabric analyzer (FAB) measures force exerted by the fabric as it is stretched. The machine is enhanced with ArUco markers (Bradski, 2000) to determine the ratio between stretch (horizontal length) and orthogonal compression (vertical length drawn in red).

Stretch Test. We validate our results against real world fabric stretch tests, where a piece of rectangular fabric is clamped at two ends, stretched and the resulting forces on the clamps measured. We use the commercially available fabric analyzer (FAB) (Browzwear, 2024) to perform stretch tests with 8×5858\times 58 × 5 cm and 2×5252\times 52 × 5 cm pieces of fabric cut along the warp, weft and bias (at 45 degrees) directions. We augment the FAB with additional markers to track the strain and capture the amount of visual deformation (compression) along the orthogonal direction as pictured in Fig. 6. We then reproduce the same scenario in simulation at the sheet level and plot the resulting boundary forces and compression ratios against real world measurements from the FAB as shown in Fig. 10. This test is critical in confirming that our pipeline can predict real fabric behaviors. Furthermore, we use the same stretch test to demonstrate in Fig. 7 how thicker yarns produce sheets with larger stresses, a phenomenon previously unexplored in homogenized cloth.

Refer to caption
Figure 7. The force plot of the stretch test for the estimated cotton jersey material (red) and the same material with 1.5×\times× thicker yarns (blue). As expected, the thicker material exhibits higher stress during stretching.

Drape Tests. The stretching quality of materials can be verified numerically by comparing force measurement as in Fig. 10 (right column). However, for bending, the measured forces are very small and require very sensitive force sensors. While the FAB produces some force output for bending tests, it is unreliable for some materials as reported by Browzwear’s software. To validate bending parameters, we drape a piece of cloth on a sphere, reconstruct geometries using a standard photogrammetry software (e.g. Agisoft Metashape) and compare the result to the same scenario reproduced in simulation as shown in Fig. 9. We also perform dra** against a wall and compare to captures of real drapes, demonstrated in the same figure.

Full Body Validation. To demonstrate how our models are realized in real world applications, we simulate clothing on a full body. An assembled virtual t-shirt and pants are draped on an animated body and compared to a reference video of the same outfit as shown in Fig. 9. Our simulated garments exhibit realistic folds and creases in response to the body movements.

6. Limitations and Future Work

Edge curling effects. While we use top-view captures for estimating compression ratio, they are insufficient for estimating in-plane compression data due to curling effects at the boundaries of the stretched fabric. The side view close up in Fig. 6 shows fabric at the edges bending out of the view from the top-view camera. To remedy this, we propose to add heterogeneous curved rest shape near the boundary and measure curling amount from a side-view capture. We believe this discrepancy is in part responsible for the mismatch in compression ratio shown in the left column in Fig. 10 for jersey fabrics.

[Uncaptioned image]

Internal friction. We apply a uniform friction coefficient for all materials in our yarn simulation, while the internal frictions of different materials are vastly divergent in real fabrics. Moreover, we do not estimate frictions between yarn fibres, which causes hysteresis effects in deformed fabrics. Consistent with previous work, we discover a considerable amount of yarn behavior caused by friction, especially in the knitted fabrics. Internal frictions also cause unwanted yarn sliding and lead to mismatches between simulated results and measured data, which explain the difference between compression ratios on cotton and polyester knits, since polyester yarns have fewer dangling fibers as shown in the inset.

Fabric materials. Our yarn-level parameter estimation assumes that the yarns are homogeneous, i.e. the entire fabric is 100% composed of the same yarn material. In practice, however, a blend of organic and synthetic materials is more commonly used in clothing such as pants to improve the durability while preserving comfort. Our experiment uses twill pants made of 98% cotton and 2% spandex, which exhibit higher contraction and flexural rigidity compared to pure cotton (Almetwally and Mourad, 2014), while our estimated shell parameters assume 100% cotton. Furthermore, the fabrication process alters the physical properties of the fabric. For example, manufacturing pants requires a finishing process of pressing and ironing, which changes the stretching/shrinkage properties of the underlying fabric at high temperatures (Islam et al., 2019). Both factors contribute to the significant quantitative mismatch between simulated and real twill pants in the stretch test. Future work entails distinguishing between different yarn materials in a composite via CT scanning and accounting for the post-processing stage in the yarn simulation.

7. Conclusion

We propose an end-to-end method for estimating shell model properties corresponding to real fabrics. Through simple measurements of the fabric swatches and close-up captures, we effectively obtain information about the yarn structures and physical properties such as yarn thickness. Combined with textile research literature that provide approximations for the tensile strengths of different materials, we initialize yarn-level models with properties derived from the real fabrics, which are preserved through our yarn-shell homogenization pipeline. Subsequently, we sample a range of surface deformations given by the first and second fundamental forms, record the responses of periodic yarn patterns on each sampled deformed surface in terms of energy density, and optimize all the stiffness parameters of an orthotropic StVK shell model, including off-diagonal bending terms representing warp-weft coupling. We validate our result quantitatively and visually against measurements and captures of real fabrics on stretch tests and drape experiments, and demonstrate a good quantitative approximation and qualitative match with real fabrics such as reproducing the anisotropic behaviors in satin and twill weaves, despite the lack of an inverse process. Our homogenized shells not only establish the key characteristics of each yarn pattern, but also showcase the effects of yarn material properties. Using only physics-based simulation, our method provides reasonably accurate initial estimates for parameter estimation pipelines requiring more comprehensive knowledge of real fabrics.

References

  • (1)
  • Almetwally and Mourad (2014) Alsaid Ahmed Almetwally and MM Mourad. 2014. Effects of spandex drawing ratio and weave structure on the physical properties of cotton/spandex woven fabrics. The Journal of the Textile Institute 105, 3 (2014), 235–245.
  • Baraff and Witkin (1998) David Baraff and Andrew Witkin. 1998. Large Steps in Cloth Simulation. In Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’98). Association for Computing Machinery, New York, NY, USA, 43–54. https://doi.org/10.1145/280814.280821
  • Bender et al. (2015) Jan Bender, Matthias Müller, and Miles Macklin. 2015. Position-Based Simulation Methods in Computer Graphics.. In Eurographics (tutorials). 8.
  • Bergou et al. (2008) Miklós Bergou, Max Wardetzky, Stephen Robinson, Basile Audoly, and Eitan Grinspun. 2008. Discrete elastic rods. In ACM SIGGRAPH 2008 papers. 1–12.
  • Bertails et al. (2006) Florence Bertails, Basile Audoly, Marie-Paule Cani, Bernard Querleux, Frédéric Leroy, and Jean-Luc Lévêque. 2006. Super-helices for predicting the dynamics of natural hair. ACM Transactions on Graphics (TOG) 25, 3 (2006), 1180–1187.
  • Bhat et al. (2003) Kiran S. Bhat, Christopher D. Twigg, Jessica K. Hodgins, Pradeep K. Khosla, Zoran Popović, and Steven M. Seitz. 2003. Estimating Cloth Simulation Parameters from Video. In Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation (San Diego, California) (SCA ’03). Eurographics Association, Goslar, DEU, 37–51.
  • Bouaziz et al. (2014) Sofien Bouaziz, Sebastian Martin, Tiantian Liu, Ladislav Kavan, and Mark Pauly. 2014. Projective Dynamics: Fusing Constraint Projections for Fast Simulation. 33, 4, Article 154 (jul 2014), 11 pages. https://doi.org/10.1145/2601097.2601116
  • Bradski (2000) G. Bradski. 2000. The OpenCV Library. Dr. Dobb’s Journal of Software Tools (2000).
  • Browzwear (2024) Browzwear. 2024. Fabric Analyzer (FAB) For Accurate Visualization | Browzwear. https://browzwear.com/products/fabric-analyzer
  • Browzwear (2024) Browzwear. 2024. v-stitcher. https://browzwear.com/products/v-stitcher. Accessed on January 2024.
  • Casafranca et al. (2020) Juan J Casafranca, Gabriel Cirio, Alejandro Rodríguez, Eder Miguel, and Miguel A Otaduy. 2020. Mixing yarns and triangles in cloth simulation. In Computer Graphics Forum, Vol. 39. Wiley Online Library, 101–110.
  • Chen et al. (2018) Hsiao-Yu Chen, Arnav Sastry, Wim M. van Rees, and Etienne Vouga. 2018. Physical simulation of environmentally induced thin shell deformation. ACM Trans. Graph. 37, 4 (2018). https://doi.org/10.1145/3197517.3201395
  • Cirio et al. (2014) Gabriel Cirio, Jorge Lopez-Moreno, David Miraut, and Miguel A Otaduy. 2014. Yarn-level simulation of woven cloth. ACM Transactions on Graphics (TOG) 33, 6 (2014), 1–11.
  • Cirio et al. (2015) Gabriel Cirio, Jorge Lopez-Moreno, and Miguel A Otaduy. 2015. Efficient simulation of knitted cloth using persistent contacts. In Proceedings of the 14th ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 55–61.
  • Cirio et al. (2016) Gabriel Cirio, Jorge Lopez-Moreno, and Miguel A Otaduy. 2016. Yarn-level cloth simulation with sliding persistent contacts. IEEE transactions on visualization and computer graphics 23, 2 (2016), 1152–1162.
  • CLO3D (2024) CLO3D. 2024. Marvelous Designer. https://www.marvelousdesigner.com/. Accessed on January 2024.
  • Clyde et al. (2017) David Clyde, Joseph Teran, and Rasmus Tamstorf. 2017. Modeling and data-driven parameter estimation for woven fabrics. In Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation. 1–11.
  • Fei et al. (2018) Yun Fei, Christopher Batty, Eitan Grinspun, and Changxi Zheng. 2018. A multi-scale model for simulating liquid-fabric interactions. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–16.
  • Feng et al. (2022) Xudong Feng, Wenchao Huang, Weiwei Xu, and Huamin Wang. 2022. Learning-based bending stiffness parameter estimation by a drape tester. ACM Transactions on Graphics (TOG) 41, 6 (2022), 1–16.
  • Islam et al. (2019) Shariful Islam, Shaikh Md Mominul Alam, and Shilpi Akter. 2019. The consequences of temperature on the shrinkage properties of cotton spandex woven fabric. Journal of Textiles and Polymers 7, 1 (2019), 25–29.
  • Jiang and Chen (2005) Y Jiang and Xiaogang Chen. 2005. Geometric and algebraic algorithms for modelling yarn in woven fabrics. Journal of the Textile Institute 96, 4 (2005), 237–245.
  • Kaldor et al. (2008) Jonathan M Kaldor, Doug L James, and Steve Marschner. 2008. Simulating knitted cloth at the yarn level. In ACM SIGGRAPH 2008 papers. 1–9.
  • Kugelstadt and Schömer (2016) Tassilo Kugelstadt and Elmar Schömer. 2016. Position and orientation based Cosserat rods.. In Symposium on Computer Animation. 169–178.
  • Larionov et al. (2022) Egor Larionov, Marie-Lena Eckert, Katja Wolff, and Tuur Stuyck. 2022. Estimating Cloth Elasticity Parameters Using Position-Based Simulation of Compliant Constrained Dynamics. arXiv preprint arXiv:2212.08790 (2022).
  • Leaf et al. (2018) Jonathan Leaf, Rundong Wu, Eston Schweickart, Doug L James, and Steve Marschner. 2018. Interactive design of periodic yarn-level cloth patterns. ACM Transactions on Graphics (TOG) 37, 6 (2018), 1–15.
  • Li et al. (2023) Yifei Li, Hsiao yu Chen, Egor Larionov, Nikolaos Sarafianos, Wojciech Matusik, and Tuur Stuyck. 2023. DiffAvatar: Simulation-Ready Garment Optimization with Differentiable Simulation. arXiv:2311.12194 [cs.CV]
  • Macklin et al. (2016) Miles Macklin, Matthias Müller, and Nuttapong Chentanez. 2016. XPBD: Position-Based Simulation of Compliant Constrained Dynamics. In Proceedings of the 9th International Conference on Motion in Games (Burlingame, California) (MIG ’16). Association for Computing Machinery, New York, NY, USA, 49–54. https://doi.org/10.1145/2994258.2994272
  • Macklin et al. (2014) Miles Macklin, Matthias Müller, Nuttapong Chentanez, and Tae-Yong Kim. 2014. Unified Particle Physics for Real-Time Applications. ACM Trans. Graph. 33, 4, Article 153 (jul 2014), 12 pages. https://doi.org/10.1145/2601097.2601152
  • Martin et al. (2010) Sebastian Martin, Peter Kaufmann, Mario Botsch, Eitan Grinspun, and Markus Gross. 2010. Unified simulation of elastic rods, shells, and solids. ACM Transactions on Graphics (TOG) 29, 4 (2010), 1–10.
  • Miguel et al. (2012) Eder Miguel, Derek Bradley, Bernhard Thomaszewski, Bernd Bickel, Wojciech Matusik, Miguel A Otaduy, and Steve Marschner. 2012. Data-driven estimation of cloth simulation models. In Computer Graphics Forum, Vol. 31. Wiley Online Library, 519–528.
  • Müller et al. (2007) Matthias Müller, Bruno Heidelberger, Marcus Hennix, and John Ratcliff. 2007. Position based dynamics. Journal of Visual Communication and Image Representation 18, 2 (2007), 109–118.
  • Ni et al. (2023) Xingyu Ni, Xuwen Chen, Cheng Yu, Bin Wang, and Baoquan Chen. 2023. Simulating Parametric Thin Shells by Bicubic Hermite Elements. arXiv preprint arXiv:2312.14839 (2023).
  • Remion et al. (1999) Yannick Remion, Jean-Michel Nourrit, and Didier Gillard. 1999. Dynamic animation of spline like objects. WSCG.
  • Schumacher et al. (2018) Christian Schumacher, Steve Marschner, Markus Gross, and Bernhard Thomaszewski. 2018. Mechanical characterization of structured sheet materials. ACM Transactions on Graphics (TOG) 37, 4 (2018), 1–15.
  • Serra et al. (2019) Albert Serra, Quim Tarrés, Miquel-Àngel Chamorro, Jordi Soler, Pere Mutjé, Francesc X Espinach, and Fabiola Vilaseca. 2019. Modeling the stiffness of coupled and uncoupled recycled cotton fibers reinforced polypropylene composites. Polymers 11, 10 (2019), 1725.
  • Sperl et al. (2020) Georg Sperl, Rahul Narain, and Chris Wojtan. 2020. Homogenized Yarn-Level Cloth. ACM Trans. Graph. 39, 4, Article 48 (aug 2020), 16 pages. https://doi.org/10.1145/3386569.3392412
  • Sperl et al. (2021) Georg Sperl, Rahul Narain, and Chris Wojtan. 2021. Mechanics-Aware Deformation of Yarn Pattern Geometry. ACM Trans. Graph. 40, 4, Article 168 (jul 2021), 11 pages. https://doi.org/10.1145/3450626.3459816
  • Sperl et al. (2022) Georg Sperl, Rosa M. Sánchez-Banderas, Manwen Li, Chris Wojtan, and Miguel A. Otaduy. 2022. Estimation of Yarn-Level Simulation Models for Production Fabrics. 41, 4, Article 65 (jul 2022), 15 pages. https://doi.org/10.1145/3528223.3530167
  • Spillmann and Teschner (2007) Jonas Spillmann and Matthias Teschner. 2007. CoRdE: Cosserat rod elements for the dynamic simulation of one-dimensional elastic objects. In Proceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation. 63–72.
  • Stuyck (2022) Tuur Stuyck. 2022. Cloth simulation for computer graphics. Springer Nature.
  • Style3D (2024) Style3D. 2024. Style3D. https://www.linctex.com/. Accessed on January 2024.
  • Wang et al. (2020) Bin Wang, Yuanmin Deng, Paul Kry, Uri Ascher, Hui Huang, and Baoquan Chen. 2020. Learning elastic constitutive material and dam** models. In Computer Graphics Forum, Vol. 39. Wiley Online Library, 81–91.
  • Wang et al. (2011) Huamin Wang, James F O’Brien, and Ravi Ramamoorthi. 2011. Data-driven elastic models for cloth: modeling and measurement. ACM transactions on graphics (TOG) 30, 4 (2011), 1–12.
  • Weischedel et al. (2012) C. Weischedel, A. Tuganov, T. Hermansson, J. Linn, and M. Wardetzky. 2012. Construction of discrete shell models by geometric finite differences. Technical Report 220. Fraunhofer (ITWM). [23] pages. https://nbn-resolving.de/urn:nbn:de:hbz:386-kluedo-33227
  • Wen and Barbič (2023) Jiahao Wen and Jernej Barbič. 2023. Kirchhoff-Love Shells with Arbitrary Hyperelastic Materials. ACM Trans. Graph. 42, 6 (2023). https://doi.org/10.1145/3618405
  • Wu et al. (2020) Rundong Wu, Joy Xiaoji Zhang, Jonathan Leaf, Xinru Hua, Ante Qu, Claire Harvey, Emily Holtzman, Joy Ko, Brooks Hagan, Doug L James, et al. 2020. Weavecraft: an interactive design and simulation tool for 3D weaving. ACM Trans. Graph. 39, 6 (2020), 210–1.
  • Yuksel et al. (2012) Cem Yuksel, Jonathan M Kaldor, Doug L James, and Steve Marschner. 2012. Stitch meshes for modeling knitted clothing with yarn-level detail. ACM Transactions on Graphics (TOG) 31, 4 (2012), 1–12.
  • Zhu et al. (2023) Junqiu Zhu, Adrian Jarabo, Carlos Aliaga, Ling-Qi Yan, and Matt Jen-Yuan Chiang. 2023. A Realistic Surface-based Cloth Rendering Model. In ACM SIGGRAPH 2023 Conference Proceedings. 1–9.
Figure 8. We show two different drape setups where we compare simulated results to a real reference, one where the swatch is draped on a sphere and a second one where the top corners are fixed. Given the use of very limited information about the fabrics, we do not expect our drapes to match the reference exactly. However, our estimated materials produce qualitatively similar results to the references such as highly anisotropic bending in satin and twill fabrics, and are noticeably distinct for different material types.
Refer to caption
Refer to caption
Figure 8. We show two different drape setups where we compare simulated results to a real reference, one where the swatch is draped on a sphere and a second one where the top corners are fixed. Given the use of very limited information about the fabrics, we do not expect our drapes to match the reference exactly. However, our estimated materials produce qualitatively similar results to the references such as highly anisotropic bending in satin and twill fabrics, and are noticeably distinct for different material types.
Figure 9. Full body cloth simulation of the cotton twill pants and polyester jersey t-shirt with parameters estimated using our pipeline. The simulated pants exhibit dramatic creases in poses 3, 4 and 5 matching the reference. The simulated T-shirt exerts fairly natural wrinkles in response to the arm movements and body twists, which are most evident in poses 3 and 5.
Refer to caption
Figure 10. Compression ratio (left column) and boundary force (right column) plots for 5 different materials comparing captured data from the FAB (red dots) against shell simulation results (solid blue curves). It is remarkable to see that simulated shell materials capture the key characteristics of yarn structures such as decreased stiffness/increase compression ratio in the bias direction for woven patterns. In some cases like the cotton jersey t-shirt, the compression ratio (determined by the slope of the curve) matched the data remarkably well, in spite of there being no inverse process to match fabric measurements in our pipeline.