A Mass Spring Model for Hair Simulation

Our goal is to simulate the full hair geometry, consisting of ap- proximately one hundred thousand hairs on a typical human head. This will require scalable methods that can simulate every hair as opposed to only a few guide hairs. Novel to this approach is that the individual hair/hair interactions can be modeled with physical parameters (friction, static attraction, etc.) at the scale of a single hair as opposed to clumped or continuum interactions. In this vein, we first propose a new altitude spring model for preventing col- lapse in the simulation of volumetric tetrahedra, and we show that it is also applicable both to bending in cloth and torsion in hair. We demonstrate that this new torsion model for hair behaves in a fashion similar to more sophisticated models with significantly reduced computational cost. For added efficiency, we introduce a semi-implicit discretization of standard springs that makes them truly linear in multiple spatial dimensions and thus unconditionally stable without requiring Newton-Raphson iteration. We also simu- late complex hair/hair interactions including sticking and clumping behavior, collisions with objects (e.g. head and shoulders) and self- collisions. Notably, in line with our goal to simulate the full head of hair, we do not generate any new hairs at render time.

A Mass Spring Model for Hair Simulation


  1. Sebastian says:

    I’m trying to implement the techniques put forth in this paper. Specifically, the implicit integration parts. Could you perhaps point me in the right direction to get some help? I’ve tried contacting the authors of this paper but no response.

  2. animationphysics says:

    Hmmm, I’m not sure. Is the issue implicit integration in general, or the specific modifications for implicit integration of spring forces described in the paper?

    • Sebastian says:

      Thanks for your response! Yes, I’m having trouble computing the spring force which the velocity is dependent on. Specifically, I’m not sure how they calculate the v1^(n+1) and v2^(n+1) as given by the force equation. I’ve looked into using newton’s method to calculate them but the paper clearly states that they do not go this route. I feel like I’m missing something fairly obvious/trivial, also I have a background in computer science and not numerical methods so please forgive my ignorance.

      • animationphysics says:

        If I understand your question, basically for implicit integration you’ll have an equation for the new velocities that looks something like section 4, equation 1. The acceleration term a(t,x,v)is going to be (M^-1)F, where M is a mass matrix, and you plug in the force equation from section 4.1 for F. So now you’ll have v^{n+1}’s on the left and right side, which gives you a large sparse linear system to solve to find them.

(Comments are closed)