This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Optimizing Parameters for Static Equilibrium of Discrete Elastic Rods with Active-Set Cholesky

Tetsuya Takahashi and Christopher Batty
Abstract

We propose a parameter optimization method for achieving static equilibrium of discrete elastic rods. Our method simultaneously optimizes material stiffness and rest shape parameters under box constraints to exactly enforce zero net force while avoiding stability issues and violations of physical laws. For efficiency, we split our constrained optimization problem into primal and dual subproblems via the augmented Lagrangian method, while handling the dual subproblem via simple vector updates. To efficiently solve the box-constrained primal subproblem, we propose a new active-set Cholesky preconditioner. Our method surpasses prior work in generality, robustness, and speed.

Index Terms:
Parameter optimization, hair simulation, inverse problem, active-set method

I Introduction

When modeling deformable objects or fabricating elastic materials, sagging under gravity or external loads is a well-known problem. This behavior arises because gravity is often implicitly considered during modeling but simulators typically neglect it during initialization [1, 2, 3, 4, 5]. While stiffening materials can reduce such sagging, it alters the dynamic response of the elastic material. Alternatively, modifying rest shape parameters can achieve static equilibrium although substantial rest shape changes can introduce stability problems or increase the likelihood of undesirable rest configurations.

In this paper, we focus on elastic objects with one-dimensional structures (e.g., hair, cables, strands, etc.). We employ Discrete Elastic Rods (DER) [6, 7] for strand simulation due to their generality, flexibility, and efficiency, as adopted in various applications with forward simulations [8, 9, 10, 11] and inverse problems [2, 12, 13, 14].

To address the sagging problem, we propose a new parameter optimization method that is guaranteed (at solver convergence) to achieve static equilibrium of DER-based strands. Our method simultaneously optimizes rest shape and material stiffness parameters while minimizing parameter changes and respecting their box constraints. We formulate our problem as a constrained minimization and decompose it into primal and dual subproblems via the augmented Lagrangian method (ALM) [15], addressing the primal subproblem with a Newton-type optimizer and the dual subproblem via vector updates. To efficiently and accurately handle the primal subproblem, we take the box constraints into account and solve the symmetric positive definite (SPD) inner systems using a variant of Conjugate Gradient (CG) with active sets, i.e., Modified Proportioning with Reduced Gradient Projections (MPRGP) [16]. Additionally, we propose a new preconditioner based on a Cholesky-type solver with active sets to accelerate the convergence of MPRGP. Figure 1 shows our method in action.

Figure 1: Our method optimizes material stiffness and rest shape parameters to achieve static equilibrium for DER-based strands. It preserves the original hairstyle rather than sagging, demonstrates natural dynamic strand behaviors in response to prescribed motions of the root vertices, and eventually restores the strands to their initial configuration. Our parameter optimization required 713 seconds for 3.2k strands; forward simulation without collision handling took 25 seconds per frame.

II Related Work

II-A Elastic Rod Simulation

To capture bending and twisting of one-dimensional elastic strand structures, Pai [17] introduced the Cosserat theory into graphics, which was later extended to dynamical systems [18]. The Cosserat theory has since been adopted within position-based dynamics [19] and further extended with quaternions [20, 4], volume constraints [21], and projective dynamics [22]. Instead of evolving edge rotations, Shi et al. [23] proposed using a volume-like torsion energy to capture twisting effects. Curvature-based approaches were also presented to capture elastic rod dynamics with a smaller number of degrees of freedom (DOFs) [24, 25]. From the various methods for simulating elastic strands, we selected DER [6, 7] because it can handle general bending and twisting cases with few DOFs.

II-B Sag-Free Simulation

To achieve sag-free simulations (or equivalently, static equilibrium), one common approach is to enforce zero net forces in the dynamical system. Hadap [26] proposed using inverse dynamics to solve nonlinear force equations for reduced multibody systems, although such methods may not necessarily be applicable to maximal coordinate systems. To solve nonlinear force equations, the Asymptotic Numerical Method (ANM) was employed, achieving faster convergence compared to Newton-type optimizers [27, 28], although it remains unclear how to incorporate box constraints, which help prevent stability problems and violations of physical laws. Curvature-based solvers have also been employed, since they need fewer DOFs to represent elastic rod dynamics. Derouet-Jourdan et al. [29] presented a method for achieving static equilibrium of curvature-based elastic strands [24] and extended their work with frictional contacts [30]. The curvature-based formulations have extensively been used for inverse problems to model, design, and fabricate elastic rods [31, 32, 33, 34].

To achieve static equilibrium in more general contexts, Twigg and Kačić-Alesić proposed minimizing the force norm by optimizing rest shape parameters in mass-spring systems consisting of one-dimensional elements [1]. Takahashi and Batty extended their approach to DER [5], in work closely related to ours. We clarify key differences in Sec II-C. Rest shape optimization has also been applied to two-dimensional sheet-like structures [35] and three-dimensional deformable volumes [36, 37]. To enforce zero-net-force constraints, adjoint methods have been extensively used [2, 38, 12]. While these methods are efficient, their implementation tends to be significantly more complicated because they involve Hessians of objective terms due to differentiation of the nonlinear force constraints. Given that DER Hessian treatments are the subject of ongoing study [12, 23], we formulate our problem without explicitly incorporating the Hessian into the parameter optimization. While finite differences could bypass this complexity [39], they are known to be significantly slower than optimization with analytical gradients.

As an alternative, Hsu et al. [3, 4] proposed a global-local initialization method that first computes global forces to achieve static equilibrium and then adjusts local elements to generate such forces. However, this approach would require excessive stiffening of materials and is applicable only to simulation approaches where local force elements can exclusively be defined. As such, the global-local initialization is not applicable to DER, as discussed by Takahashi and Batty [5].

II-C Differences from [5]

There are several key differences between our work and the closely related prior work by Takahashi and Batty [5]. Their approach optimizes only the rest shape parameters and may fail to achieve zero net forces. By contrast, our method simultaneously optimizes both the material stiffness and rest shape parameters while enforcing zero net forces as a hard constraint, ensuring static equilibrium at solver convergence. We also reduce the computational cost of parameter optimization in two ways. First, we order the optimization parameters in an interleaved manner to yield a banded system, leveraging the one-dimensional structure of strands, which eliminates the need for matrix reordering in Cholesky solvers. Second, by considering the overlapping force spaces with 4D curvatures [6, 9], we include only two rest curvature variables per vertex, reducing the DOF count in the optimization (see Sec. IV for details). Moreover, instead of relying on penalty-based approaches for box constraints [5], we utilize an active-set-based iterative solver, MPRGP [16], to enforce box constraints precisely. We also propose a new active-set Cholesky preconditioner to accelerate the convergence of MPRGP.

III Discrete Elastic Rods Preliminary

For completeness, we briefly summarize key details of the DER formulation [6, 7] before explaining our parameter optimization method (Sec. IV) and active-set Cholesky preconditioner (Sec. V-A). In our framework, we exclude contacts and thus process each strand independently, focusing below on a single strand.

Given a strand discretized into NN vertices with positions 𝐱=[𝐱0T,,𝐱N1T]T3N\mathbf{x}=[\mathbf{x}_{0}^{T},\ldots,\mathbf{x}_{N-1}^{T}]^{T}\in\mathbb{R}^{3N} and N1N-1 edges with angles 𝜽=[𝜽0,,𝜽N2]TN1\bm{\theta}=[\bm{\theta}_{0},\ldots,\bm{\theta}_{N-2}]^{T}\in\mathbb{R}^{N-1}, the generalized positions can be defined by interleaving vertex and edge variables as 𝐪=[𝐱0T,𝜽0,,𝜽N2,𝐱N1T]T4N1\mathbf{q}=[\mathbf{x}_{0}^{T},\bm{\theta}_{0},\ldots,\bm{\theta}_{N-2},\mathbf{x}_{N-1}^{T}]^{T}\in\mathbb{R}^{4N-1}. This arrangement leads to a banded Hessian due to locally defined DER objectives and time-parallel transport [7]. For simplicity, we assume a strand with a perfectly circular cross-section and uniform radius rr. The root end of the strand is minimally clamped, fixing 𝐱0,𝜽0\mathbf{x}_{0},\bm{\theta}_{0}, and 𝐱1\mathbf{x}_{1}, which yields 4N84N-8 active DOFs [5].

We define a minimization problem for a forward simulation step with a DER objective E(𝐪)E(\mathbf{q}) [5] as 𝐪=argmin𝐪E(𝐪)\mathbf{q}=\operatorname*{arg\,min}_{\mathbf{q}}E(\mathbf{q}), where E(𝐪)=Ein(𝐪)+Est(𝐪)+Ebe(𝐪)+Etw(𝐪)E(\mathbf{q})=E_{\mathrm{in}}(\mathbf{q})+E_{\mathrm{st}}(\mathbf{q})+E_{\mathrm{be}}(\mathbf{q})+E_{\mathrm{tw}}(\mathbf{q}), and Ein(𝐪)E_{\mathrm{in}}(\mathbf{q}), Est(𝐪)E_{\mathrm{st}}(\mathbf{q}), Ebe(𝐪)E_{\mathrm{be}}(\mathbf{q}), and Etw(𝐪)E_{\mathrm{tw}}(\mathbf{q}) represent inertia, stretching, bending, and twisting objectives, respectively.

III-A Inertia

We define the inertia objective and its gradient as follows:

Ein(𝐪)=12Δt2𝐪𝐪𝐌2,Ein(𝐪)=𝐌Δt2(𝐪𝐪),\displaystyle E_{\mathrm{in}}(\mathbf{q})=\frac{1}{2\Delta t^{2}}\left\lVert\mathbf{q}-\mathbf{q}^{*}\right\rVert^{2}_{\mathbf{M}},\nabla E_{\mathrm{in}}(\mathbf{q})=\frac{\mathbf{M}}{\Delta t^{2}}(\mathbf{q}-\mathbf{q}^{*}), (1)

where 𝐪=𝐪t+Δt𝐪˙t+Δt2𝐌1𝐟ext\mathbf{q}^{*}=\mathbf{q}^{t}+\Delta t\mathbf{\dot{q}}^{t}+\Delta t^{2}\mathbf{M}^{-1}\mathbf{f}_{\mathrm{ext}}, 𝐪t\mathbf{q}^{t} and 𝐪˙t\mathbf{\dot{q}}^{t} denote the generalized positions and velocities at time tt, respectively, Δt\Delta t time step size, 𝐌\mathbf{M} a diagonal generalized mass matrix [7, 40], and 𝐟ext\mathbf{f}_{\mathrm{ext}} generalized external forces.

III-B Stretching

We define the stretching energy [7] as Est(𝐪)=i=1N2Est,i(𝐱i,𝐱i+1)E_{\mathrm{st}}(\mathbf{q})=\sum_{i=1}^{N-2}E_{\mathrm{st},i}(\mathbf{x}_{i},\mathbf{x}_{i+1}), where Est,i(𝐱i,𝐱i+1)E_{\mathrm{st},i}(\mathbf{x}_{i},\mathbf{x}_{i+1}) is given by

Est,i(𝐱i,𝐱i+1)=12(s𝜶iπr2𝐥¯i)(𝐥i𝐥¯i)2,\displaystyle E_{\mathrm{st},i}(\mathbf{x}_{i},\mathbf{x}_{i+1})=\frac{1}{2}\left(\frac{s\bm{\alpha}_{i}\pi r^{2}}{\mathbf{\bar{l}}_{i}}\right)(\mathbf{l}_{i}-\mathbf{\bar{l}}_{i})^{2}, (2)

with ss denoting a global constant scalar that scales stiffness parameters, 𝜶i\bm{\alpha}_{i} as the stiffness parameter for stretching on edge ii, 𝐥i=𝐱i+1𝐱i2\mathbf{l}_{i}=\left\lVert\mathbf{x}_{i+1}-\mathbf{x}_{i}\right\rVert_{2} representing the length of edge ii, and 𝐥¯i\mathbf{\bar{l}}_{i} as its rest length. The gradient can be computed as

𝐱i+1Est,i(𝐱i,𝐱i+1)\displaystyle\nabla_{\mathbf{x}_{i+1}}E_{\mathrm{st},i}(\mathbf{x}_{i},\mathbf{x}_{i+1}) =𝐱iEst,i(𝐱i,𝐱i+1)\displaystyle=-\nabla_{\mathbf{x}_{i}}E_{\mathrm{st},i}(\mathbf{x}_{i},\mathbf{x}_{i+1}) (3)
=s𝜶iπr2(𝐥i𝐥¯i11)𝐭i,\displaystyle=s\bm{\alpha}_{i}\pi r^{2}(\mathbf{l}_{i}\mathbf{\bar{l}}_{i}^{-1}-1)\mathbf{t}_{i}, (4)

where 𝐭i=𝐱i+1𝐱i𝐥i\mathbf{t}_{i}=\frac{\mathbf{x}_{i+1}-\mathbf{x}_{i}}{\mathbf{l}_{i}} denotes the unit tangent vector of edge ii.

III-C Bending

We define the bending objective [6, 9] as Ebe(𝐪)=i=1N2Ebe,i(𝐲i)E_{\mathrm{be}}(\mathbf{q})=\sum_{i=1}^{N-2}E_{\mathrm{be},i}(\mathbf{y}_{i}), where Ebe,i(𝐲i)E_{\mathrm{be},i}(\mathbf{y}_{i}) is given by

Ebe,i(𝐲i)=12(s𝜷iπr44(𝐥¯i1+𝐥¯i))𝜿i𝜿¯i22,\displaystyle E_{\mathrm{be},i}(\mathbf{y}_{i})=\frac{1}{2}\left(\frac{s\bm{\beta}_{i}\pi r^{4}}{4(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)\left\lVert\bm{\kappa}_{i}-\bm{\bar{\kappa}}_{i}\right\rVert_{2}^{2}, (5)

and 𝐲i=(𝐱i1T,𝜽i1,𝐱iT,𝜽i,𝐱i+1T)T11\mathbf{y}_{i}=(\mathbf{x}_{i-1}^{T},\bm{\theta}_{i-1},\mathbf{x}_{i}^{T},\bm{\theta}_{i},\mathbf{x}_{i+1}^{T})^{T}\in\mathbb{R}^{11}, 𝜷i\bm{\beta}_{i} denotes the bending stiffness at vertex ii, and 𝜿i\bm{\kappa}_{i} and 𝜿¯i\bm{\bar{\kappa}}_{i} are the four-dimensional curvature and rest curvature, respectively [6, 9]. (While two-dimensional curvatures and rest curvatures can be employed with averaged material frames [7], this method has been shown to inadequately evaluate strand bending due to non-unit averaged material frames [41, 12].) The 11-dimensional gradient of (5) is given by [5]

Ebe,i(𝐲i)=(s𝜷iπr44(𝐥¯i1+𝐥¯i))𝐉cu,iT(𝜿i𝜿¯i),\displaystyle\nabla E_{\mathrm{be},i}(\mathbf{y}_{i})=\left(\frac{s\bm{\beta}_{i}\pi r^{4}}{4(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)\mathbf{J}_{\mathrm{cu},i}^{T}(\bm{\kappa}_{i}-\bm{\bar{\kappa}}_{i}), (6)

where 𝐉cu,i4×11\mathbf{J}_{\mathrm{cu},i}\in\mathbb{R}^{4\times 11} denotes the Jacobian of 𝜿i\bm{\kappa}_{i} with respect to 𝐲i\mathbf{y}_{i}. Here, 𝐉cu,iT(𝜿i𝜿¯i)=j=03(𝜿i,j𝜿¯i,j)𝜿i,j\mathbf{J}_{\mathrm{cu},i}^{T}(\bm{\kappa}_{i}-\bm{\bar{\kappa}}_{i})=\sum_{j=0}^{3}(\bm{\kappa}_{i,j}-\bm{\bar{\kappa}}_{i,j})\nabla\bm{\kappa}_{i,j}, where 𝜿i,j\bm{\kappa}_{i,j} denotes the jjth entry of 𝜿i\bm{\kappa}_{i}.

III-D Twisting

We define the twisting objective [7, 40] as Etw(𝐪)=i=1N2Etw,i(𝐲i)E_{\mathrm{tw}}(\mathbf{q})=\sum_{i=1}^{N-2}E_{\mathrm{tw},i}(\mathbf{y}_{i}), where Etw,i(𝐲i)E_{\mathrm{tw},i}(\mathbf{y}_{i}) is given by

Etw,i(𝐲i)=12(s𝜸iπr4(𝐥¯i1+𝐥¯i))(𝐦i𝐦¯i)2,\displaystyle E_{\mathrm{tw},i}(\mathbf{y}_{i})=\frac{1}{2}\left(\frac{s\bm{\gamma}_{i}\pi r^{4}}{(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)(\mathbf{m}_{i}-\mathbf{\bar{m}}_{i})^{2}, (7)

with 𝜸i\bm{\gamma}_{i} representing the twisting stiffness parameter, and 𝐦i\mathbf{m}_{i} and 𝐦¯i\mathbf{\bar{m}}_{i} the twist (including reference twist [7, 40]) and rest twist, respectively. The 11-dimensional gradient of (7) is

Etw,i(𝐲i)=(s𝜸iπr4(𝐥¯i1+𝐥¯i))(𝐦i𝐦¯i)𝐦i.\displaystyle\nabla E_{\mathrm{tw},i}(\mathbf{y}_{i})=\left(\frac{s\bm{\gamma}_{i}\pi r^{4}}{(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)(\mathbf{m}_{i}-\mathbf{\bar{m}}_{i})\nabla\mathbf{m}_{i}. (8)

IV Parameter Optimization

We simultaneously optimize parameters of the rest shape (𝐥¯,𝜿¯,𝐦¯\mathbf{\bar{l}},\bm{\bar{\kappa}},\mathbf{\bar{m}}) and material stiffness (𝜶,𝜷,𝜸\bm{\alpha},\bm{\beta},\bm{\gamma}) to achieve static equilibrium of an elastic strand. While one typically specifies stiffness coefficients directly as 𝐜st(=s𝜶)\mathbf{c}_{\mathrm{st}}(=s\bm{\alpha}), 𝐜be(=s𝜷)\mathbf{c}_{\mathrm{be}}(=s\bm{\beta}), and 𝐜tw(=s𝜸)\mathbf{c}_{\mathrm{tw}}(=s\bm{\gamma}), we instead optimize 𝜶\bm{\alpha}, 𝜷\bm{\beta}, and 𝜸\bm{\gamma}. This approach addresses the significant scale differences between the stiffness coefficients (𝐜st\mathbf{c}_{\mathrm{st}}, 𝐜be\mathbf{c}_{\mathrm{be}}, 𝐜tw\mathbf{c}_{\mathrm{tw}} on the order of 10910^{9} [7, 40]) and rest shape parameters (𝐥¯,𝜿¯,𝐦¯\mathbf{\bar{l}},\bm{\bar{\kappa}},\mathbf{\bar{m}} up to 10), enabling stable convergence of numerical optimizers and mitigating numerical issues. To ensure similar value scales, we initialize the stiffness scaling constant ss as s=13(N2)i=1N2(𝐜st,i+𝐜be,i+𝐜tw,i)s=\frac{1}{3(N-2)}\sum_{i=1}^{N-2}(\mathbf{c}_{\mathrm{st},i}+\mathbf{c}_{\mathrm{be},i}+\mathbf{c}_{\mathrm{tw},i}), and subsequently set 𝜶=𝐜st/s\bm{\alpha}=\mathbf{c}_{\mathrm{st}}/s, 𝜷=𝐜be/s\bm{\beta}=\mathbf{c}_{\mathrm{be}}/s, and 𝜸=𝐜tw/s\bm{\gamma}=\mathbf{c}_{\mathrm{tw}}/s. While equivalent formulations could be derived through proper scaling of (9) and (10), our change of variables ensures consistent scales in the Jacobians (see Sec. IV-E), thus avoiding catastrophic cancellation and enhancing numerical stability.

Exploiting the one-dimensional structure and locally defined DER objectives of strands, we interleave the rest shape and stiffness parameters to ensure banded inner linear systems within Newton-type optimizers, similar to the approach used in forward simulations [7]. Additionally, we exclude 𝐥¯0\mathbf{\bar{l}}_{0} on the fixed edge from the parameter optimization [5].

Furthermore, we optimize only two rest curvature DOFs per vertex 𝜿¯i,0\bm{\bar{\kappa}}_{i,0} and 𝜿¯i,1\bm{\bar{\kappa}}_{i,1} while excluding 𝜿¯i,2\bm{\bar{\kappa}}_{i,2} and 𝜿¯i,3\bm{\bar{\kappa}}_{i,3}, in contrast to previous work [5]. This choice stems from the association of 𝜿¯i,0\bm{\bar{\kappa}}_{i,0} and 𝜿¯i,2\bm{\bar{\kappa}}_{i,2} with the second material frame, while 𝜿¯i,1\bm{\bar{\kappa}}_{i,1} and 𝜿¯i,3\bm{\bar{\kappa}}_{i,3} relate to the first [6]. Their overlapping force spaces lead to similar final values for 𝜿¯i,0\bm{\bar{\kappa}}_{i,0} and 𝜿¯i,2\bm{\bar{\kappa}}_{i,2} without expanding the force spaces necessary for static equilibrium. Including 𝜿¯i,2\bm{\bar{\kappa}}_{i,2} and 𝜿¯i,3\bm{\bar{\kappa}}_{i,3} would increase the optimization cost due to the additional DOFs. In practice, we synchronize these variables by setting 𝜿¯i,2=𝜿¯i,0\bm{\bar{\kappa}}_{i,2}=\bm{\bar{\kappa}}_{i,0} and 𝜿¯i,3=𝜿¯i,1\bm{\bar{\kappa}}_{i,3}=\bm{\bar{\kappa}}_{i,1} whenever 𝜿¯i,0\bm{\bar{\kappa}}_{i,0} and 𝜿¯i,1\bm{\bar{\kappa}}_{i,1} are updated. This approach effectively reduces the dimensionality of the rest curvature from 4D to 2D; however, we still use 4D rest curvatures in (5) to ensure the same dimensionality for curvature 𝜿\bm{\kappa} and rest curvature 𝜿¯\bm{\bar{\kappa}}.

Concretely, we define the optimization variable for the parameters as 𝐩=(𝜿¯1,0,𝜿¯1,1,𝜷1,𝐦¯1,𝜸1,𝐥¯1,𝜶1,,𝜿¯N2,0,𝜿¯N2,1,𝜷N2,𝐦¯N2,𝜸N2,𝐥¯N2,𝜶N2)T7N14\mathbf{p}=(\bm{\bar{\kappa}}_{1,0},\bm{\bar{\kappa}}_{1,1},{\bm{\beta}}_{1},\mathbf{\bar{m}}_{1},{\bm{\gamma}}_{1},\mathbf{\bar{l}}_{1},{\bm{\alpha}}_{1},\ldots,\\ \bm{\bar{\kappa}}_{N-2,0},\bm{\bar{\kappa}}_{N-2,1},{\bm{\beta}}_{N-2},\mathbf{\bar{m}}_{N-2},{\bm{\gamma}}_{N-2},\mathbf{\bar{l}}_{N-2},{\bm{\alpha}}_{N-2})^{T}\in\mathbb{R}^{7N-14}. Our central parameter optimization task is then formulated as a constrained minimization problem,

𝐩=argmin𝐩min𝐩𝐩max,𝐜(𝐩)=0R(𝐩),R(𝐩)=12𝐩𝐩0𝐖2,\displaystyle\mathbf{p}=\operatorname*{arg\,min}_{\mathbf{p}_{\mathrm{min}}\leq\mathbf{p}\leq\mathbf{p}_{\mathrm{max}},\mathbf{c}(\mathbf{p})=0}R(\mathbf{p}),\ R(\mathbf{p})=\frac{1}{2}\left\lVert\mathbf{p}-\mathbf{p}_{0}\right\rVert_{\mathbf{W}}^{2}, (9)

where 𝐩min\mathbf{p}_{\mathrm{min}} and 𝐩max\mathbf{p}_{\mathrm{max}} denote lower and upper bounds for 𝐩\mathbf{p} to ensure compliance with physical laws and limit significant parameter changes [5], and 𝐜(𝐩)\mathbf{c}(\mathbf{p}) (defined in Sec. IV-B) is a nonlinear hard constraint to enforce zero net forces. We define 𝐩0\mathbf{p}_{0} as the initial value for 𝐩\mathbf{p} before optimization, and R(𝐩)R(\mathbf{p}) acts as a regularizer to minimize the deviation of 𝐩\mathbf{p} from 𝐩0\mathbf{p}_{0} with a diagonal weight matrix 𝐖\mathbf{W}. Below, we assume Δt=1\Delta t=1 as it does not impact the optimization results [5].

IV-A Augmented Lagrangian Method

To handle the nonlinear constraints 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 in (9), we use ALM [15, 35] and define an augmented Lagrangian objective with a Lagrange multiplier 𝝀\bm{\lambda} and a penalty parameter ρ\rho as

L(𝐩,𝝀)=R(𝐩)+𝝀T𝐜(𝐩)+ρ2𝐜(𝐩)22.\displaystyle L(\mathbf{p},\bm{\lambda})=R(\mathbf{p})+\bm{\lambda}^{T}\mathbf{c}(\mathbf{p})+\frac{\rho}{2}\left\lVert\mathbf{c}(\mathbf{p})\right\rVert_{2}^{2}. (10)

We then reformulate the parameter optimization (9) as

𝐩,𝝀=argmin𝐩min𝐩𝐩maxL(𝐩,𝝀),\displaystyle\mathbf{p},\bm{\lambda}=\operatorname*{arg\,min}_{\mathbf{p}_{\mathrm{min}}\leq\mathbf{p}\leq\mathbf{p}_{\mathrm{max}}}L(\mathbf{p},\bm{\lambda}), (11)

which we optimize by iteratively solving primal and dual subproblems [15]. The primal subproblem, with fixed 𝝀k\bm{\lambda}^{k} for iteration index kk (initialized with 𝝀0=0\bm{\lambda}^{0}=0), is defined as

𝐩k+1=argmin𝐩min𝐩𝐩maxL(𝐩,𝝀k),\displaystyle\mathbf{p}^{k+1}=\operatorname*{arg\,min}_{\mathbf{p}_{\mathrm{min}}\leq\mathbf{p}\leq\mathbf{p}_{\mathrm{max}}}L(\mathbf{p},\bm{\lambda}^{k}), (12)

while the dual subproblem becomes a simple vector update:

𝝀k+1=𝝀k+ρ𝐜(𝐩k+1).\displaystyle\bm{\lambda}^{k+1}=\bm{\lambda}^{k}+\rho\mathbf{c}(\mathbf{p}^{k+1}). (13)

Thus, efficiently solving the primal subproblem (12) is crucial for fast parameter optimization.

IV-B Zero Net Force Constraints

Given the total force due to the DER objectives, represented as 𝐟(𝐩)=E(𝐪)\mathbf{f}(\mathbf{p})=-\nabla E(\mathbf{q}), it is natural to define 𝐜(𝐩)=𝐟(𝐩)\mathbf{c}(\mathbf{p})=\mathbf{f}(\mathbf{p}) to enforce zero net forces. However, in this case, the term ρ2𝐜(𝐩)22\frac{\rho}{2}\left\lVert\mathbf{c}(\mathbf{p})\right\rVert_{2}^{2} in (10) becomes equivalent to a quadratic penalty on the total force, which is numerically ill-conditioned and fails to accurately represent force contributions within the system [5]. Therefore, we define 𝐜(𝐩)\mathbf{c}(\mathbf{p}) as

𝐜(𝐩)=𝐌12𝐟(𝐩).\displaystyle\mathbf{c}(\mathbf{p})=\mathbf{M}^{-\frac{1}{2}}\mathbf{f}(\mathbf{p}). (14)

Consequently, L(𝐩,𝝀)L(\mathbf{p},\bm{\lambda}) in (10) can be rewritten as

L(𝐩,𝝀)=R(𝐩)+𝝀T𝐌12𝐟(𝐩)+ρ2𝐟(𝐩)𝐌12.\displaystyle L(\mathbf{p},\bm{\lambda})=R(\mathbf{p})+\bm{\lambda}^{T}\mathbf{M}^{-\frac{1}{2}}\mathbf{f}(\mathbf{p})+\frac{\rho}{2}\left\lVert\mathbf{f}(\mathbf{p})\right\rVert^{2}_{\mathbf{M}^{-1}}. (15)

This objective (15)\eqref{eq:augmented_lagrangian2} is numerically equivalent to the formulation proposed in [5] when considering only the rest shape parameters (excluding stiffness parameters) and setting 𝝀=0\bm{\lambda}=0. Thus, their approach, which treats 𝐜(𝐩)\mathbf{c}(\mathbf{p}) as a soft constraint, can be regarded as a subset of our method.

IV-C Box Constraints

We impose box constraints on the optimization parameters to prevent stability problems and to more accurately control the resulting strand dynamics. Specifically, we define 𝐥¯min𝐥¯𝐥¯max\mathbf{\bar{l}}_{\mathrm{min}}\leq\mathbf{\bar{l}}\leq\mathbf{\bar{l}}_{\mathrm{max}} (except for 𝐥¯0\mathbf{\bar{l}}_{0}), 𝜿¯min𝜿¯𝜿¯max\bm{\bar{\kappa}}_{\mathrm{min}}\leq\bm{\bar{\kappa}}\leq\bm{\bar{\kappa}}_{\mathrm{max}}, 𝐦¯min𝐦¯𝐦¯max\mathbf{\bar{m}}_{\mathrm{min}}\leq\mathbf{\bar{m}}\leq\mathbf{\bar{m}}_{\mathrm{max}}, 𝜶min𝜶𝜶max\bm{\alpha}_{\mathrm{min}}\leq\bm{\alpha}\leq\bm{\alpha}_{\mathrm{max}}, 𝜷min𝜷𝜷max\bm{\beta}_{\mathrm{min}}\leq\bm{\beta}\leq\bm{\beta}_{\mathrm{max}}, and 𝜸min𝜸𝜸max\bm{\gamma}_{\mathrm{min}}\leq\bm{\gamma}\leq\bm{\gamma}_{\mathrm{max}}. Unlike the penalty-based approach [5], which requires safety margins to mitigate the risk of violating physical laws (e.g., negative rest length and material parameters), we handle box constraints precisely using MPRGP [16]. Consequently, we set lower and upper bounds for 𝐥¯\mathbf{\bar{l}}, 𝜶\bm{\alpha}, 𝜷\bm{\beta}, and 𝜸\bm{\gamma} as

𝐥¯min\displaystyle\mathbf{\bar{l}}_{\mathrm{min}} =ϵ,𝐥¯max=,𝜶min=ϵ,𝜶max=,\displaystyle=\epsilon,\quad\mathbf{\bar{l}}_{\mathrm{max}}=\infty,\quad\bm{\alpha}_{\mathrm{min}}=\epsilon,\quad\bm{\alpha}_{\mathrm{max}}=\infty, (16)
𝜷min\displaystyle\bm{\beta}_{\mathrm{min}} =ϵ,𝜷max=,𝜸min=ϵ,𝜸max=,\displaystyle=\epsilon,\quad\bm{\beta}_{\mathrm{max}}=\infty,\quad\bm{\gamma}_{\mathrm{min}}=\epsilon,\quad\bm{\gamma}_{\mathrm{max}}=\infty, (17)

where ϵ\epsilon denotes a small positive value (we set ϵ=1010\epsilon=10^{-10}). While we set the upper bounds of stiffness parameters to \infty to ensure that static equilibrium is achievable [29, 3], finite values can be used if one prefers to avoid excessively stiff materials that may compromise static equilibrium.

We set the lower/upper bounds for 𝜿¯\bm{\bar{\kappa}} and 𝐦¯\mathbf{\bar{m}} as

𝜿¯min\displaystyle\bm{\bar{\kappa}}_{\mathrm{min}} =𝜿¯0μ𝐞be,𝜿¯max=𝜿¯0+μ𝐞be,\displaystyle=\bm{\bar{\kappa}}_{0}-\mu\mathbf{e}_{\mathrm{be}},\quad\bm{\bar{\kappa}}_{\mathrm{max}}=\bm{\bar{\kappa}}_{0}+\mu\mathbf{e}_{\mathrm{be}}, (18)
𝐦¯min\displaystyle\mathbf{\bar{m}}_{\mathrm{min}} =𝐦¯0η𝐞tw,𝐦¯max=𝐦¯0+η𝐞tw,\displaystyle=\mathbf{\bar{m}}_{0}-\eta\mathbf{e}_{\mathrm{tw}},\quad\mathbf{\bar{m}}_{\mathrm{max}}=\mathbf{\bar{m}}_{0}+\eta\mathbf{e}_{\mathrm{tw}}, (19)

where 𝜿¯0\bm{\bar{\kappa}}_{0} and 𝐦¯0\mathbf{\bar{m}}_{0} denote the initial rest curvature and rest twist (before parameter optimization), respectively, μ\mu and η\eta the allowed change for rest curvature and rest twist, respectively, and 𝐞be\mathbf{e}_{\mathrm{be}} and 𝐞tw\mathbf{e}_{\mathrm{tw}} vectors of all ones with the same dimensions as 𝜿¯\bm{\bar{\kappa}} and 𝐦¯\mathbf{\bar{m}}, respectively. The stable range of 𝜿¯\bm{\bar{\kappa}} and thus μ\mu can vary depending on simulation settings (e.g., strand geometry and material stiffness) [5]; we use μ=1\mu=1 by default based on our experiments. Additionally, since changes in rest twist are typically much smaller than those in rest curvature, we set η=μ/4\eta=\mu/4 to reduce the number of tunable parameters.

IV-D Newton-based Box-Constrained Optimization

We solve the primal, box-constrained nonlinear minimization subproblem (12) using a Newton-type optimizer. One could approximate the box constraints with a penalty objective to ensure fully unconstrained inner linear systems [15, 5], but penalty methods often require tedious parameter tuning to achieve acceptable results. Even with carefully tuned parameters, these methods may lead to compromises that violate box constraints. Therefore, instead of relying on penalty methods, we incorporate box constraints directly when computing the Newton directions, which is equivalent to solving box-constrained quadratic programs (BCQPs) [42].

The Newton direction Δ𝐩\Delta\mathbf{p} at k+1k+1 iteration can be computed by solving the following BCQP:

Δ𝐩k+1\displaystyle\Delta\mathbf{p}^{k+1} =argminΔ𝐩minkΔ𝐩Δ𝐩maxkF(Δ𝐩),\displaystyle=\operatorname*{arg\,min}_{\Delta\mathbf{p}_{\mathrm{min}}^{k}\leq\Delta\mathbf{p}\leq\Delta\mathbf{p}_{\mathrm{max}}^{k}}F(\Delta\mathbf{p}), (20)
F(Δ𝐩)\displaystyle F(\Delta\mathbf{p}) =12Δ𝐩T2L(𝐩k)Δ𝐩+Δ𝐩TL(𝐩k,𝝀k),\displaystyle=\frac{1}{2}\Delta\mathbf{p}^{T}\nabla^{2}L(\mathbf{p}^{k})\Delta\mathbf{p}+\Delta\mathbf{p}^{T}\nabla L(\mathbf{p}^{k},\bm{\lambda}^{k}), (21)

where Δ𝐩mink\Delta\mathbf{p}_{\mathrm{min}}^{k} and Δ𝐩maxk\Delta\mathbf{p}_{\mathrm{max}}^{k} denote lower and upper bounds for Δ𝐩\Delta\mathbf{p}, respectively. We omit 𝝀k\bm{\lambda}^{k} in the argument of 2L(𝐩)\nabla^{2}L(\mathbf{p}) as it is independent of 𝝀k\bm{\lambda}^{k} (23). Assuming the ideal step length of one [15], we have 𝐩min𝐩k+1=𝐩k+Δ𝐩k+1𝐩max\mathbf{p}_{\mathrm{min}}\leq\mathbf{p}^{k+1}=\mathbf{p}^{k}+\Delta\mathbf{p}^{k+1}\leq\mathbf{p}_{\mathrm{max}}, giving Δ𝐩mink=𝐩min𝐩k\Delta\mathbf{p}_{\mathrm{min}}^{k}=\mathbf{p}_{\mathrm{min}}-\mathbf{p}^{k} and Δ𝐩maxk=𝐩max𝐩k\Delta\mathbf{p}_{\mathrm{max}}^{k}=\mathbf{p}_{\mathrm{max}}-\mathbf{p}^{k} [42].

Given the augmented Lagrangian objective (15), we can compute its gradient as

L(𝐩,𝝀k)=R(𝐩)+𝐉T𝐌12𝝀k+ρ𝐉T𝐌1𝐟(𝐩),\displaystyle\nabla L(\mathbf{p},\bm{\lambda}^{k})=\nabla R(\mathbf{p})+\mathbf{J}^{T}\mathbf{M}^{-\frac{1}{2}}\bm{\lambda}^{k}+\rho\mathbf{J}^{T}\mathbf{M}^{-1}\mathbf{f}(\mathbf{p}), (22)

where R(𝐩)=𝐖(𝐩𝐩0)\nabla R(\mathbf{p})=\mathbf{W}(\mathbf{p}-\mathbf{p}_{0}), and we denote the Jacobian of 𝐟(𝐩)\mathbf{f}(\mathbf{p}) with respect to 𝐩\mathbf{p} by 𝐉(=𝐟(𝐩)𝐩)(4N8)×(7N14)\mathbf{J}\left(=\frac{\partial\mathbf{f}(\mathbf{p})}{\partial\mathbf{p}}\right)\in\mathbb{R}^{(4N-8)\times(7N-14)} (details are provided in Sec. IV-E). Note that we treat 𝐌\mathbf{M} (which is computed with the initial rest length 𝐥¯\mathbf{\bar{l}} [7, 40]) as constant, as 𝐌\mathbf{M} is introduced to properly scale forces (14).

Because the force formulations are primarily linear with respect to the rest shape and stiffness parameters, the second order derivatives of the forces with respect to 𝐩\mathbf{p} are mostly zero. An exception is the second order derivatives with respect to 𝐥¯\mathbf{\bar{l}}; however, these components would be projected to zero to ensure SPD inner systems and valid Newton descent directions [15]. Thus, using the exact Hessian with SPD projections would have only negligible benefits while increasing the implementation complexity and computational cost due to the involvement of third order tensors [5]. Therefore, we ignore the second order derivatives with respect to 𝐥¯\mathbf{\bar{l}} and approximate the Hessian in a Gauss-Newton style (excluding 𝝀\bm{\lambda} from arguments):

2L(𝐩)𝐖+ρ𝐉T𝐌1𝐉.\displaystyle\nabla^{2}L(\mathbf{p})\approx\mathbf{W}+\rho\mathbf{J}^{T}\mathbf{M}^{-1}\mathbf{J}. (23)

As this approximated Hessian is guaranteed to be SPD, we can solve the convex BCQP (20) using MPRGP [16], accelerated with our active-set Cholesky preconditioner (see Sec. V).

IV-E Forces and Jacobians

IV-E1 Inertia

Given the inertia force defined as 𝐟in=Ein(𝐪)\mathbf{f}_{\mathrm{in}}=-\nabla E_{\mathrm{in}}(\mathbf{q}) with 𝐪=𝐪t\mathbf{q}=\mathbf{q}^{t} and 𝐪˙t=0\mathbf{\dot{q}}^{t}=0 for a static equilibrium case, we have 𝐟in=𝐟ext\mathbf{f}_{\mathrm{in}}=\mathbf{f}_{\mathrm{ext}} and thus 𝐟in𝐩=0\frac{\partial\mathbf{f}_{\mathrm{in}}}{\partial\mathbf{p}}=0 [5].

IV-E2 Stretching

We define the stretching force of edge ii on vertex i+1i+1 as 𝐟st,i,i+1=𝐱i+1Est,i(𝐱i,𝐱i+1)\mathbf{f}_{\mathrm{st,i,i+1}}=-\nabla_{\mathbf{x}_{i+1}}E_{\mathrm{st,i}}(\mathbf{x}_{i},\mathbf{x}_{i+1}) (4), and define 𝐟st,i,i\mathbf{f}_{\mathrm{st,i,i}} analogously. Given the dependence of 𝐟st,i,i+1\mathbf{f}_{\mathrm{st,i,i+1}} and 𝐟st,i,i\mathbf{f}_{\mathrm{st,i,i}} on 𝐥¯i\mathbf{\bar{l}}_{i} and 𝜶i\bm{\alpha}_{i}, their Jacobians are

𝐟st,i,i+1𝐥¯i\displaystyle\frac{\partial\mathbf{f}_{\mathrm{st,i,i+1}}}{\partial\mathbf{\bar{l}}_{i}} =𝐟st,i,i𝐥¯i=s𝜶iπr2𝐥i𝐥¯i2𝐭i,\displaystyle=-\frac{\partial\mathbf{f}_{\mathrm{st,i,i}}}{\partial\mathbf{\bar{l}}_{i}}=s\bm{\alpha}_{i}\pi r^{2}\mathbf{l}_{i}\mathbf{\bar{l}}_{i}^{-2}\mathbf{t}_{i}, (24)
𝐟st,i,i+1𝜶i\displaystyle\frac{\partial\mathbf{f}_{\mathrm{st,i,i+1}}}{\partial\bm{\alpha}_{i}} =𝐟st,i,i𝜶i=sπr2(𝐥i𝐥¯i11)𝐭i.\displaystyle=-\frac{\partial\mathbf{f}_{\mathrm{st,i,i}}}{\partial\bm{\alpha}_{i}}=-s\pi r^{2}\left(\mathbf{l}_{i}\mathbf{\bar{l}}_{i}^{-1}-1\right)\mathbf{t}_{i}. (25)

IV-E3 Bending

We define the bending force according to (6) by 𝐟be,i=Ebe,i(𝐲i)\mathbf{f}_{\mathrm{be},i}=-\nabla E_{\mathrm{be},i}(\mathbf{y}_{i}). Given its dependence on 𝐥¯i1,𝐥¯i\mathbf{\bar{l}}_{i-1},\mathbf{\bar{l}}_{i}, 𝜿¯i,0,𝜿¯i,1\bm{\bar{\kappa}}_{i,0},\bm{\bar{\kappa}}_{i,1}, and 𝜷i\bm{\beta}_{i} while respecting the constraints 𝜿¯i,0=𝜿¯i,2\bm{\bar{\kappa}}_{i,0}=\bm{\bar{\kappa}}_{i,2} and 𝜿¯i,1=𝜿¯i,3\bm{\bar{\kappa}}_{i,1}=\bm{\bar{\kappa}}_{i,3}, the Jacobians are given (with j{0,1})j\in\{0,1\}) by

𝐟be,i𝐥¯i1\displaystyle\frac{\partial\mathbf{f}_{\mathrm{be},i}}{\partial\mathbf{\bar{l}}_{i-1}} =𝐟be,i𝐥¯i=(s𝜷iπr44(𝐥¯i1+𝐥¯i)2)𝐉cu,iT(𝜿i𝜿¯i),\displaystyle=\frac{\partial\mathbf{f}_{\mathrm{be},i}}{\partial\mathbf{\bar{l}}_{i}}=\left(\frac{s\bm{\beta}_{i}\pi r^{4}}{4(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})^{2}}\right)\mathbf{J}_{\mathrm{cu},i}^{T}(\bm{\kappa}_{i}-\bm{\bar{\kappa}}_{i}), (26)
𝐟be,i𝜿¯i,j\displaystyle\frac{\partial\mathbf{f}_{\mathrm{be},i}}{\partial\bm{\bar{\kappa}}_{i,j}} =(s𝜷iπr44(𝐥¯i1+𝐥¯i))(𝜿i,j+𝜿i,j+2),\displaystyle=\left(\frac{s\bm{\beta}_{i}\pi r^{4}}{4(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)(\nabla\bm{\kappa}_{i,j}+\nabla\bm{\kappa}_{i,j+2}), (27)
𝐟be,i𝜷i\displaystyle\frac{\partial\mathbf{f}_{\mathrm{be},i}}{\partial\bm{\beta}_{i}} =(sπr44(𝐥¯i1+𝐥¯i))𝐉cu,iT(𝜿i𝜿¯i).\displaystyle=-\left(\frac{s\pi r^{4}}{4(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)\mathbf{J}_{\mathrm{cu},i}^{T}(\bm{\kappa}_{i}-\bm{\bar{\kappa}}_{i}). (28)

IV-E4 Twisting

We define the twisting force as 𝐟tw,i=Etw,i(𝐲i)\mathbf{f}_{\mathrm{tw},i}=-\nabla E_{\mathrm{tw},i}(\mathbf{y}_{i}) (8). Given its dependence on 𝐥¯i1,𝐥¯i\mathbf{\bar{l}}_{i-1},\mathbf{\bar{l}}_{i}, 𝐦¯i\mathbf{\bar{m}}_{i}, and 𝜸i\bm{\gamma}_{i}, the Jacobians are given by

𝐟tw,i𝐥¯i1\displaystyle\frac{\partial\mathbf{f}_{\mathrm{tw},i}}{\partial\mathbf{\bar{l}}_{i-1}} =𝐟tw,i𝐥¯i=(s𝜸iπr4(𝐥¯i1+𝐥¯i)2)(𝐦i𝐦¯i)𝐦i,\displaystyle=\frac{\partial\mathbf{f}_{\mathrm{tw},i}}{\partial\mathbf{\bar{l}}_{i}}=\left(\frac{s\bm{\gamma}_{i}\pi r^{4}}{(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})^{2}}\right)(\mathbf{m}_{i}-\mathbf{\bar{m}}_{i})\nabla\mathbf{m}_{i}, (29)
𝐟tw,i𝐦¯i\displaystyle\frac{\partial\mathbf{f}_{\mathrm{tw},i}}{\partial\mathbf{\bar{m}}_{i}} =(s𝜸iπr4(𝐥¯i1+𝐥¯i))𝐦i,\displaystyle=\left(\frac{s\bm{\gamma}_{i}\pi r^{4}}{(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)\nabla\mathbf{m}_{i}, (30)
𝐟tw,i𝜸i\displaystyle\frac{\partial\mathbf{f}_{\mathrm{tw},i}}{\partial{\bm{\gamma}}_{i}} =(sπr4(𝐥¯i1+𝐥¯i))(𝐦i𝐦¯i)𝐦i.\displaystyle=-\left(\frac{s\pi r^{4}}{(\mathbf{\bar{l}}_{i-1}+\mathbf{\bar{l}}_{i})}\right)(\mathbf{m}_{i}-\mathbf{\bar{m}}_{i})\nabla\mathbf{m}_{i}. (31)

IV-F Algorithm and Implementation

Algorithm 1 outlines our parameter optimization method. To accelerate convergence and reduce the risk of converging to undesirable local minima, we use warm starting. We set ρ=106\rho=10^{6}, and use 10310^{3} and 10010^{0} for the stiffness and rest shape parts of diagonals in 𝐖\mathbf{W}, respectively, so that we prioritize achieving (in order) zero net forces, small changes in the stiffness parameters, and then rest shape parameters. We perform a single Newton iteration to solve our primal BCQP subproblem (12) as it serves as an inner problem within (11). To guarantee a decrease in the objective, we implement a backtracking line search [15]. The iterations are terminated when Δ𝐩2\left\lVert\Delta\mathbf{p}\right\rVert_{2} falls below a threshold ϵp(=108)\epsilon_{p}\ (=10^{-8}), iteration count exceeds kmax(=100)k_{\mathrm{max}}\ (=100), or backtracking line search fails.

Algorithm 1 Parameter Optimization
1:  Initialize generalized positions 𝐪\mathbf{q}, radius rr, stiffness coefficients 𝐜st\mathbf{c}_{\mathrm{st}}, 𝐜be\mathbf{c}_{\mathrm{be}}, 𝐜tw\mathbf{c}_{\mathrm{tw}}, length 𝐥\mathbf{l}, rest length 𝐥¯\mathbf{\bar{l}}, generalized mass matrix 𝐌\mathbf{M}, unit tangent vector 𝐭\mathbf{t}, reference and material frames, curvature 𝜿\bm{\kappa}, rest curvature 𝜿¯\bm{\bar{\kappa}}, twist 𝐦\mathbf{m}, rest twist 𝐦¯\mathbf{\bar{m}}, stiffness scaling ss, and material stiffness parameters 𝜶\bm{\alpha}, 𝜷\bm{\beta}, 𝜸\bm{\gamma}, penalty parameter ρ\rho, weight matrix 𝐖\mathbf{W}, Lagrange multiplier 𝝀k=0\bm{\lambda}^{k}=0, iteration index k=0k=0
2:  Set 𝐩0=𝐩\mathbf{p}_{0}=\mathbf{p} and compute 𝐩min\mathbf{p}_{\mathrm{min}} and 𝐩max\mathbf{p}_{\mathrm{max}}
3:  do
4:   Compute box constraints Δ𝐩mink\Delta\mathbf{p}_{\mathrm{min}}^{k} and Δ𝐩maxk\Delta\mathbf{p}_{\mathrm{max}}^{k}
5:   Compute L(𝐩k,𝝀k)\nabla L(\mathbf{p}^{k},\bm{\lambda}^{k}), 2L(𝐩k)\nabla^{2}L(\mathbf{p}^{k}) with (22) and (23)
6:   Solve 2L(𝐩k)Δ𝐩k+1=L(𝐩k,𝝀k)\nabla^{2}L(\mathbf{p}^{k})\Delta\mathbf{p}^{k+1}=-\nabla L(\mathbf{p}^{k},\bm{\lambda}^{k}) with Δ𝐩mink\Delta\mathbf{p}_{\mathrm{min}}^{k} and Δ𝐩maxk\Delta\mathbf{p}_{\mathrm{max}}^{k}
7:   Update to 𝐩k+1\mathbf{p}^{k+1} using backtracking line search with (15) and synchronization for 𝜿¯\bm{\bar{\kappa}}
8:   Update Lagrange multipliers with (13)
9:   k=k+1k=k+1
10:  while ϵp<Δ𝐩k+12\epsilon_{p}<\left\lVert\Delta\mathbf{p}^{k+1}\right\rVert_{2}, k<kmaxk<k_{\mathrm{max}}, &\& line search succeeds

V Box-Constrained Quadratic Program Solver

Box constraints are a specific type of inequality constraint that can be handled efficiently through active-set methods, without relying on barriers or penalties [15]. Since our BCQPs arise as primal subproblems within the constrained nonlinear minimization (11), we opt to solve them with a prescribed level of accuracy suitable for inexact Newton-like methods. This approach enables us to conserve computational resources by avoiding unnecessary precision [15]. Instead of employing direct solvers with active sets (e.g., Lemke’s method or Dantzig’s simplex algorithm), we prefer iterative methods that permit early termination. Given the stiff yet SPD inner systems, we employ MPRGP [16] and propose an effective new preconditioner based on full Cholesky factorization and triangular solves with active sets, leveraging the advantages of the banded system structures. We refer to this scheme as active-set Cholesky (ASC) preconditioning. Notably, since the Cholesky-based approach precisely solves a linear system, Cholesky-preconditioned MPRGP (or CG) finds a solution in just one iteration when no box constraints are activated.

While Narain et al. [43] used modified incomplete Cholesky (MIC) preconditioning [44] for MPRGP, the derivations and rationale behind their approach are not explained, and it is not necessarily clear from their publicly available source code how to adapt it for variants of Cholesky decomposition (e.g., LDLT-type decomposition with 2×22\times 2 diagonal blocks [45]). We therefore first discuss issues associated with the naive application of Cholesky factors and active sets, followed by an explanation of our methodology, including practical implementation details (Sec. V-A). We also clarify the differences between active-set IC preconditioning [43] and our scheme (Sec V-B).

V-A Active-Set Cholesky Preconditioning

Consider the minimization of a quadratic objective 12𝐱T𝐀𝐱𝐱T𝐛\frac{1}{2}\mathbf{x}^{T}\mathbf{A}\mathbf{x}-\mathbf{x}^{T}\mathbf{b} and corresponding linear system 𝐀𝐱=𝐛\mathbf{A}\mathbf{x}=\mathbf{b}. The associated linear preconditioning system can be expressed as 𝐀𝐳=𝐫\mathbf{A}\mathbf{z}=\mathbf{r}, where 𝐳\mathbf{z} and 𝐫\mathbf{r} are vectors corresponding to 𝐱\mathbf{x} and 𝐛\mathbf{b}, respectively. Adopting an active set 𝐚\mathbf{a} that indicates whether 𝐱\mathbf{x} is constrained or not (i.e., with an index ii, 𝐚i=1\mathbf{a}_{i}=1 or 𝐚i=1\mathbf{a}_{i}=-1 if 𝐱i\mathbf{x}_{i} is constrained by its lower or upper bound, respectively, and 𝐚i=0\mathbf{a}_{i}=0 otherwise) [46], we can define a diagonal selection matrix 𝐒\mathbf{S} with 𝐒ii=1|𝐚i|\mathbf{S}_{ii}=1-|\mathbf{a}_{i}|. Given 𝐳u\mathbf{z}_{u} and 𝐳c\mathbf{z}_{c} that denote unconstrained and constrained parts of 𝐳\mathbf{z}, respectively, we need to solve the preconditioning system for 𝐳u\mathbf{z}_{u} while enforcing 𝐳c=0\mathbf{z}_{c}=0 [46]. The preconditioning system can be rewritten (incorporating the necessary constraints [47]) as (𝐒𝐀𝐒T+𝐈𝐒)𝐳=𝐒𝐫(\mathbf{S}\mathbf{A}\mathbf{S}^{T}+\mathbf{I}-\mathbf{S})\mathbf{z}=\mathbf{S}\mathbf{r}, or given equivalently (by splitting it for 𝐳u\mathbf{z}_{u} and 𝐳c\mathbf{z}_{c}) as 𝐒u𝐀𝐒uT𝐳u=𝐒u𝐫\mathbf{S}_{u}\mathbf{A}\mathbf{S}_{u}^{T}\mathbf{z}_{u}=\mathbf{S}_{u}\mathbf{r} and 𝐳c=0\mathbf{z}_{c}=0, where 𝐒u\mathbf{S}_{u} denotes a matrix consisting of 𝐒\mathbf{S}’s rows associated with unconstrained variables. One approach to solving these preconditioning systems is to reassemble (𝐒𝐀𝐒T+𝐈𝐒)(\mathbf{S}\mathbf{A}\mathbf{S}^{T}+\mathbf{I}-\mathbf{S}) or 𝐒u𝐀𝐒uT\mathbf{S}_{u}\mathbf{A}\mathbf{S}_{u}^{T} and factorize it using Cholesky decomposition, but this procedure is costly since active sets can change in each MPRGP iteration [46]. We would rather perform Cholesky decomposition only once and reuse its resulting factor.

V-A1 Problems with Naive Substitution of Cholesky Factors

We consider Cholesky factorization 𝐀=𝐋𝐋T\mathbf{A}=\mathbf{L}\mathbf{L}^{T} (where 𝐋\mathbf{L} is a lower triangular matrix). While its naive substitution to (𝐒𝐀𝐒T+𝐈𝐒)𝐳=𝐒𝐫(\mathbf{S}\mathbf{A}\mathbf{S}^{T}+\mathbf{I}-\mathbf{S})\mathbf{z}=\mathbf{S}\mathbf{r} gives (𝐒𝐋𝐋T𝐒T+𝐈𝐒)𝐳=𝐒𝐫(\mathbf{S}\mathbf{L}\mathbf{L}^{T}\mathbf{S}^{T}+\mathbf{I}-\mathbf{S})\mathbf{z}=\mathbf{S}\mathbf{r}, triangular solves are inapplicable to this form. Similarly, while 𝐒u𝐀𝐒uT𝐳u=𝐒u𝐫\mathbf{S}_{u}\mathbf{A}\mathbf{S}_{u}^{T}\mathbf{z}_{u}=\mathbf{S}_{u}\mathbf{r} can be transformed into 𝐒u𝐋𝐋T𝐒uT𝐳u=𝐒u𝐫\mathbf{S}_{u}\mathbf{L}\mathbf{L}^{T}\mathbf{S}_{u}^{T}\mathbf{z}_{u}=\mathbf{S}_{u}\mathbf{r}, we cannot perform triangular solves with 𝐒u𝐋𝐲=𝐒u𝐫\mathbf{S}_{u}\mathbf{L}\mathbf{y}=\mathbf{S}_{u}\mathbf{r} and 𝐋T𝐒uT𝐳u=𝐲\mathbf{L}^{T}\mathbf{S}_{u}^{T}\mathbf{z}_{u}=\mathbf{y} since 𝐒u𝐋\mathbf{S}_{u}\mathbf{L} is generally not square. Another attempt is to solve 𝐒𝐀𝐒T𝐳=𝐒𝐫\mathbf{S}\mathbf{A}\mathbf{S}^{T}\mathbf{z}=\mathbf{S}\mathbf{r} (and thus 𝐒𝐋𝐋T𝐒T𝐳=𝐒𝐫\mathbf{S}\mathbf{L}\mathbf{L}^{T}\mathbf{S}^{T}\mathbf{z}=\mathbf{S}\mathbf{r}) while enforcing 𝐳c=0\mathbf{z}_{c}=0 (e.g., by setting 𝐳c\mathbf{z}_{c} to zero during the triangular solves). With this form, the forward substitution 𝐒𝐋𝐲=𝐒𝐫\mathbf{S}\mathbf{L}\mathbf{y}=\mathbf{S}\mathbf{r} can be written in the elementwise notation as 𝐲i=𝐒ii𝐫i𝐒iij<i𝐋ij𝐲j𝐒ii𝐋ii\mathbf{y}_{i}=\frac{\mathbf{S}_{ii}\mathbf{r}_{i}-\mathbf{S}_{ii}\sum_{j<i}\mathbf{L}_{ij}\mathbf{y}_{j}}{\mathbf{S}_{ii}\mathbf{L}_{ii}}, and back substitution 𝐋T𝐒T𝐳=𝐲\mathbf{L}^{T}\mathbf{S}^{T}\mathbf{z}=\mathbf{y} as 𝐳i=𝐲ij>i𝐒jj𝐋ji𝐳j𝐒ii𝐋ii\mathbf{z}_{i}=\frac{\mathbf{y}_{i}-\sum_{j>i}\mathbf{S}_{jj}\mathbf{L}_{ji}\mathbf{z}_{j}}{\mathbf{S}_{ii}\mathbf{L}_{ii}}. However, this approach still has two problems. First, 𝐒ii=0\mathbf{S}_{ii}=0 for constrained variables, rendering these operations infeasible. Second, the forward and back substitution are asymmetric, violating the symmetry requirement for preconditioning in symmetric Krylov iterative solvers, such as CG and MPRGP [48].

V-A2 Filtered Symmetric Gauss-Seidel

The equivalence between forward (back) substitution and forward (backward) Gauss-Seidel (GS) when applied to lower (upper) triangular matrices allows us to interpret triangular solves as symmetric GS (SGS). Instead of filtering the system matrix 𝐀\mathbf{A} directly, we apply filtering during SGS to solve a system equivalent to the filtered preconditioning system. Given the elementwise form of forward GS, 𝐲i=(𝐫ij<i𝐋ij𝐲j)/𝐋ii\mathbf{y}_{i}=(\mathbf{r}_{i}-\sum_{j<i}\mathbf{L}_{ij}\mathbf{y}_{j})/\mathbf{L}_{ii}, we can filter this operation with 𝐒\mathbf{S} while ensuring symmetry using

𝐲i=𝐒ii𝐫i𝐒iij<i𝐒jj𝐋ij𝐲j𝐋ii.\displaystyle\mathbf{y}_{i}=\frac{\mathbf{S}_{ii}\mathbf{r}_{i}-\mathbf{S}_{ii}\sum_{j<i}\mathbf{S}_{jj}\mathbf{L}_{ij}\mathbf{y}_{j}}{\mathbf{L}_{ii}}. (32)

Similarly, given 𝐳i=(𝐲ij>i𝐋ji𝐳j)/𝐋ii\mathbf{z}_{i}=(\mathbf{y}_{i}-\sum_{j>i}\mathbf{L}_{ji}\mathbf{z}_{j})/\mathbf{L}_{ii} for backward GS, we add filtering to obtain

𝐳i=𝐒ii𝐲i𝐒iij>i𝐒jj𝐋ji𝐳j𝐋ii.\displaystyle\mathbf{z}_{i}=\frac{\mathbf{S}_{ii}\mathbf{y}_{i}-\mathbf{S}_{ii}\sum_{j>i}\mathbf{S}_{jj}\mathbf{L}_{ji}\mathbf{z}_{j}}{\mathbf{L}_{ii}}. (33)

Our filtered SGS preserves the symmetry of operations required for preconditioning of CG/MPRGP [48], and can be rewritten in block form as (𝐃~+𝐒𝐋~𝐒T)𝐲=𝐒𝐫(\tilde{\mathbf{D}}+\mathbf{S}\tilde{\mathbf{L}}\mathbf{S}^{T})\mathbf{y}=\mathbf{S}\mathbf{r} and (𝐃~+𝐒T𝐋~T𝐒)𝐳=𝐒𝐲(\tilde{\mathbf{D}}+\mathbf{S}^{T}\tilde{\mathbf{L}}^{T}\mathbf{S})\mathbf{z}=\mathbf{S}\mathbf{y}, respectively, where 𝐋=𝐃~+𝐋~\mathbf{L}=\tilde{\mathbf{D}}+\tilde{\mathbf{L}}, and 𝐃~\tilde{\mathbf{D}} and 𝐋~\tilde{\mathbf{L}} denote the diagonal and strictly lower parts of 𝐋\mathbf{L}, respectively. Note that while (32) and (33) are equivalent to SGS (except for filtering), our 𝐋\mathbf{L} arises from Cholesky factorization, in contrast to the strictly lower triangular matrix 𝐋^\hat{\mathbf{L}} from the traditional SGS (where 𝐀=𝐃^+𝐋^+𝐋^T\mathbf{A}=\hat{\mathbf{D}}+\hat{\mathbf{L}}+\hat{\mathbf{L}}^{T}, and 𝐃^\hat{\mathbf{D}} is a diagonal part of 𝐀\mathbf{A}). Additionally, while it is typical to initialize 𝐲=0\mathbf{y}=0 and 𝐳=0\mathbf{z}=0 in GS-type preconditioning [48], our scheme does not require such initialization because (32) and (33) directly overwrite 𝐲\mathbf{y} and 𝐳\mathbf{z}.

V-A3 Sqrt-Free Cholesky and Optimization

We prefer sqrt-free Cholesky factorization 𝐀=𝐋𝐃𝐋T\mathbf{A}=\mathbf{L}\mathbf{D}\mathbf{L}^{T}, where 𝐋\mathbf{L} is unit lower triangular (for clarity, we redefine 𝐋\mathbf{L} here), and 𝐃\mathbf{D} is diagonal. This approach can detect negative pivots (to clamp them for robustness) and avoid sqrt operations for efficiency [49]. The triangular solve proceeds as 𝐋𝐲=𝐫\mathbf{L}\mathbf{y}=\mathbf{r}, 𝐃𝐰=𝐲\mathbf{D}\mathbf{w}=\mathbf{y}, and 𝐋T𝐳=𝐰\mathbf{L}^{T}\mathbf{z}=\mathbf{w}. By merging the forward substitution and diagonal scaling (which preserves symmetry) and skipping unnecessary computations (e.g., multiplications with 𝐒ii\mathbf{S}_{ii} and 𝐋ii(=1)\mathbf{L}_{ii}(=1) and scanning rows in 𝐋\mathbf{L}), we have forward and backward operations for 𝐲\mathbf{y} and 𝐳\mathbf{z}, respectively, as

𝐲i\displaystyle\mathbf{y}_{i} ={(𝐫ij<i𝐒jj𝐋ij𝐲j)/𝐃ii𝐒ii0,0otherwise,\displaystyle=\begin{cases}(\mathbf{r}_{i}-\sum_{j<i}\mathbf{S}_{jj}\mathbf{L}_{ij}\mathbf{y}_{j})/\mathbf{D}_{ii}&\mathbf{S}_{ii}\neq 0,\\ 0&\mathrm{otherwise},\end{cases} (34)
𝐳i\displaystyle\mathbf{z}_{i} ={𝐲ij>i𝐒jj𝐋ji𝐳j𝐒ii0,0otherwise.\displaystyle=\begin{cases}\mathbf{y}_{i}-\sum_{j>i}\mathbf{S}_{jj}\mathbf{L}_{ji}\mathbf{z}_{j}&\mathbf{S}_{ii}\neq 0,\\ 0&\mathrm{otherwise}.\end{cases} (35)

V-B Active-Set Incomplete Cholesky Preconditioning

Our preconditioning strategy utilizing active sets can also be applied to IC preconditioning. Notably, when the system is banded and fully populated within the band, Cholesky and IC factorization are equivalent, making their preconditioning (even with active sets) identical.

In our parameter optimization, while the system is banded, it is not entirely filled because, e.g., optimization variables for rest curvatures and stretching stiffness are not coupled (i.e., the Hessian (23) lacks off-diagonal elements relating them). Cholesky decomposition is guaranteed to succeed for SPD systems (except for the case where pivot elements become negative due to numerical error [50]), whereas IC factorization may fail unless the system matrix possesses certain properties, such as being an M-matrix [51]. This necessitates reordering the system (i.e., pivoting) potentially breaking the banded structures, adding positive diagonals [51], or reverting to GS [44], ultimately reducing preconditioning effectiveness. Given that approximately 97% of the band is filled, it is acceptable to introduce a small number of fill-ins, considering the IC issues above. We therefore prefer full Cholesky factorization.

VI Results and Discussions

We implemented our method in C++20 with double-precision floating-point for scalar values and parallelized forward simulation and parameter optimization with OpenMP, processing each strand concurrently. We executed all the examples on a desktop machine with an Intel Core i7-9700 (8 cores) with 16GB RAM. For forward simulation, we use the exact Hessian with SPD projection for stretching energy and Gauss-Newton Hessian approximation for bending and twisting energies [23]. We perform a single Newton iteration per simulation step [49], executing four simulation steps per frame, except for Figures 1 and 10, which involved 12 simulations steps. We use 60 frames per second. For MPRGP, we use a termination absolute or relative residual of 101010^{-10}. Unless specified otherwise, we use 𝐜st=109,𝐜be=109,𝐜tw=109\mathbf{c}_{\mathrm{st}}=10^{9},\mathbf{c}_{\mathrm{be}}=10^{9},\mathbf{c}_{\mathrm{tw}}=10^{9}. Material frames are rendered at the centers of the corresponding edges in red and yellow, with lengths matching the rest lengths of the edges.

VI-A Bending With 2D vs. 4D Curvatures

We begin by comparing bending formulations using 2D and 4D curvatures to justify our choice of 4D curvatures, given that our parameter optimization employs only two rest curvatures per vertex. The analysis is conducted on a horizontal strand discretized with 30 vertices.

(a)

(b)

(c)

(d)
Figure 2: Comparison of two bending models with a horizontal strand without and with flipped material frames. (a) 2D curvatures. (b) 2D curvatures with flipped frames. (c) 4D curvatures. (d) 4D curvatures with flipped frames. The bending model with 2D and 4D curvatures without edge flips can correctly evaluate bending and generate natural strand behaviors ((a) and (c)). With the flipped frames, the 2D curvature bending model fails to generate bending forces (b), whereas 4D curvature bending model correctly handles the bending, generating the expected result (d).

VI-A1 2D Curvatures with Averaged Material Frames [7]

In Figure 2, we compare a bending model with 4D curvatures [6] against a bending model with 2D curvatures [7] which averages material frames to reduce curvature dimensions from 4D to 2D. We experiment with the horizontal strand without and with its material frames flipped, and use 𝐜be=1010\mathbf{c}_{\mathrm{be}}=10^{10}.

While both models without edge flips yield equivalent results, the 2D curvature model [7] fails to generate bending forces when material frames are flipped because the averaged material frames can be non-unit vectors (in this example, averaged frames are zero vectors) [9, 12, 41]. By contrast, the 4D curvature model [6] correctly evaluates the bending even with the flipped frames, producing results consistent with those obtained without edge flips.

(a)

(b)

(c)

(d)
Figure 3: Comparison of two bending models with a horizontal strand. 2D curvatures with slerp and 𝐜be=108\mathbf{c}_{\mathrm{be}}=10^{8} (a) and 𝐜be=109\mathbf{c}_{\mathrm{be}}=10^{9} (b). 4D curvatures with 𝐜be=108\mathbf{c}_{\mathrm{be}}=10^{8} (c) and 𝐜be=109\mathbf{c}_{\mathrm{be}}=10^{9} (d). While spherical interpolation enables correct evaluation of bending even with the flipped material frames (b), approximated gradients can lead to stability problems (a). In contrast, the bending model with 4D curvatures generates natural strand behaviors ((c) and (d)).

VI-A2 2D Curvatures with Spherically Interpolated Material Frames [41]

Figure 3 contrasts the bending model with 4D curvatures [6] against another model [41] with 2D curvatures, which spherically interpolates (i.e., uses slerp) material frames to maintain unit-size frames while reducing the curvature dimensions. We use flipped frames and 𝐜be=108,109\mathbf{c}_{\mathrm{be}}=10^{8},10^{9}.

While the slerped material frames, which retain unit length, enable correct bending evaluation even with the flipped frames, differentiating the slerped frames to compute bending forces presents challenges. Consequently, their bending model [41] resorts to approximated gradients, which proved insufficiently accurate in our experiments, causing stability problems with the Gauss-Newton Hessian approximation, whereas the bending model of [6] is stable under the same settings.

(a) Naive initialization

(b) 4D rest curvatures with unbanded/banded system

(c) 2D rest curvatures with banded system
Figure 4: Coil-like strand test. Rest shape optimization achieves static equilibrium unlike naive initialization (a). 4D rest curvatures with unbanded/banded systems generate the identical results (b) while the reduced 2D rest curvatures also produce equivalent results given the redundant force spaces (c).

VI-B Banded System with Reduced Rest Curvatures

To assess the performance improvement achieved through banded systems and reduced rest curvatures, we experiment with a coil-like strand discretized with 2k vertices, as shown in Figure 4 (we include naive initialization for reference). For a fair comparison with previous work [5], we optimize only the rest shape parameters and exclude box constraints to eliminate the influence of active sets. We compare the following:

  1. 1.

    Unbanded system with 4D rest curvatures [5];

  2. 2.

    Banded system with 4D rest curvatures;

  3. 3.

    Banded system with 2D rest curvatures.

Using the approximate minimum degree (AMD) reordering, the sequential arrangement of the rest shape parameters (rest length, rest curvatures, and rest twist) [5] aligns with the banded system, yielding identical results. The AMD reordering took 2.0 ms while the system solve took 5.0 ms. As the banded system (with 4D rest curvatures) eliminates the need for the reordering, we achieve around 29%29\% performance gain.

Due to the redundant force spaces with rest curvatures, the virtually reduced 2D rest curvatures produce results comparable to those obtained with 4D rest curvatures. The computation times were 2.1ms and 5.0ms with 2D and 4D rest curvatures, respectively. As the DOF count is 4N84N-8 and 6N126N-12, with non-zero counts per row of 22.022.0 and 32.032.0 on average, the total number of non-zeros is approximately 88N(=4N×22)88N(=4N\times 22) and 192N(=6N×32)192N(=6N\times 32) for 2D and 4D rest curvatures, respectively. Thus, the performance ratio 0.42=(2.1/5.0)0.42=(2.1/5.0) is in good agreement with the ratio of the total number of non-zeros 0.46(88N/192N)0.46\approx(88N/192N).

(a) Naive initialization

(b) Penalty method

(c) Active-set method
Figure 5: Comparison with a horizontal strand. The penalty method fails to precisely enforce box constraints, causing significant rest curvature changes and allowing the strand’s tail to end up on the left side after perturbing the root end (b). By contrast, our active-set method (c) strictly enforces the box constraints, keeping the tail on the right side and better preserving the original shape than the naive initialization (a).

VI-C Penalty vs. Active-Set Methods

To demonstrate the efficacy of our active-set-based BCQP solver, we compare it to a penalty-based one, using a horizontal strand discretized with 30 vertices, as shown in Figure 5 (naive initialization included for reference). In this comparison, we optimize rest shape parameters only and use μ=0.4\mu=0.4. For the penalty method, we use a Cholesky solver [5]. As we perform only one Newton iteration to solve each BCQP, if we apply ALM (with Lagrange multipliers initialized to zero) to the BCQP, it becomes equivalent to the penalty method [15].

With the penalty method, it is difficult to accurately control rest curvature changes, allowing rest curvatures to violate the box constraints. Consequently, significant rest shape changes caused the tail end of the strand to flip to the left side after the root was perturbed. In contrast, our active-set method precisely constrains curvature changes retaining the tail end of the strand on the right side. While we may need to compromise static equilibrium, our method better preserves the original shape compared to naive initialization.

The penalty method uses 4 Newton iterations with a total system-solving cost of 0.31 ms (0.078 ms per solve), whereas our method uses 2 Newton iterations with 8.0 MPRGP iterations on average per solve, resulting in a total cost of 0.33 ms (0.17 ms per solve). Although MPRGP needs multiple iterations, our method performs Cholesky factorization (which is costlier than triangular solves) only once per Newton iteration, leading to a moderate cost per MPRGP solve. Furthermore, the strict enforcement of box constraints enhances the convergence of Newton iterations. Consequently, the total cost of our method is comparable to that of the penalty-based approach.

VI-D Simultaneous Optimization of Rest Shape and Material Stiffness Parameters Under Hard Zero Net Force Constraints

To demonstrate the necessity of optimizing both rest shape and material stiffness parameters and enforcing 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 as a hard constraint, we compare the following schemes:

  1. 1.

    Rest shape only: rest shape only optimization [5];

  2. 2.

    Rest shape and material stiffness with penalty: simultaneous optimization of rest shape and material stiffness parameters with enforcement of 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 via quadratic penalty [15] (which is equivalent to ours with 𝝀=0\bm{\lambda}=0);

  3. 3.

    Rest shape and material stiffness with ALM (ours): rest shape and material stiffness parameter optimization with enforcement of 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 as a hard constraint via ALM.

(a)

(b)

(c)
Figure 6: Evaluation with a vertical strand. The first black edge indicates the invalid material stiffness parameter for stretching. The white and green edges represent lower and higher stiffness parameters, respectively. (a) Rest shape only. (b) Rest shape and material stiffness with penalty. (c) Rest shape and material stiffness with ALM (ours). With the rest shape only optimization, material stiffness parameters are unchanged (edge stay white), failing to achieve static equilibrium with rest shape parameters within their box constraints (a). Optimizing the material stiffness parameters additionally stiffens the edges and thus reduces the necessary rest shape changes. Treating the zero net force constraint as a hard constraint enables more significant stiffness changes to achieve static equilibrium (c), compared to using a soft constraint (b).

VI-D1 Vertical Strand

We test with a vertical strand discretized with 30 vertices (Figure 6) using 𝐥¯min=102\mathbf{\bar{l}}_{\mathrm{min}}=10^{-2} and 𝐜st=103\mathbf{c}_{\mathrm{st}}=10^{3}.

Optimizing only rest shape parameters fails to achieve static equilibrium. Additionally optimizing stiffness parameters reduces the necessary rest shape changes, but enforcing 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 as a soft constraint via a quadratic penalty also fails. This failure occurs because the penalty from material stiffness changes is large and comparable to the penalty from violation of 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0, leading to inadequate adjustment of the stiffness parameters. By contrast, our method guarantees perfect static equilibrium, as ALM enforces 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 as a hard constraint. This allows for adequate adjustments to stiffness parameters, ensuring rest shape parameters remain within their box constraints while achieving zero net forces.

The rest shape only optimization uses 8 Newton iterations, 5.6 MPRGP iterations on average, and takes 8.1 ms for the entire optimization process, while the rest shape and material stiffness optimization with penalty uses 7 Newton iterations, 73.9 MPRGP iterations, and takes 19.5 ms for the optimization. The increased cost is primarily due to the larger system size (7N147N-14 for rest shape and material stiffness vs. 4N84N-8 for rest shape only) with more non-zeros and increased MPRGP iterations (due to the increased complexity of the systems). Our method uses 25 Newton iterations, 66.0 MPRGP iterations, and takes 58.3ms for the optimization. The increased cost compared to the approach with penalty is due to the updates of Lagrange multipliers, which modifies the optimization problem. Consequently, our method requires around 3×3\times more Newton iterations and computational time. Although our method is approximately 7×7\times more costly than the rest shape only optimization [5], these methods are performed only once per scene as a preprocess (i.e., no additional cost during forward simulation). Thus, we believe that our approach, which guarantees static equilibrium with minimal stiffness changes while eliminating tedious manual stiffness tuning, is a practical and attractive alternative.

(a) Rest shape only

(b) Rest shape and material stiffness with penalty

(c) Rest shape and material stiffness with ALM
Figure 7: Evaluation with a horizontal strand. Material stiffness parameters for bending are undefined for the first and last vertices (black). The white and green vertices represent lower and higher stiffness parameters, respectively. The insets provide enlarged views for clarity. The rest shape only optimization fails to achieve static equilibrium (a). While simultaneously optimizing rest shape and material stiffness parameters better enforces zero forces, treating the zero net force constraint as a soft constraint still fails (b), but as a hard constraint it succeeds in achieving the horizontal static equilibrium (c).

VI-D2 Horizontal Strand

We experiment with a horizontal strand discretized with 30 vertices (Figure 7) using μ=0.2\mu=0.2. Similar to the vertical strand case, optimizing only the rest shape parameters fails to achieve static equilibrium (despite the relatively stiff strand with 𝐜be=109\mathbf{c}_{\mathrm{be}}=10^{9}) due to tightly bounded rest curvature changes. While simultaneous optimization of the rest shape and material stiffness aims to achieve zero net forces, it still fails when enforcing 𝐜(𝐩)=0\mathbf{c}(\mathbf{p})=0 as a soft constraint. By contrast, our method successfully attains static equilibrium. The computational costs follow a trend similar to that observed with the vertical strand. The optimization takes 7.5 ms for the rest shape only, 17.9 ms for the rest shape and material stiffness with penalty, and 47.7 ms for our method.

VI-E Box-Constrained Quadratic Program Solver Comparisons

We compare our method with various schemes to solve the BCQP subproblem (20) using the scene shown in Figure 5.

Figure 8: Log-scale profiles of residuals over time with various preconditioning techniques in MPRGP. The numbers in the last parentheses represent MPRGP iteration counts. Our ASC-MPRGP converges 18×18\times faster than IC-MPRGP.

VI-E1 MPRGP Preconditioners

We first examine our method against various preconditioning techniques for MPRGP. Specifically, we compare the following schemes:

  1. 1.

    MPRGP: MPRGP without preconditioning [16];

  2. 2.

    D-MPRGP: MPRGP with diagonal preconditioning;

  3. 3.

    WJ-MPRGP: MPRGP with two weighted Jacobi iterations with a weighting factor ω=0.5\omega=0.5;

  4. 4.

    SSOR-MPRGP: MPRGP with symmetric successive-over-relaxation (SSOR) preconditioning (serial forward and backward passes) with a weighting factor ω=1.2\omega=1.2;

  5. 5.

    SAAMG-MPRGP: MPRGP with smoothed aggregation algebraic multigrid (SAAMG) preconditioning [46];

  6. 6.

    IC-MPRGP: MPRGP with IC preconditioning [43];

  7. 7.

    MIC-MPRGP: MPRGP with MIC preconditioning [43];

  8. 8.

    ASC-MPRGP (ours): MPRGP with our ASC preconditioning.

Figure 8 shows log-scale profiles of convergence over time. Due to the stiffness of our system, MPRGP without preconditioning failed to converge within 10,000 iterations and was terminated. While WJ-MPRGP and SSOR-MPRGP effectively reduce the number of MPRGP iterations required, their preconditioning costs are non-negligible, and D-MPRGP performs slightly faster. Although SAAMG-MPRGP can be effective for systems with an M-matrix [46], it underperforms on our non-M-matrix system. By contrast, Cholesky-based preconditioners are particularly effective because they exploit the banded structure of the system with minimal overhead for a single factorization per MPRGP solve. IC-MPRGP requires significantly fewer iterations than D-MPRGP, and its moderate preconditioning cost results in much faster overall performance. Given the nearly fully filled band, MIC-MPRGP performs almost identically to IC-MPRGP. Our ASC-MPRGP, which employs full Cholesky factorization, benefits from the complete Cholesky factors without the limitations of (M)IC-MPRGP, which uses incomplete Cholesky with a GS fallback to avoid breakdown [44]. Consequently, while IC-MPRGP converges in 234 iterations taking 5.4ms, our ASC-MPRGP converges in just 19 iterations taking 0.3 ms, achieving around 18×18\times faster performance.

Figure 9: Log-scale profiles of residuals over time with various BCQP solvers and permitted curvature change μ\mu. The numbers within the last parentheses indicate solver iteration counts. Our ASC-MPRGP outperforms IPM for 0.4μ0.4\leq\mu.
TABLE I: Performance numbers for IPM and our ASC-MPRGP with various μ\mu. Timing is given in milliseconds, and the numbers in the parentheses represent the iteration counts.
Scheme \ μ\mu 0.2 0.3 0.4 0.5 0.6
IPM 0.517 (5) 0.434 (4) 0.361 (3) 0.388 (3) 0.375 (3)
ASC-MPRGP 4.518 (122) 0.783 (47) 0.305 (19) 0.184 (11) 0.039 (2)

VI-E2 BCQP Solvers

Next, we compare our method with other BCQP solvers. We consider the following schemes:

  1. 1.

    PGS: projected GS;

  2. 2.

    IPM: interior point method [52] with a Cholesky-based direct solver for fully unconstrained inner linear systems;

  3. 3.

    ASC-MPRGP (ours).

In this comparison, we exclude the penalty-based approach as it cannot accurately enforce the box constraints (comparisons between the penalty-based and active-set approaches are given in Sec. VI-C). Figure 9 shows log-scale profiles of convergence over time, and Table I summarizes the performance numbers (excluding PGS).

Although PGS should be able to strictly enforce the box constraints, it was slow to converge and terminated after 10,000 iterations. While IPM [52] can converge with a small number of iterations for all values of μ\mu, each iteration is costly because IPM updates the system diagonals, necessitating a full Cholesky factorization for each updated system. By contrast, our ASC-MPRGP requires no system updates and enables the reuse of the Cholesky factor by combining it with active sets which may change in each MPRGP iteration. Thus, per-iteration cost is relatively small, enabling ASC-MPRGP to outperform IPM [52] with approximately μ0.4\mu\geq 0.4 (our default is μ=1\mu=1). While our method can be slower than IPM when μ\mu is small (because MPRGP needs more iterations to update active sets and does not fully leverage our preconditioner), we believe that such cases are infrequent in practical applications.

(a) Naive initialization

(b) Rest shape only optimization

(c) Rest shape and material stiffness optimization (ours)
Figure 10: Hair simulation with complex strand geometry. Hair strands significantly sag with naive initialization. Rest shape only optimization suffers from some sagging and unnatural hair lifting. Our method successfully achieves static equilibrium, exhibits natural motions due to the prescribed movements of the root vertices, and then restores the hairstyle to a form closely resembling the original.

VI-F Complex Strand Geometry

To evaluate the efficacy of our method with complex strand geometry, we experiment with hair data publicly released by Hu et al. [53]. Figure 10 compares our method with naive initialization and rest shape only optimization, using an asset with 915 strands (each is discretized with 100 vertices). In this comparison, we use an extra soft material with 𝐜st=𝐜be=𝐜tw=108\mathbf{c}_{\mathrm{st}}=\mathbf{c}_{\mathrm{be}}=\mathbf{c}_{\mathrm{tw}}=10^{8} to clearly demonstrate differences, and μ=0.5\mu=0.5.

With naive initialization, hair strands sag significantly due to gravity at the start of the simulation, eventually settling into sagged states after some root vertex movement. With rest shape only optimization, some strands still suffer from sagging since the allowed rest shape changes are limited by the box constraints. Conversely, other strands experience unnatural lifting because this approach attempts to achieve static equilibrium solely through adjustments to the rest shape parameters, yielding significant rest shape changes (even with the box constraints) and thus continuously unstable strand configurations that do not settle. Hence the rest shape only optimization fails both to achieve static equilibrium (with insufficient rest shape changes) and to ensure stable configurations (due to the excessive rest shape changes), indicating that the range parameter for box constraints μ\mu is simultaneously too low for some strands and too high for others; therefore, merely adjusting μ\mu cannot always fix these failures. By contrast, our method enables strands to achieve the perfect static equilibrium even with complex hair geometry through the smaller rest shape changes facilitated by simultaneous optimization of material stiffness. It achieves plausible motions and allows the strands to gradually settle and return towards the original hair styles, while naive initialization and rest shape only optimization do not.

Rest shape only optimization used 2.0 Newton iterations (with frequent failures in backtracking line search, leading to early termination) and 2.5 MPRGP iterations per solve on average (occasionally terminating at 100 iterations due to convergence issues), taking 0.6 s for the entire optimization process, whereas our method used 148.8 Newton iterations and 1.2 MPRGP iterations, taking 84.4 s. Although our method incurs higher costs than the rest shape only optimization (which fails to converge, thus suffering from sagging, unnatural lifting, and stability problems), we believe that the achieved static equilibrium justifies this extra one time initialization cost for forward simulations (which take 2.0 s per frame).

VII Conclusions and Future Work

We have proposed our parameter optimization framework that ensures static equilibrium of DER-based strands. Additionally, we presented an active-set Cholesky preconditioner to accelerate the convergence of MPRGP. We demonstrated the efficacy of our method in a wide range of examples. Below, we discuss tradeoffs inherent to our method and promising research directions for future work.

VII-A Undesirable Local Minima

While our method ensures that strands achieve static equilibrium, certain perturbations may cause them to converge to other local minima, which may not align with user expectations. Although our solver enforces rest shape changes within specified box constraints to mitigate the risk of encountering such local minima, determining optimal values for these constraints can be challenging. The desirability of the resulting behaviors is often subjective, and the optimal values may vary depending on strand geometry and material stiffness. To accommodate diverse scenarios, it could be advantageous to assign different values of μ\mu for each strand.

In contrast to optimization methods focused solely on rest shape [5], our approach allows for modifications to material stiffness, which can be perceived as undesirable. While 𝐖\mathbf{W} in (9) assists in balancing changes between rest shape and material stiffness, a potentially more effective strategy may involve conducting separate and iterative parameter optimizations for rest shape and material stiffness, similar to block coordinate descent. Furthermore, to ensure smoothly varying material stiffness, it may be beneficial to employ a Laplacian-based regularizer or, alternatively, to optimize a limited set of representative stiffness parameters, which has the added advantage of reducing memory usage and optimization costs.

VII-B Active-Set Cholesky Preconditioner

Our ASC preconditioner is applicable not only to banded systems but to other SPD ones too, and thus it is worth evaluating our preconditioner with stiff BCQPs. In particular, it should be able to support tree structures forming systems with block matrices (instead of banded systems) [50] without introducing any fill-in at off-diagonal blocks between the block matrices. It also seems promising to extend our preconditioner to (incomplete) LDLT factorization [54, 45] and to explore symmetric indefinite solvers that can handle box constraints. With small μ\mu, many box constraints can be activated, necessitating additional MPRGP iterations to manage active sets while failing to fully leverage our ASC preconditioning. In such cases, exploring active-set-free approaches, such as interior point methods [15, 52], may be promising. Although parallel execution over strands rendered extensive parallelization unnecessary in our framework, it would be valuable to optimize our preconditioner for parallel execution to fully utilize many-core architectures, particularly for strands discretized with a large number of vertices.

VII-C More General Inverse Problems

Supporting anisotropic and inhomogeneous strands (e.g., with spatially varying density and radius), two-end clamping, and frictional contacts would be useful [30, 4]. To predict strand dynamics over time, developing differentiable physics approaches, such as those employing the adjoint method [2, 12], appears promising [55]. Extending our method to applications involving 2D/3D structured materials would also be of interest. While our method is guaranteed to reach static equilibrium at solver convergence, convergence conditions may depend on strand geometry and properties; thus, tuning solver parameters may be necessary in challenging scenarios. Additionally, solving the optimization problem without primal-dual decoupling could enhance the likelihood of convergence.

References

  • [1] C. D. Twigg and Z. Kačić-Alesić, “Optimization for sag-free simulations,” in Proceedings of the 2011 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ser. SCA ’11, 2011, pp. 225–236.
  • [2] J. Pérez, B. Thomaszewski, S. Coros, B. Bickel, J. A. Canabal, R. Sumner, and M. A. Otaduy, “Design and fabrication of flexible rod meshes,” ACM Trans. Graph., vol. 34, no. 4, jul 2015.
  • [3] J. Hsu, N. Truong, C. Yuksel, and K. Wu, “A general two-stage initialization for sag-free deformable simulations,” ACM Trans. Graph., vol. 41, no. 4, jul 2022.
  • [4] J. Hsu, T. Wang, Z. Pan, X. Gao, C. Yuksel, and K. Wu, “Sag-free initialization for strand-based hybrid hair simulation,” ACM Trans. Graph., vol. 42, no. 4, jul 2023.
  • [5] T. Takahashi and C. Batty, “Rest shape optimization for sag-free discrete elastic rods,” arXiv, 2025.
  • [6] M. Bergou, M. Wardetzky, S. Robinson, B. Audoly, and E. Grinspun, “Discrete elastic rods,” in ACM SIGGRAPH 2008 Papers, ser. SIGGRAPH ’08.   New York, NY, USA: Association for Computing Machinery, 2008.
  • [7] M. Bergou, B. Audoly, E. Vouga, M. Wardetzky, and E. Grinspun, “Discrete viscous threads,” ACM Transactions on Graphics, vol. 29, no. 4, pp. 116:1–116:10, 2010.
  • [8] E. Schweickart, D. L. James, and S. Marschner, “Animating elastic rods with sound,” ACM Trans. Graph., vol. 36, no. 4, jul 2017.
  • [9] Y. R. Fei, C. Batty, E. Grinspun, and C. Zheng, “A multi-scale model for coupling strands with shear-dependent liquid,” ACM Trans. Graph., vol. 38, no. 6, Nov. 2019.
  • [10] S. Lesser, A. Stomakhin, G. Daviet, J. Wretborn, J. Edholm, N.-H. Lee, E. Schweickart, X. Zhai, S. Flynn, and A. Moffat, “Loki: A unified multiphysics simulation framework for production,” ACM Trans. Graph., vol. 41, no. 4, jul 2022.
  • [11] G. Daviet, “Interactive hair simulation on the gpu using admm,” in ACM SIGGRAPH 2023 Conference Proceedings, ser. SIGGRAPH ’23.   New York, NY, USA: Association for Computing Machinery, 2023.
  • [12] J. Panetta, M. Konaković-Luković, F. Isvoranu, E. Bouleau, and M. Pauly, “X-shells: a new class of deployable beam structures,” ACM Trans. Graph., vol. 38, no. 4, jul 2019.
  • [13] Y. Ren, U. Kusupati, J. Panetta, F. Isvoranu, D. Pellis, T. Chen, and M. Pauly, “Umbrella meshes: elastic mechanisms for freeform shape deployment,” ACM Trans. Graph., vol. 41, no. 4, jul 2022.
  • [14] L.-J. Y. Dandy, M. Vidulis, Y. Ren, and M. Pauly, “Tencers: Tension-constrained elastic rods,” p. 1–13, dec 2024.
  • [15] J. Nocedal and S. J. Wright, Numerical Optimization, 2nd ed.   New York, NY, USA: Springer, 2006.
  • [16] Z. Dostal and J. Schoberl, “Minimizing quadratic functions subject to bound constraints with the rate of convergence and finite termination,” Computational Optimization and Applications, vol. 30, no. 1, pp. 23–43, 2005.
  • [17] D. K. Pai, “STRANDS: Interactive Simulation of Thin Solids using Cosserat Models,” Computer Graphics Forum, 2002.
  • [18] J. Spillmann and M. Teschner, “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, ser. SCA ’07.   Eurographics Association, 2007, p. 63–72.
  • [19] N. Umetani, R. Schmidt, and J. Stam, “Position-based elastic rods,” in Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ser. SCA ’14, 2014, p. 21–30.
  • [20] T. Kugelstadt and E. Schömer, “Position and orientation based cosserat rods,” in Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ser. SCA ’16, 2016, p. 169–178.
  • [21] B. Angles, D. Rebain, M. Macklin, B. Wyvill, L. Barthe, J. Lewis, J. Von Der Pahlen, S. Izadi, J. Valentin, S. Bouaziz, and A. Tagliasacchi, “Viper: Volume invariant position-based elastic rods,” Proc. ACM Comput. Graph. Interact. Tech., vol. 2, no. 2, jul 2019.
  • [22] C. Soler, T. Martin, and O. Sorkine-Hornung, “Cosserat rods with projective dynamics,” Computer Graphics Forum, vol. 37, no. 8, pp. 137–147, 2018.
  • [23] A. Shi, H. Wu, J. Parr, A. M. Darke, and T. Kim, “Lifted curls: A model for tightly coiled hair simulation,” Proc. ACM Comput. Graph. Interact. Tech., vol. 6, no. 3, aug 2023.
  • [24] F. Bertails, B. Audoly, M.-P. Cani, B. Querleux, F. Leroy, and J.-L. Lévêque, “Super-helices for predicting the dynamics of natural hair,” ACM Trans. Graph., vol. 25, no. 3, p. 1180–1187, jul 2006.
  • [25] R. Casati and F. Bertails-Descoubes, “Super space clothoids,” ACM Trans. Graph., vol. 32, no. 4, jul 2013.
  • [26] S. Hadap, “Oriented strands: dynamics of stiff multi-body system,” in Proceedings of the 2006 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, ser. SCA ’06, 2006, p. 91–100.
  • [27] X. Chen, C. Zheng, W. Xu, and K. Zhou, “An asymptotic numerical method for inverse elastic shape design,” ACM Trans. Graph., vol. 33, no. 4, jul 2014.
  • [28] K. Jia, “Sanm: a symbolic asymptotic numerical solver with applications in mesh deformation,” ACM Trans. Graph., vol. 40, no. 4, jul 2021.
  • [29] A. Derouet-Jourdan, F. Bertails-Descoubes, and J. Thollot, “Stable inverse dynamic curves,” ACM Trans. Graph., vol. 29, no. 6, dec 2010.
  • [30] A. Derouet-Jourdan, F. Bertails-Descoubes, G. Daviet, and J. Thollot, “Inverse dynamic hair modeling with frictional contact,” ACM Trans. Graph., vol. 32, no. 6, pp. 159:1–159:10, Nov. 2013.
  • [31] F. Bertails-Descoubes, A. Derouet-Jourdan, V. Romero, and A. Lazarus, “Inverse design of an isotropic suspended Kirchhoff rod: theoretical and numerical results on the uniqueness of the natural shape,” Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences, vol. 474, no. 2212, pp. 1–26, Apr. 2018.
  • [32] R. Charrondière, F. Bertails-Descoubes, S. Neukirch, and V. Romero, “Numerical modeling of inextensible elastic ribbons with curvature-based elements,” Computer Methods in Applied Mechanics and Engineering, vol. 364, p. 112922, 2020.
  • [33] C. Hafner and B. Bickel, “The design space of plane elastic curves,” ACM Trans. Graph., vol. 40, no. 4, jul 2021.
  • [34] ——, “The design space of kirchhoff rods,” ACM Trans. Graph., vol. 42, no. 5, sep 2023.
  • [35] M. Skouras, B. Thomaszewski, B. Bickel, and M. Gross, “Computational design of rubber balloons,” Comput. Graph. Forum, vol. 31, no. 2pt4, p. 835–844, may 2012.
  • [36] B. Wang, L. Wu, K. Yin, U. Ascher, L. Liu, and H. Huang, “Deformation capture and modeling of soft objects,” ACM Trans. Graph., vol. 34, no. 4, pp. 94:1–94:12, Jul. 2015.
  • [37] R. Mukherjee, L. Wu, and H. Wang, “Interactive two-way shape design of elastic bodies,” Proc. ACM Comput. Graph. Interact. Tech., vol. 1, no. 1, jul 2018.
  • [38] M. Ly, R. Casati, F. Bertails-Descoubes, M. Skouras, and L. Boissieux, “Inverse elastic shell design with contact and friction,” ACM Trans. Graph., vol. 37, no. 6, dec 2018.
  • [39] A. Choi, R. Jing, A. P. Sabelhaus, and M. K. Jawed, “Dismech: A discrete differential geometry-based physical simulator for soft robots and structures,” IEEE Robotics and Automation Letters, vol. 9, no. 4, pp. 3483–3490, 2024.
  • [40] M. Jawed, A. Novelia, and O. O’Reilly, A Primer on the Kinematics of Discrete Elastic Rods, ser. SpringerBriefs in Applied Sciences and Technology.   Springer International Publishing, 2018.
  • [41] G. Gornowicz and S. Borac, “Efficient and stable approach to elasticity and collisions for hair animation,” in Proceedings of the 2015 Symposium on Digital Production, ser. DigiPro ’15.   New York, NY, USA: Association for Computing Machinery, 2015, p. 41–49.
  • [42] T. Takahashi and C. Batty, “Frictionalmonolith: A monolithic optimization-based approach for granular flow with contact-aware rigid-body coupling,” ACM Transactions on Graphics (TOG), vol. 40, no. 6, pp. 1–16, 2021.
  • [43] R. Narain, A. Golas, and M. C. Lin, “Free-flowing granular materials with two-way solid coupling,” ACM Transactions on Graphics, vol. 29, no. 6, pp. 173:1–173:10, 2010.
  • [44] R. Bridson and M. Müller, “Fluid simulation: Siggraph 2007 course,” in ACM SIGGRAPH 2007 Courses, ser. SIGGRAPH ’07.   New York, NY, USA: Association for Computing Machinery, 2007, p. 1–81.
  • [45] C. Greif, S. He, and P. Liu, “Sym-ildl: Incomplete ldlt factorization of symmetric indefinite and skew-symmetric matrices,” ACM Trans. Math. Softw., vol. 44, no. 1, Apr. 2017.
  • [46] T. Takahashi and C. Batty, “A multilevel active-set preconditioner for box-constrained pressure poisson solvers,” Proc. ACM Comput. Graph. Interact. Tech., vol. 6, no. 3, aug 2023.
  • [47] R. Tamstorf, T. Jones, and S. F. McCormick, “Smoothed aggregation multigrid for cloth simulation,” ACM Trans. Graph., vol. 34, no. 6, pp. 245:1–245:13, 2015.
  • [48] Y. Saad, “Iterative Methods for Sparse Linear Systems,” Notes, vol. 3, no. 2nd Edition, pp. xviii+528, 2003.
  • [49] L. Huang, F. Yang, C. Wei, Y. J. E. Chen, C. Yuan, and M. Gao, “Towards realtime: A hybrid physics-based method for hair animation on gpu,” Proc. ACM Comput. Graph. Interact. Tech., vol. 6, no. 3, aug 2023.
  • [50] P. Herholz and M. Alexa, “Factor once: Reusing cholesky factorizations on sub-meshes,” ACM Trans. Graph., vol. 37, no. 6, dec 2018.
  • [51] J. Chen, F. Schäfer, J. Huang, and M. Desbrun, “Multiscale cholesky preconditioning for ill-conditioned problems,” ACM Trans. Graph., vol. 40, no. 4, jul 2021.
  • [52] T. Takahashi and C. Batty, “A primal-dual box-constrained qp pressure poisson solver with topology-aware geometry-inspired aggregation amg,” IEEE Transactions on Visualization and Computer Graphics, pp. 1–12, 2024.
  • [53] L. Hu, C. Ma, L. Luo, and H. Li, “Single-view hair modeling using a hairstyle database,” ACM Trans. Graph., vol. 34, no. 4, jul 2015.
  • [54] T. A. Davis, S. Rajamanickam, and W. M. Sid-Lakhdar, “A survey of direct methods for sparse linear systems,” Acta Numerica, vol. 25, p. 383–566, 2016.
  • [55] Y. Chen, Y. Zhang, Z. Brei, T. Zhang, Y. Chen, J. Wu, and R. Vasudevan, “Differentiable discrete elastic rods for real-time modeling of deformable linear objects,” 2024.