EUROGRAPHICS 2003 / P. Brunet and D. Fellner(Guest Editors)

Volume 22 (2003), Number 3

Animating Hair with Loosely Connected Particles
Yosuke Bando†

Bing-Yu Chen‡

Tomoyuki Nishita

The University of Tokyo{ybando, robin, nis}@nis-lab.is.s.u-tokyo.ac.jp

Abstract
This paper presents a practical approach to the animation of hair at an interactive frame rate. In our approach,
we model the hair as a set of particles that serve as sampling points for the volume of the hair, which covers thewhole region where hair is present. The dynamics of the hair, including hair-hair interactions, is simulated using
the interacting particles. The novelty of this approach is that, as opposed to the traditional way of modeling hair,
we release the particles from tight structures that are usually used to represent hair strands or clusters. Therefore,by making the connections between the particles loose while maintaining their overall stiffness, the hair can be
dynamically split and merged during lateral motion without losing its lengthwise coherence.
Categories and Subject Descriptors (according to ACM CCS): I.3.7 [Computer Graphics]: Three-Dimensional
Graphics and Realism, I.3.3 [Computer Graphics]: Picture/Image Generation

1. Introduction
The ability to represent realistic-looking hair plays a crucialrole in the synthesis of life-like human models. However,
the enormous number (a human scalp typically has 100,000
strands) and thin nature of hair strands complicate and slow
down all of the processes for hair image generation, including modeling, rendering and animation. Moreover, when wewant to animate hair based on a physically plausible simulation, the situation is even worse, because we have to take
into account interactions among the hair strands (so-called
hair-hair interactions) in order to reproduce realistic behavior of the hair, as many researchers have already pointed
out4, 10, 13, 16, 20, 22 . The complex behavior of hair results fromthe characteristics of individual hair strands and the interactions between them such as collisions, friction, repulsion
due to static electricity and cohesion/adhesion due to lipids
or hair-dressings21 . Hair-hair interactions are therefore essential when animating hair. However, computing the interactions among a large number of individual hair strands isstill expensive with the computer power currently available.
In this paper, a practical method is proposed for animating hair while taking into account hair-hair interactions at† In Toshiba Corporation since April 2003.
‡ In National Taiwan University since August 2003.
c The Eurographics Association and Blackwell Publishers 2003. Published by Blackwell

Publishers, 108 Cowley Road, Oxford OX4 1JF, UK and 350 Main Street, Malden, MA
02148, USA.

(a)

(b)

(c)

Figure 1: (a) The hair that we wish to represent. (b) The
particles are distributed as sampling points for the volumeof the hair. (c) Traditional methods often represent the hairas serial chains of connected particles (the same number ofparticles as (b)).

a reasonable cost. Traditionally, hair is modeled using fixed
structures that represent hair strands or clusters, such as serial chains of connected points or particles. In contrast, we
use unordered particles that have only loose connections tothose nearby. Thus we call them loosely connected particles, or LCP. The particles serve as sampling points thattrack the motion of the volume of the hair, and the dynamics
of the hair, including hair-hair interactions, is simulated us-Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

ing the interacting particles. Each particle represents a certain amount of the hair medium around it, and it might beviewed as a volume density. This notion, inspired by Hadap
and Magnenat-Thalmann10 , is illustrated in Figure 1.
Representing hair by using sampling points can be regarded as an approximation or simplification of a collectionof individual hair strands in order to reduce the high computational cost of checking and evaluating hair-hair interactions. From this point of view, one might think of a more typical approach, i.e., to bring several strands together to form acluster or wisp and to then model each cluster as some structured element, such as a generalized cylinder. This is justifiable because the hair strands tend to clump together, which
is one of the frequently observed phenomena resulting fromhair-hair interactions, and clustering effects are therefore important for producing natural-looking hair images. However,as Kim and Neumann14 pointed out, clustering is not a static
phenomenon. When hair moves, the hair-hair interactions
cause clusters to split and merge dynamically. To simulate
this, we could subdivide the structured elements to constructa hierarchical tree structure of clusters, as in their multiresolution hairstyle modeling (MHM) system. However, it isunclear how we can split and merge the clusters at different
levels in different sub-trees. Although we can animate thehighest resolution clusters individually, this severely limits
the number of clusters available in order to handle hair-hairinteractions with a reasonable computation time.
For this reason, we do not arrange the particles to forma fixed set of clusters, but distribute them in an unorderedmanner throughout the hair volume. The hair is renderedby placing billboards with hair texture at the positions of
the particles, oriented by a hair direction vector maintainedwith each particle. To simulate dynamic clustering effects,
the neighboring particles should have coherence and move
together to some extent. Moreover, the neighboring particles
should also be able to draw apart, since they do not represent
portions of the hair volume that are occupied by exactly thesame set of hair strands. Therefore, some looseness in theconnections between the particles is essential. Results showthat our LCP approach can successfully reduce the computational cost of animating hair without losing most of thecharacteristics resulting from hair-hair interactions.

Hadap and Magnenat-Thalmann10 animated hair withgeneralized hair-hair interactions. They assumed that hairis a continuum and elegantly handled hair-hair interactions
using particle-based fluid dynamics. However, the computational cost was still high because they modeled individual
hair strands explicitly with serial chains of rigid segments(10,000 strands with 30 segments each) and glued several
particles to each of the segments, so that the amount of computation was huge (2 minutes per frame). The results wereexcellent, but not to the extent that they captured the discontinuities of hair. Our LCP approach can be viewed as freeing
the particles from these serial chains.
Koh and Huang15 modeled hair clusters as strips of
spline surfaces and avoided collisions by introducing springs
among them. Plante et al.20 simulated interactions among
the hair clusters, each of which was modeled as a skeleton and its envelope. The skeleton captures the lengthwise
shape of the cluster, whereas its envelope captures the crosssectional shape deformation. Chang et al.4 simulated only asmall number of hair strands called guide hairs, and interpolated the rest. They handled hair-hair interactions with auxiliary triangle strips spanning the nearby strands. These threemethods are similar in spirit. They reduce the number of hairstrands to be computed (in the form of strips, skeletons, andguide hairs, respectively) in order to speed up the simulation
and also to capture the discontinuities of hair. Moreover, thegaps among the sparse hair strands are compensated for byadditional structures such as springs, envelopes and auxiliary
triangle strips, respectively. We also take a similar approach,but since the particles are distributed over the hair volume
as shown in Figure 1 (b), the gaps between the particles are
small. Besides, compensation for these gaps, which actuallymodels hair-hair interactions, is performed through particle
dynamics rather than by introducing additional structures.
The method by Koh and Huang15 achieved real-time animation, but the springs accounting for hair-hair interactions
were simplistic and imposed strong restrictions on free lateral motion of the hair. The methods proposed by Plante etal.20 and Chang et al.4 took up to tens of seconds to obtainthe final rendered image.

3. Modeling Hair with LCP
2. Related WorkIn this section, we limit our review to previous work on
the animation of hair that takes into account hair-hair interactions. Interested readers may refer to the survey by
Magnenat-Thalmann et al.17 and Kim’s dissertation12 .
Several works have modeled specific aspects of hair-hairinteractions. Kim and Neumann13 added some constraints tohair strands by enclosing a hair surface within a thin bounding volume. Lee and Ko16 gave hair body by prohibiting
hair strands from penetrating inside layers defined aroundthe head.

3.1. Overview
Hair is modeled as a set of particles that serve as sampling
points for the volume of the hair. Particle i has mass mi , position xi and velocity vi , just like a standard particle system.
The mass indicates the amount of hair medium that the particle represents and the distribution of the particle mass inspace determines the density of the hair. The density here
indicates the amount of hair medium in a unit volume, as
distinguished from the density of the hair material. As described by Hadap and Magnenat-Thalmann10 , we borrow an
idea from smoothed particle hydrodynamics (SPH)18, 6 , andc The Eurographics Association and Blackwell Publishers 2003.
Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

the density ρi at position xi is computed as follows:ρi = ∑ m jW (||x j − xi ||, h),(1)jwhere j runs through all of the particle indices and W represents an interpolating kernel called a smoothing kernel. We
assume that the particles are smeared out in space so thateach particle represents the volume density around it. h iscalled the smoothing length and indicates the extent of theinfluence. We used the following smoothing kernel18 :

 2
 3

0≤r≤h
 4 − 6 hr + 3 hr
1


r 3
W (r, h) =2−h ≤ r ≤ 2h .
3
h

4πh 
0
2h ≤ r(2)
Thus only nearby particles within a distance of 2h contributeto the summation of Equation (1).
In addition, particle i has a unit vector ti that represents
the direction of hair, and it also has constant coordinates(ui , vi , si ) indicating the initial state of the hair, where (ui , vi )are parameters on the scalp and si is the arc length of hairfrom the scalp. Section 3.2 describes how to determine theinitial hair directions and assign these coordinates.
The dynamics of hair comes from a combination of thecharacteristics of hair strands and hair-hair interactions. As
described in Section 3.3, the dynamics of hair strands can be
accounted for by forces acting between a fixed set of particle pairs that are initially near neighbors, because two particles in each pair share a portion of some hair strands andshould have lengthwise coherence. We determine this set ofpairs using smoothing length h1 in the initialization processdescribed in Section 3.2. On the other hand, forces due tohair-hair interactions act among current neighboring particles with smoothing length h2 , as described in Section 3.4.
Thus, at each time step we have to search for pairs of particles less than 2h2 apart. This can be performed efficiently bya grid of voxels of size 2h2 . Assuming that the distributionof particles is fairly even, the time complexity bears a linear
relationship to the number of particles6 . We also apply otherforces such as gravity and air friction as described in Section 3.5, and update the particle positions and velocities byintegrating the equations of motion. In summary, after initializing particles, we repeat the following sequence of steps
per time step.
1. Perform neighbor search.
2. Compute the particle density using Equation (1).
3. Activate the forces described in Sections 3.3, 3.4 and 3.5.
4. Update the particle positions and velocities.
5. Update the particle directions using Equation (15).
3.2. Particle Initialization
This subsection describes the method for distributing particles over a polygonal head model prior to animation.
First, as shown in Figure 2 (a), we trim the scalp surfacec The Eurographics Association and Blackwell Publishers 2003.


from the head model with four Catmull-Rom spline curves3
by specifying their control points interactively. Then we embed the scalp surface in a unit square domain D : [0, 1]×[0, 1]
with axes u and v as shown in Figure 2 (b), using a piecewise linear approximation of harmonic mapping8 . If we denote this mapping from world space to the parameter domain by φ : 3 → D, the scalp surface in the world space isfully parameterized by coordinates (u, v) as φ−1 (u, v). We
add a third dimension s over D, which represents the arc
length of hair, and then distribute the particles within the volume of this square pillar, as shown in Figure 2 (c). Its lower
bound is the plane s = −sr , where sr is the depth of the hairroot beneath the scalp. The particles with negative arc length
are referred to as root particles, and are fixed to the head
during animation. The upper bound of the parameter volume is given as the hair length map L(u, v), which is given
as a user-defined grayscale image scaled by the maximum
length of hair. As we want the particles to evenly sample thehair volume, we distribute the particles based on the Poissondisc distribution. In order to compensate for the distortion of
mapping φ, we use the distance between the corresponding
points on the scalp in the world space for the (u, v) coordinates. That is, we define the distance between two points
P1 (u1 , v1 , s1 ) and P2 (u2 , v2 , s2 ) in the parameter domain as:d(P1 , P2 ) = ||φ−1 (u1 , v1 ) − φ−1 (u2 , v2 )||2 + (s1 − s2 )2 .
(3)
Finally, particle i with parameters (ui , vi , si ) other than theroot particles is mapped back to the world space using thecantilever beam simulation method proposed by Anjyo etal.1 . Starting from the root position φ−1 (ui , vi ) in the hairroot direction tr (ui , vi ) specified over the scalp, we integrate
the beam model of length si to account for the bending of
the hair due to gravity, and we determine the particle position xi and the direction ti by those of the endpoint of thebeam. On the other hand, the root particles are placed inside
the scalp as xi = φ−1 (ui , vi ) + si tr (ui , vi ). Figure 2 (d) shows
the resultant initial state of the particles.
Specifying the root direction tr (u, v) manually is a rather
tedious task, and we can determine it simply by the following steps. The user first selects a point on the scalp as a whorl
center of the hair. We denote the normal vector at this pointby nw . Then the root direction is computed using the unit
normal vector n(u, v) of the scalp by the following equation:tr (u, v) = −wt {nw − (nw · n(u, v))n(u, v)} + wn n(u, v), (4)where wt and wn are user-specified global weighting constants for the tangent and normal components of the hairroot direction, respectively. A large value for wt relative to
wn makes the hair lie down. The obtained root direction isthen normalized.
To simulate the dynamics of hair strands, we establish
the connections between nearby particles. As shown in Figure 3 (a), the neighbor search is performed with a smoothinglength h1 for the positions of the particles initialized in theBando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

xi

v
1

θij

lij
i

xij

2h1

ti

ti
xi

0

(a)

1

tj

(b)
(a)

s

v
1

1
-sr

(b)

xij

xj

(c)

Figure 3: (a) The neighbor search is performed with asmoothing length h1 (so the radius is set as 2h1 ), and theparticles connected with the center particle i are divided
into two groups: Nr (i) (the blue nodes) and Nt (i) (the green
nodes). (b) The initial state of a particle pair. (c) A diagram
for updating the hair direction.

L(u, v)

0

θji

xj

n axisrotatio

ti
u

t ij
θij

u

lower bound

(c)

(d)

Figure 2: Initializing particles over the scalp. (a) A trimmed
scalp surface. (b) The scalp surface embedded in a unit
square. (c) The volume of the parameter domain (u, v, s). (d)The particles mapped back to the world space. The line segments indicate the hair directions.

above procedure, where h1 is a little larger than the initialaverage inter-particle distance. Moreover, we store the initialstate of each particle pair (i, j) by computing the distance li j
between the two particles, and the angle θi j between the hairdirection ti and the direction of the particle pair xi j = x j −xi ,as shown in Figure 3 (b).
We assign a strength of connection ci j to the particle pairusing the following equation, which is used for the springcoefficients described in the next subsection:
ci j = ai j li j ,(5)where ai j indicates the degree to which two particles arealigned in a row and thus how strong their lengthwise coherence is. This is defined as:| cos θi j − cos θ ji |/2 cos θi j · cos θ ji < 0, (6)ai j =
0otherwise
which has the maximum value of 1 when the three vectors
ti , t j and xi j are oriented in the same direction. Even whenti and t j are colinear, the two particles are not considered
to be well aligned if xi j is perpendicular to them. Because
we activate the spring forces that account for the stiffnessof the hair strands, connecting particles in close proximitywith stiff springs makes the system unstable. Therefore, thesecond factor li j in Equation (5) is used for stability. For

computational efficiency, we first omit the pairs which haveai j smaller than a threshold a0 . Then, from the pairs whichhave smaller values for ci jW (li j , h1 ), which is the initialspring coefficient between the two particles as will be described in Equation (7) in the next subsection, we omit themrecursively until the number of connections for each particle is around the specified value Nn . Experimentally we use
a0 = 0.5 and Nn = 12. In Figure 3 (a), Nn = 6.
3.3. Dynamics of Hair
In this subsection, we focus on the dynamics of hair that isdue to the characteristics of hair strands, and hair-hair interactions are explained in the next subsection.
The hair volume can be considered as a deformable body,which can be animated by connecting the neighboring particles with damped springs. The particle pairs are establishedusing smoothing length h1 in the initialization process described in the previous subsection and this set of pairs isfixed during the animation phase. Since the hair volume
deforms anisotropically, i.e., it is hard to stretch but free
to move laterally as Chang et al.4 pointed out, we model
large tensile stiffness and small bending stiffness of the hair,though we do not consider the twist of hair and neglect thetorsional stiffness. To realize free lateral motion of the hair,
we make the connections between the particles loose by using the following spring coefficient, which is a function of
the current distance between a pair of particles:
ki j = ci jW (||xi j ||, h1 ),(7)which gradually decreases as the two particles draw apartuntil they become free from each other at a distance of 2h1 .
However, these loose connections also allow the hair tostretch. Therefore, in order to prevent the tensile stiffness ofc The Eurographics Association and Blackwell Publishers 2003.
Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

hair from changing, we keep the tensile elastic modulus ofeach particle constant during animation. The elastic modulus(also known as Young’s modulus) E is unique to a material,
and we can relate it to the rest length L and a cross-sectional
area A of the material by the following equation:
L
K,
(8)
A
where K corresponds to the spring coefficient when we viewthe material as the lengthwise spring. In the following, we
express E in terms of the parameters of the particles and thesprings connected between them. The cross-sectional area Aiof the hair which particle i represents (not of individual hairstrands) can be written as the following equation using thedensity δ of the hair material:
E=

Ai =

mi
δ

2
3

.

(9)

Since we are concerned with the tensile stiffness of thehair, we divide the neighboring particles of particle i into twogroups, as shown in Figure 3 (a): one includes those closer tothe root of the hair, and the other includes those closer to thetip of the hair. They are denoted by Nr (i) and Nt (i), respectively. For each group, we sum up all of the contributions of
the springs to the elastic modulus of particle i, which is kept
constant by solving the following equations with unknown
scaling factors αi j for the spring coefficients ki j :E =1∑ li j αi j ki j
Ai j∈N(i)(10)

1∑ li j αi j ki j ,Ai j∈N
(i)

(11)

r

E =

t

where li j is the rest length of the spring between particles iand j, which is their initial distance as described in Section
3.2. The number of unknowns αi j is the number of particle
pairs, and it is much larger than the number of equations,which is twice the number of particles. Thus, Equations (10)and (11) form an underdetermined sparse linear system. To
keep the computational cost as low as possible, we directly(non-iteratively) obtain an approximate solution to this system in linear time in the number of particles, which cannot
be accomplished by the least square methods for underdetermined linear systems5 . Since the spring coefficients ki jalready include weighting factors through Equation (7), we
make αi j independent of j as:
αi j = αr,i for ∀ j ∈ Nr (i),(12)

and we solve Equation (10) for each i individually:
αr,i =

EAi.
∑ li j ki j

(13)j∈Nr (i)Similarly Equation (11) is solved to obtain αt,i , and we takethe average of the two solutions as follows:(αr,i + αt, j )/2 i ∈ Nt ( j) ∧ j ∈ Nr (i). (14)
αi j =(αr, j + αt,i )/2 i ∈ Nr ( j) ∧ j ∈ Nt (i)c The Eurographics Association and Blackwell Publishers 2003.


In summary, at each time step, we first compute the raw
spring coefficients ki j using Equation (7), then we compute the scaling factors αi j using Equations (13) and (14),and finally we activate spring forces with spring coefficients
αi j ki j . As the particles draw apart and several connections
between them become weak or have no effect, the remaining
connections become strong to maintain the tensile stiffness.
Even though the particles have no direct connections to thescalp, the hair neither stretches nor comes apart.
Based on the current spring coefficient αi j ki j , we update
the hair direction ti of particle i. As described in Section 3.2,
particle i has the initial angle θi j between the hair direction
ti and the direction of the connection xi j . Thus, we can comj
pute the updated hair direction ti by rotating the normalized
vector of xi j by angle θi j around the axis normal to both ti
and xi j , as shown in Figure 3 (c). Taking the weighted sum,the final updated hair direction is:t∗i = ∑ αi j ki j ti ,
j

(15)

j

where t∗i is subsequently normalized.
3.4. Hair-hair Interactions
We model attraction/repulsion, collision, and friction to account for hair-hair interactions. The forces due to these interactions act upon current nearby particles, and can be modeled by using a smoothing length h2 that is a little smaller
than the initial average inter-particle distance.
Attraction/repulsion forces can be caused by lipids, hairdressings or static electricity. Macroscopically, the effect ofthese interactions is to preserve the average density of hair.
The force on particle i due to particle j is given by the following equation, which is the pressure force in SPH18 :fa, ji = −mi m j

Pj
Pi
+ 2
ρ2i
ρj

∂
W (||xi j ||, h2 ),
∂xi

(16)

where the pressure P is modeled as P = ka (ρ − ρ0 ) and ka
and ρ0 control the magnitude of the force and the averagedensity, respectively6 . A small value for ρ0 makes the hair
repulsive, whereas a large value makes it cohesive.
To model inelastic collisions of hair, we simply reduce
the relative velocity vi j = v j − vi of two particles if they areapproaching. The direction of the collision, dn , is normal tothe hair directions ti and t j of both particles. Thus, dn = ti ×
t j . If ||dn ||  1, the two hair directions are almost colinear,and in this case we can compute the direction of the collision
as dn = xi j − (xi j · ti )ti . After normalizing dn , we check thesign of (xi j · dn )(vi j · dn ). If this is negative, the two particles
are approaching, and we apply the following force:
fc, ji = dc W (||xi j ||, h2 ) (vi j · dn )dn ,where dc is the collision damping constant.

(17)Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

Friction is modeled similarly. The direction dt of the frictional force is defined as vi j − (vi j · dn )dn , which is normal
to the direction of the collision dn . After normalizing it, theforce is computed as:
f f , ji = d f W (||xi j ||, h2 ) (vi j · dt )dt ,(18)

where d f is the frictional damping constant.
3.5. Other Forces
We model gravity, air friction, wind, inertia due to head
movement, and collisions against the body (the head and thetorso). Gravity is a downward force whose magnitude is proportional to the particle mass, and air friction is modeled asa damping force whose magnitude is proportional to the particle velocity.
The wind is also represented by a set of particles, and issimulated using SPH18 . The interactions between the hair
particles and the air particles are modeled as drag forces between them10 , and thus the wind is also affected by movement of the hair. Though these interactions include the effectof air friction, the damping force described above is still necessary to prevent abrupt motion of the hair. Since our LCP
approach models hair solely with particles, other particlebased methods are easily incorporated with a slight modification to the programming code.
The reason to model inertia is that it is numerically morestable to modify the particle accelerations than their positions. We describe the equations of motion of the particles
with respect to the local coordinate system attached to thehead, and we exert inertial forces on the particles, avoiding
directly altering their positions relative to the head.

(a)Figure 4: The hair rendered (a) without (b) with shadows.

To simulate the highly anisotropic phase function of hair
we use the Goldman model9 , which adds a directionality factor to the Kajiya-Kay model11 that controls the reflection
and transmission ratios of light. However, as the number ofparticles is relatively small for computational efficiency, thephase function alone is not sufficient to produce the appearance of hair strands. We compensate this loss by mapping
hair texture to the billboards instead of the simple texture ofa Gaussian distribution. Figure 5 (a) shows an example ofhair texture. We match the hair direction of the texture (usually the vertical axis) to the particle direction ti as shownin Figure 5 (b). As opposed to the standard billboard, we
can only place it so that its horizontal axis is parallel tothe screen. Hence, we scale the opacity of the billboard by
1/ sin θ, where cos θ = ti · d p and d p is the direction of projection. We can further augment the directionality by scaling
the size of the billboards as shown in Figure 5 (c).
standard billboard

After applying all of the forces described so far, collisions
between the particles and the body are detected efficiently byagain utilizing the voxel grid structure. And each particle incontact with the body suffers a repulsive force that dissipates
its relative velocity normal to the body, and a frictional force
is also exerted according to Coulomb’s model2 .
4. Rendering Hair
Since the particles represent the volume density of hair, we
can render hair by using volume rendering techniques, justas Kajiya and Kay did for their furry teddy bear11 . Unlike thestandard voxel grid structure, the density field in our modelis represented by the distribution of particles, and in this case
we can benefit greatly from the splatting method with billboards by using the hardware accelerated method presented
by Dobashi et al.7 . We assume a parallel light source, and in
the first pass, we project the particles in the direction of thelight source in order to ascertain how much of the light intensity is attenuated. In the second pass, we can then render
the hair with complex self-shadows that enhance the volumetric appearance of the hair. Figure 4 shows the rendered
images of our hair model without and with shadows.

(b)

our billboard
ti

scr
een

(a)

ti

dp

(b)

(c)

Figure 5: (a) An example of hair texture. (b) The hair direction of the texture is matched to the particle direction. This
figure shows the case of orthogonal projection. The case of
perspective projection is similar. (c) The size of the billboard
is scaled.

5. Results
We successfully animated the hair with a head and torso
model at an interactive frame rate. Figures 6 (a) – (c) show a
few frames from an animation of back hair. The hair is forced
to split into two, and then merges again because of gravity. Hair-hair interactions prevent the hairs from penetratingc The Eurographics Association and Blackwell Publishers 2003.
Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles

each other as shown in Figure 6 (c), which is a contrast to
Figure 6 (d) where hair-hair interactions are not considered.
Figure 7 shows an animation of hair when the head is shaken.
The head turns around and the hair follows this motion withdelay because of inertia. Dynamic clustering effects are visible. Figure 8 shows an animation of hair blowing in wind.
Interactions between the hair and the air are also simulated.

(a)

(b)

Figure 8: Animation of hair blowing in wind. Left to right,
top to bottom.

(c)

(d)

Figure 6: (a) – (c) A few frames from an animation of backhair. (d) The hairs penetrate each other when hair-hair interactions are not considered, which is a contrast to (c). The
difference is clearly seen in the red circles.

We used about 2,000 particles to represent the hair for
all of the animations presented above. The number of particles is determined by a compromise between accuracy andefficiency, and we chose the number so that the animation,
including both simulation and rendering with shadows, canbe performed at an interactive frame rate. The hair was animated at 6.7 fps on a PC with an Intel Pentium 4 2.8 GHz
CPU and an NVIDIA Quadro4 900 XGL GPU. The simulation took 33% of the total computation time, and the rendering took the rest. The size of the image and the buffer forcomputing shadows is 512 × 512.
6. Conclusions and Future Work
This paper has presented a practical method for animatinghair with a new model called loosely connected particles(LCP). The hair is modeled as a set of unordered particles
that serve as sampling points for the volume of the hair. The
loose connections between the particles make the hair free tomove laterally, nevertheless providing lengthwise coherenceby maintaining their tensile stiffness. The hair is renderedby placing billboards with hair texture at the positions of theparticles, utilizing graphics hardware accelerations.
Our LCP approach has the following advantages:

Figure 7: Animation of hair when the head is shaken. Left toright, top to bottom.

• It reduces the high computational cost of simulating the
dynamics of the hair including hair-hair interactions, andrealizes interactive hair animation.
• The simulation is solely based on the particle dynamics,
which simplifies the implementation. Other particle-based
methods can be easily incorporated.
On the other hand, there are limitations to our method:c The Eurographics Association and Blackwell Publishers 2003.
Bando, Chen, and Nishita / Animating Hair with Loosely Connected Particles• It is applicable to only a simple hairstyle, and extension tovarious hairstyles is a major remaining task.
• The simulation is not physically rigorous. The nonlinear
spring forces accounting for the stiffness of the hair aredesigned to obtain the desirable motion of the hair, andthe bending stiffness is not modeled explicitly.
• The hair is still rendered coarsely. Interpolating between
the particles to place many smaller billboards would produce finer images, but this will slow down the system below an interactive frame rate on current computers.
In addition to addressing the above limitations, the future
direction of this work would be to take further advantage ofthe particle representation, for example, adaptive samplingof the hair volume and incorporating the simulation level ofdetail technique19 .
Acknowledgments
We thank Prof. Nelson Max (University of California) and
Dr. Yoshinori Dobashi (Hokkaido University) for many useful suggestions, and Ryoichi Mizuno for naming our hairmodel “loosely connected particles.” This project is partially
supported by Toshiba Corporation.
References

8.

M. Eck, T. DeRose, T. Duchamp, H. Hoppe, M. Lounsbery, and W. Stuetzle. Multiresolution analysis of arbitrary meshes. Proceedings of ACM SIGGRAPH ’95,
173–182, 1995. 3

9.

D. Goldman. Fake fur rendering. Proceedings of ACM
SIGGRAPH ’97, 127–134, 1997. 6

10. S. Hadap and N. Magnenat-Thalmann. Modeling dynamic hair as a continuum. Computer Graphics Forum(Eurographics 2001 Proc.), 20(3):329–338, 2001. 1,
2, 6
11. J. Kajiya and T. Kay. Rendering fur with three dimensional textures. ACM Computer Graphics (Proc.
of SIGGRAPH ’89), 23(4):271–280, 1989. 6
12. T.-Y. Kim. Modeling, Rendering and Animating Human Hair. Ph.D dissertation, University of Southern
California, 2002. 2
13. T.-Y. Kim and U. Neumann. A thin shell volume formodeling human hair. Proceedings of Computer Animation 2000, 121–128, 2000. 1, 2
14. T.-Y. Kim and U. Neumann. Interactive multiresolution hair modeling and editing. ACM Transactions on
Graphics (Proc. of SIGGRAPH 2002), 21(3):620–629,
2002. 2

1.

K. Anjyo, Y. Usami, and T. Kurihara. A simple method
for extracting the natural beauty of hair. ACM Computer Graphics (Proc. of SIGGRAPH ’92), 26(2):111–
120, 1992. 3

15. C. K. Koh and Z. Huang. A simple physics model toanimate human hair modeled in 2D strips in real time.
Proceedings of Eurographics Workshop on Computer
Animation and Simulation 2001, 127–138, 2001. 2

2.

R. Bridson, R. Fedkiw, and J. Anderson. Robust treatment of collisions, contact and friction for cloth animation. ACM Transactions on Graphics (Proc. of SIGGRAPH 2002), 21(3):594–603, 2002. 6

16. D.-W. Lee and H.-S. Ko. Natural hairstyle modelingand animation. Graphical Models, 63(2):67–85, 2001.
1, 2

3.

4.

5.

6.

7.

E. Catmull and R. Rom. A class of local interpolating
splines. Computer Aided Geometric Design (Proc. ofInternational Conference on Computer Aided Geometric Design ’74), 317–326, 1974. 3
J. T. Chang, J. Jin, and Y. Yu. A practical model forhair mutual interactions. Proceedings of ACM SIGGRAPH Symposium on Computer Animation 2002, 73–
80, 2002. 1, 2, 4
R. E. Cline and R. J. Plemmons. l2 -solutions to underdetermined linear systems. SIAM Review, 18(1):92–
106, 1976. 5
M. Desbrun and M.-P. Gascuel. Smoothed particles: a
new paradigm for animating highly deformable bodies.
Proceedings of Eurographics Workshop on Computer
Animation and Simulation ’96, 61–76, 1996. 2, 3, 5
Y. Dobashi, K. Kaneda, H. Yamashita, T. Okita, and T.
Nishita. A simple, efficient method for realistic animation of clouds. Proceedings of ACM SIGGRAPH 2000,
19–28, 2000. 6

17. N. Magnenat-Thalmann, S. Hadap, and P. Kalra. Stateof the art in hair simulation. Proceedings of International Workshop on Human Modeling and Animation
2000, 3–9, 2000. 2
18. J. J. Monaghan. Smoothed particle hydrodynamics. Annual Review of Astronomy and Astrophysics, 30:543–
574, 1992. 2, 3, 5, 6
19. D. O’Brien, S. Fisher, and M. C. Lin. Automatic simplification of particle system dynamics. Proceedings ofComputer Animation 2001, 210–219, 2001. 8
20. E. Plante, M.-P. Cani, and P. Poulin. A layered wisp
model for simulating interactions inside long hair. Proceedings of Eurographics Workshop on Computer Animation and Simulation 2001, 139–148, 2001. 1, 2
21. C. R. Robbins. Chemical and Physical Behavior of Human Hair (4th ed.). Springer-Verlag, 2002. 1
22. R. Rosenblum, W. Carlson, and E. Tripp. Simulating
the structure and dynamics of human hair: modeling,
rendering and animation. The Journal of Visualization
and Computer Animation, 2(4):141–148, 1991. 1
c The Eurographics Association and Blackwell Publishers 2003.