0% found this document useful (0 votes)
32 views11 pages

Real-Time Interactive Tree Animation

1) The authors present a novel method for real-time interactive animation of botanical tree models. Their approach allows for arbitrarily high stiffness values while maintaining real-time frame rates, even for large trees with over 10,000 branches. 2) They model trees as articulated rigid bodies connected by rotational springs. Their simulation technique is based on position-based dynamics and achieves efficiency by using analytic solutions to spring dynamics equations. 3) This allows them to simulate trees with millions of branches in real-time on a single CPU core, enabling incorporation into game engines for interactive use even on low-cost tablets.

Uploaded by

Zhang Xu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views11 pages

Real-Time Interactive Tree Animation

1) The authors present a novel method for real-time interactive animation of botanical tree models. Their approach allows for arbitrarily high stiffness values while maintaining real-time frame rates, even for large trees with over 10,000 branches. 2) They model trees as articulated rigid bodies connected by rotational springs. Their simulation technique is based on position-based dynamics and achieves efficiency by using analytic solutions to spring dynamics equations. 3) This allows them to simulate trees with millions of branches in real-time on a single CPU core, enabling incorporation into game engines for interactive use even on low-cost tablets.

Uploaded by

Zhang Xu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO.

X, XXXXX 2017 1

Real-time Interactive Tree Animation


Ed Quigley, Yue Yu, Jingwei Huang, Winnie Lin, and Ronald Fedkiw

Abstract—We present a novel method for posing and animating botanical tree models interactively in real time. Unlike other state of
the art methods which tend to produce trees that are overly flexible, bending and deforming as if they were underwater plants, our
approach allows for arbitrarily high stiffness while still maintaining real-time frame rates without spurious artifacts, even on quite large
trees with over ten thousand branches. This is accomplished by using an articulated rigid body model with as-stiff-as-desired rotational
springs in conjunction with our newly proposed simulation technique, which is motivated both by position based dynamics and the
typical O(N ) algorithms for articulated rigid bodies. The efficiency of our algorithm allows us to pose and animate trees with millions of
branches or alternatively simulate a small forest comprised of many highly detailed trees. Even using only a single CPU core, we can
simulate ten thousand branches in real time while still maintaining quite crisp user interactivity. This has allowed us to incorporate our
framework into a commodity game engine to run interactively even on a low-budget tablet. We show that our method is amenable to the
incorporation of a large variety of desirable effects such as wind, leaves, fictitious forces, collisions, fracture, etc.

Index Terms—Computer Graphics, Physically-based Modeling, Botanical Tree

1 I NTRODUCTION trees since their angular displacements are relatively small


on a per-joint basis and large-scale bending is achieved from
T HE subtle movement of trees is a prevalent yet mes-
merizing natural phenomenon. When walking down a
street in autumn, one can find the fluttering of leaves and the
the cumulative effect of many joints.
Specifically, we propose a new approach for the sim-
swaying of branches no less varied or poetic than the flames ulation of trees as systems of rigid bodies articulated by
in a fireplace or ocean waves on the beach. In this work, we stiff joints via approximations that permit an analytic (and
strive to capture the complex natural motions exhibited by thereby robust and efficient) treatment of joint springs.
trees. We discuss how various factors such as fictitious forces,
Motivated by position based dynamics [1], as well as the collisions, and wind can be integrated into such a solver.
O(N )-style algorithms for articulated rigid body simulation We demonstrate this method’s utility in parameterizing and
proposed by [2] and others, we designed a new method efficiently simulating tree models with many degrees of
for efficiently solving articulated rigid body systems where freedom.
joints can be arbitrarily stiff as they are in the case of
trees, especially those with thick trunks and branches. This 2 P REVIOUS W ORK
is accomplished in part by using the analytic solutions
There are many approaches one might take in order to
to the spring dynamics equations in order to model rota-
simulate trees, and many of these have not yet been fully
tions about joints. Our simulation method is significantly
explored or even considered. For example, there is an
faster than Featherstone-style approaches since these quite
interesting body of work on hair simulation, see e.g. [3],
often require either small time steps or expensive implicit
[4], [5], and it would be interesting to consider extending
time integration, whereas we leverage the simplicity of a
this work to situations with branching structures as in [6],
position based dynamics approach. However, we do not
[7]. The most physically accurate way to simulate trees
require repeated iteration as is common in the Gauss-Seidel-
would be to use many small tetrahedra and a finite ele-
style approach to position based dynamics. Our solver is
ment method. However, this is infeasible in practice since
significantly faster than both of these approaches with the
it would require a vast number of tetrahedral elements as
drawbacks of neither when it comes to stiff-joint systems.
well as biomechanically accurate constitutive models. One
However, in order to obtain this increase in performance,
could perform faster simulations by embedding small thin
we sacrifice the ability to accurately model joints that are
branches into a coarser tetrahedral cage mesh or by approx-
readily flexible, such as the links of a chain. Fortunately, this
imating the deformations with a reduced deformable model
aggressive approximation does not hinder the simulation of
[8]. However, a reduced deformable has global modes and
cannot be used to model varying local stiffnesses. This
• The authors are with the Department of Computer Science, Stanford
University, Stanford, CA, 94305. R. Fedkiw is also with Industrial Light
can be partially addressed by articulating multiple reduced
+ Magic, San Francisco, CA, 94129. E-mail: {equigley, yuey, jingweih, deformable domains [9]. Even so, the reduced deformable
winnielin}@stanford.edu, fedkiw@cs.stanford.edu. domains still contain their own global modes making it
Manuscript received 9 Sept. 2016; revised 26 Jan. 2017; accepted 26 Jan. 2017. difficult to set varying stiffnesses locally. This typically leads
Date of publication 0 . 0000; date of current version 0 . 0000. to trees with twigs that are too stiff or a main trunk that is
Recommended for acceptance by M.A. Otaduy. too soft bending severely in a manner that resembles plants
For information on obtaining reprints of this article, please send e-mail to:
reprints@ieee.org, and reference the Digital Object Identifier below. with green, flexible stems, whereas our proposed method is
Digital Object Identifier no. 10.1109/TVCG.2017.2661308 geared towards stiff, woody trees.
1077-2626 © 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
2 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO. X, XXXXX 2017

Fig. 1: A park containing many trees. The willow tree contains 970,748 articulated rigid bodies, the cherry blossom tree
contains 246,979 articulated rigid bodies, each apple tree has 42,212 articulated rigid bodies, and each maple tree has
138,965 articulated rigid bodies. The most complex tree in the scene contains 3,267,482 articulated rigid bodies.

When objects are stiff, one typically considers rigid body incorporate fracture, wind using Perlin noise, and rest state
approximations, and well-known approaches for evolving editing using inverse kinematics; it was further extended by
articulated rigid bodies in linear time exist for both gen- [37] to incorporate automatic assignment of stiffness and
eralized [2] and maximal coordinates [10]. A tree can be damping parameters. [38] proposed a technique for set-
modeled as an articulated rigid body (see e.g. [11]) as long ting anisotropic stiffnesses for materials such as stems and
as one provides some notion of an elastic stiffness for the leaves. [39] presented a linear time algorithm for simulating
joints. The main drawback with this approach is that the flexible trees, and [40] detailed an image-based modeling
stiff springs utilized to limit bending in the thicker regions approach as well as a sweeping method for simulation that
of the tree require either small time steps or implicit inte- propagates forces and branch displacements. Trees have also
gration, both of which can be rather costly. Therefore, when been simulated to interactively respond to rain [41]. [42]
computational efficiency is required, either for real-time or simulated the change in shape of drying leaves. [43] used
large scale applications, one is forced to resort to either a particle-based approach to simulate underwater plants.
softer springs or potentially error-prone approximations
of the linear solver. Both approaches produce undesirable
artifacts and/or excessive bending similar to that exhibited 3 G EOMETRIC R EPRESENTATION
by flexible underwater plants. To combat these issues, [12] We model the trunk, branches, and twigs as a series of
proposed a modification to Baraff’s Lagrange multiplier conical frustums obtaining a piecewise linear approxima-
method that integrates stiff forces implicitly for open-chain tion of the curved branch. A leaf is represented by a thin
articulated rigid bodies, and [13] proposed the use of ex- triangular prism allowing us to approximate it as a triangle
ponential integrators for solving stiff problems in computer
graphics. The general methodology that we pursue—that of
improving stability by finding an approximate subproblem
that can be solved analytically and thus robustly—dates
back some time; see for example [14] and the discussions
therein.
Work on the geometric modeling of trees considers L-
systems [15], rules based on geometry [16], environmental
factors [17], botany [18], and various combinations of these,
e.g. L-system models that interact with their environment
[19]. Researchers have also developed capture and recon-
struction techniques that take in data formats such as point
clouds [20], videos [21], [22], images [23], [24], [25], and
sketches [26], [27]. Wind-tree interaction has been simulated
in [28], [29], [30] and animated in real time in [31], [32],
[33]. [34] modeled tree motion via a stochastic treatment
that obviated the need to simulate a full wind field. [35]
proposed a growth model and used SPH combined with
sensor particles to achieve two-way coupled effects in real
time. The aforementioned [9] presented a Featherstone-style Fig. 2: A tree is modeled as a collection of articulated rigid
method for tree simulation that operates on articulated bodies. Green circles represent the point joints between
reduced deformable domains, but for shallow hierarchies bodies, and the red arrow illustrates a force applied to the
and few branches. This method was extended by [36] to rightmost rigid body due to the weight of a small creature.
QUIGLEY ET AL.: REAL-TIME INTERACTIVE TREE ANIMATION 3

propose an O(N )-style algorithm as well, but we make


several aggressive assumptions that alleviate the need for
small time steps or costly iterative solvers without restrict-
ing our ability to emulate tree dynamics. Most importantly,
our algorithm allows for the use of analytic solutions to the
spring dynamics equations in order to alleviate any time
step restriction whatsoever either for accuracy or stability
reasons. In fact, our method robustly and efficiently takes
only a single time step per rendered frame (1/30 sec), allow-
ing us perform simulations in real time (see Figure 3).
During each time step of our evolution algorithm, we
evolve the tree’s rigid bodies in the following four stages:
External force computation: For each rigid body we
compute external forces and torques due to gravity, user
Fig. 3: A tree made up of 9.5k articulated rigid bodies is mouse input, collision penalty forces (Section 6), wind forces
simulated in real time at 86 frames/sec.1 (Section 7), etc. The world space net externalPforce and
torque on
P rigid body p are given by fp = i fp,i and

τp = r
i p,i f p,i . Here, r p,i extends from the point at
for interactions with the wind. Fruits are treated as spheres which rigid body p is articulated with its parent to the
in order to utilize efficient collision detection techniques. point at which fp,i is applied, and r∗p,i denotes the cross
Each articulated rigid body of the tree maintains a rigid state product matrix of rp,i . This stage is entirely parallelizable
vector (m, x, v, a, I , R, ω , α) in maximal coordinates as well and exhibits O(N/T ) time complexity for T threads.
as information about its parent, its children, and the forces Composite body update: Our algorithm makes use of
being applied to it. The root rigid body has zero parent rigid composite rigid bodies, which are defined for each rigid
bodies and all other rigid bodies have exactly one parent, body by rigidifying the entire outboard subtree emanat-
defined by sweeping upward from the root. ing from that body inclusive of the body itself. For each
All joints are assumed to be point joints with zero composite rigid body, we compute the mass, the world
translational and three rotational degrees of freedom. The space inertia tensor, and the total external force and torque
rotation vector θ = (θx , θy , θz )T is the rotation from a applied to the composite body evaluated about its parent
parent rigid body’s joint frame to the frame of the child rigid joint. We perform these calculations starting from the leaf-
body. Regardless of the rest pose for the child rigid body’s level rigid bodies and working backward towards the root
orientation, we may set θ = 0 by choosing an appropriate of the tree. For each rigid body p, we first compute its
orientation for the parent rigid body’s joint frame. To each contribution to its composite body (i.e. to m̂p , Iˆpw , f̂p , and τ̂ p ,
joint we attach three one-dimensional rotational springs, where ˆ· denotes a composite body value), then sum over its
each resisting the angular displacement θx , θy , or θz about
the corresponding axis of the joint frame.
Given a quaternion or equivalent rotation matrix for the
rotation from a child’s world space frame to its parent’s
joint frame, we convert the rotation into a rotation vector
representation θ in the standard fashion. Then, after up-
dating θ in time using our newly proposed algorithm, we
transform back to the quaternion or rotation matrix formula-
tion. Although one might worry about temporal consistency
issues in the spring dynamics equations emanating from the
well-known issues with Euler angles, we have not observed
any problematic phenomena. In fact, the spurious artifacts
caused by picking a particular sequence of rotation axes can
be alleviated by interleaving infinitesimal rotations about
the x, y , and z axes. In the limit, interleaving infinitely
many triples of infinitesimally small fractional angles, the
differential rotations become asymptotically commutative
and the order of rotations becomes inconsequential. See e.g.
[44], [45]. A diagram of our model is given in Figure 2.

4 I NTERNAL T REE DYNAMICS Fig. 4: A willow tree sways freely in the wind. Both the trunk
It is well-known that branching articulated rigid bodies can and the individual branches are articulated using many
be evolved using O(N )-style algorithms, see e.g. [2]. We rigid bodies. While the thin branches are flexible enough
to sway in the wind, the thick trunk does not bend (971k
1. We record all timing information from simulations run with 15
threads. rigid bodies, 1.6 sec/frame).
4 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO. X, XXXXX 2017

children’s composite bodies adding in their contributions: Analytic spring evolution: We evaluate our analytic
springs in joint space where we assume the joint is at the
origin. The inertia tensor of the composite body Iˆw is rotated
X
m̂p = mp + m̂c (1)
j ˆw w
c∈Cp into joint space via Rw I Rj , and then the inertia tensor
X about the joint is computed as I˜ = −m̂(Rw j
p̂)∗ (Rw
j
p̂)∗ +
Iˆpw = Ipw − mp pm∗ m∗
p pp + (Iˆcw − m̂c p̂m∗ m∗
c p̂c ) (2) j ˆw w
c∈Cp
Rw I Rj where p̂ is the center of mass of the composite
X body relative to the point at which the composite body is
f̂p = fp + f̂c (3) attached to its parent. Similarly, we move the external torque
j
c∈Cp into the joint space via τ̃ = Rw τ̂ .
We define K as a 3 × 3 diagonal matrix whose entries
X
τ̂ p = τ p + (−p̂a∗
c f̂c + τ̂ c ) (4)
c∈Cp correspond to the stiffnesses of the three one-dimensional
springs governing the joint. Using Rayleigh damping, the
where Cp is the set of children of body p, I w is the world analytic equation of motion for the spring is
space inertia tensor, pmp is the center of mass of rigid body I˜θ̈ + (αI˜ + βK)θ̇ + Kθ = τ̃ (5)
p relative to the center of mass of rigid body p’s composite
body, p̂mc is the center of mass of rigid body c’s composite where we expose β as a user parameter, but α is set iden-
body relative to the center of mass of rigid body p’s compos- tically to 0 since our analytic approach provides robustness
ite body, and p̂ac points from the location where rigid body c and stability even when the time step is equal to the frame
connects with rigid body p to the location where rigid body duration (i.e. not requiring any so-called “ether drag”). We
p attaches to its parent (see Figure 5). transform I˜ and K into a pair of diagonal matrices by
This sweep has the dependency structure of the rigid solving a generalized eigenvalue problem, i.e. using the
body hierarchy but is still amenable to parallelization. For Cholesky factorization I˜ = LLT to write the eigendecom-
example, one could maintain a list of all childless rigid position L−1 KL−T X = XΛ. Setting U = L−T X , we use
bodies in the tree and begin the sweep by assigning each ˜ = δ3×3 and U T KU = Λ in order to
the identities U T IU
thread to the next available childless rigid body. Each thread diagonalize Equation 5 into three independent second order
then processes rigid bodies from the leaf towards the root. linear ordinary differential equations
Whenever a thread encounters a rigid body with multiple 0 0
children where at least one child has not yet been processed, θ̈ + (αδ3×3 + βΛ)θ̇ + Λθ 0 = U T τ̃ (6)
the thread stops and moves on to the next available childless 0
where θ = U −1 θ . Each row of Equation 6 takes the form
body. Once no childless rigid bodies are available to be
θ̈ + bθ̇ + kθ = f . Depending on the roots of the characteristic
processed, the sweep ceases to be entirely parallel. At this
equation r2 + br + k = 0, the analytic solutions are of the
point the worst case performance occurs if another thread
form θ(t) = c1 er1 t + c2 er2 t + f /k , θ(t) = (c1 + c2 t)ert + f /k ,
happens to be starting at a childless rigid body which is the
or θ(t) = c1 eγt cos(µt) + c2 eγt sin(µt) + f /k . Thus, given
maximum depth d away from the root of the tree. Thus, the
the current joint condition, we may analytically integrate
time complexity of this sweep is O(N/T + d).
the state θ robustly and stably forward for all time, albeit
we simply use the analytic solution 1/30 sec later. Note that
θ can be clamped in order to enforce joint limits. Since we
evolve each joint independently of all other joints, this stage
exhibits O(N/T ) time complexity when parallelized.
m̂c1 , Iˆcw1 Note that Equation 5 is technically not the analytic so-
m̂c2 , Iˆcw2
ôc1 lution to the exact problem since in reality external torques
and composite body configurations change throughout the
f̂c1 p̂m
c1 time step. Instead, Equation 5 is the analytic equation for
ôp a “frozen coefficient” version of the problem. However, all
τ̂ c1 pm ôc2 discretizations of ordinary differential equations, both ex-
p p̂m
c2
plicit and implicit, use approximations “frozen” throughout
τ̂ p
o f̂c2 the time step. Our analytic equation is therefore not without
τp p̂ac1 p τ̂ c2
f̂p errors; however, it is quite stable and robust, and it admits
p̂ac2 well-behaved, visually pleasing solutions.
fp
mp , Ipw Rigid body state update: Given θ for every joint, we
m̂p , Iˆpw traverse the tree upwards from the root in order to compute
the final maximal coordinates state for each rigid body. For
a rigid body c that shares joint j with its parent p, we first
compute Rcj from θ c . Then, Rcj and the analytic derivatives
Fig. 5: The red rigid body has two children, whose compos-
of θ c can be used to obtain
ite rigid bodies are shown as blue and green ellipses. The
center of mass of each composite rigid body is denoted by Rcw,n+1 = Rpw,n+1 Rjp Rcj (7)
a point ô. The black, dashed ellipse denotes the composite
ω n+1
c = ω n+1
p + Rpw,n+1 Rjp θ̇ c (8)
rigid body corresponding to the red rigid body. Other la-
beled values correspond to the quantities in Equations 1–4. αn+1
c = αn+1
p + Rpw,n+1 Rjp θ̈ c + (ω n+1
p )∗ ω n+1
c . (9)
QUIGLEY ET AL.: REAL-TIME INTERACTIVE TREE ANIMATION 5

Rotating Equations 17 and 9 into rigid body c’s parent joint


frame gives

m̂c p̃∗c ãj + I˜c α̃c + ω̃ ∗c I˜c ω̃ c = τ̃ int


c + τ̃ c (18)
α̃c = α̃p + θ̈ c + ω̃ ∗p ω̃ c (19)

where the internal and external forces of τ̃ total


c become τ̃ int c
and τ̃ c , respectively. Substituting Equation 19 into Equa-
tion 18 allows us to revise Equation 5 to include fictitious
Fig. 6: A tree’s root is translated left and right. (Left) With- forces on the right hand side, i.e. replacing τ̃ c with τ̃ c + τ̃ fict
c
out fictitious forces, the tree remains vertical. (Right) With where
fictitious forces, the tree bends in response to the root’s
acceleration. τ̃ fict
c = −m̂c p̃∗c ãj − I˜c (α̃p + ω̃ ∗p ω̃ c ) − ω̃ ∗c I˜c ω̃ c . (20)

Note that the fictitious forces do not participate in the


recursive summations in Equations 3 and 4 which are for
Finally, we update the center of mass state of rigid body the external force and torque only.
c to be consistent with its parent joint configuration via One way to observe the effect of the fictitious force
xc = xp + Rpw dpj − Rcw dcj (10) terms is to move a tree’s base kinematically, as in Figure 6.
However, fictitious forces are always active to some degree
vc = vp + ω ∗p Rpw dpj − ω ∗c Rcw dcj (11) as long as the terms in Equation 20 are not identically
ac = ap + (α∗p + ω ∗p ω ∗p )Rpw dpj − (α∗c + ω ∗c ω ∗c )Rcw dcj (12) zero. Note that using our analytic spring evolution with a
time step corresponding to 30Hz can give inaccurate results
where dpj
and dcj are the time-invariant position of joint j in when including the fictitious forces. Thus, our real-time
rigid body p’s and rigid body c’s frame, respectively, and all system allows for a multiplier on the various terms in τ̃ fict
c
other quantities are taken to be at time tn+1 . These equations in order to obtain the desirable effects of fictitious forces
satisfy the joint constraints by construction. The dependency without undesirable artifacts from taking large time steps.
structure of this sweep is the exact opposite of the composite
body update sweep, and therefore the time complexity of
this sweep is also O(N/T + d). 6 C OLLISIONS
In addition to the rigid bodies that comprise a tree, other
5 F ICTITIOUS F ORCES “free" rigid bodies may exist independently in our envi-
ronment. For example, when the torque on a fruit’s joint
In the world frame, the Newton-Euler equations of motion exceeds a threshold, we break the joint and allow the fruit
about the center of mass of rigid body c’s composite body to fall away from its parent branch as a non-articulated
are rigid body. To maintain visual plausibility it is important
to handle collisions between these free rigid bodies and the
f̂ctotal = m̂c âc (13)
articulated rigid bodies that are still part of the tree. See
τ̂ total = Iˆw αc + ω ∗ Iˆw ω c .
c,m c c c (14) Figures 7 and 8.
At the beginning of each frame, we update each free
Here, f̂ctotal is the total internal and external force on the rigid body using typical rigid body evolution. Then we de-
composite body and τ̂ total c,m is the total internal and external tect collisions between these bodies and the tree’s articulated
torque on the composite body evaluated at its center of
mass. Note that our use of Equations 8 and 9 implies that
α̂c = αc and ω̂ c = ω c , i.e. the joint angle of rigid body
c’s composite body inherits its value from the joint angle of
rigid body c. The analog of Equation 12 for rigid body c’s
composite body is

âc = aj + (α∗c + ω ∗c ω ∗c )p̂c (15)

where aj is the pointwise linear acceleration of rigid body


c’s parent joint. Recall that p̂c is the center of mass of rigid
body c’s composite body relative to its parent joint position.
The total torque on rigid body c’s composite body evaluated
about its parent joint

τ̂ total
c = p̂∗c f̂ctotal + τ̂ total
c,m (16)

(with Equations 13–15 substituted in) can be rewritten as


Fig. 7: We use penalty forces to handle collisions with free
τ̂ total
c = m̂c p̂∗c aj +(Iˆcw− m̂c p̂∗c p̂∗c )αc +ω ∗c (Iˆcw− m̂c p̂∗c p̂∗c )ω c . rigid bodies. Here, a ball falls onto a small tree colliding
(17) with and bending its branches.
6 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO. X, XXXXX 2017

Fig. 8: Apples break away from their parent branches and Fig. 9: (Top) A maple tree bends in a strong wind. (Bottom)
collide with other branches as they fall to the ground (42k The leaves of the maple tree flutter in the breeze. Some break
rigid bodies, 10 sub-timesteps/frame, 13 substeps/sec). away from their branches swirling and tumbling as they fall
to the ground (139k rigid bodies, 0.2 sec/frame).

rigid bodies. For each collision, we apply a penalty force of


the form fcoll = ζ(vrel · n)n to the intersecting tree rigid we test for collisions by traversing the tree from the root
body where vrel is the pointwise velocity of the free rigid outwards pruning a subtree if its reachable workspace does
body relative to the pointwise velocity of the tree and ζ is not intersect with the free rigid body.
a user parameter. We then evolve the tree as usual. After
updating the tree, we compute the impulse that makes the
7 W IND
velocity of the free rigid body match the velocity of the tree,
and only apply this impulse when it pushes the free rigid Most interesting tree motion is created by the influence of
body away from the tree. That is, the impulse is not applied wind. In our simulation we immerse a tree in a spatially
when it would cause the free rigid body to stick to the tree. varying wind velocity field by orthographically projecting
Finally, if the free rigid body is interpenetrating the tree, a two-dimensional uniform square grid that encompasses
we apply a small “push out” displacement to help alleviate the tree and its surroundings. The wind velocity is defined
this intersection, see e.g. [46]. Although our internal tree outside of the orthographic projection via constant extrap-
dynamics algorithm runs quite well at 30Hz, this penalty- olation. Each grid cell contains a spatially constant wind
based approach to collisions may require a smaller time step velocity with its own number of octaves, persistence of am-
especially when penalty forces become large. plitudes in higher octaves, and starting phase angle. To add
We speed up collision detection by building an accel- more visually interesting perturbations, we rotate the wind
eration structure based on the reachable workspace (see back and forth about the up vector ĵ using an oscillating
e.g. [47]). The reachable workspace of any given subtree spline function of the form h(||x−(x· ĵ)ĵ||) where the root of
with root body p is the sphere swept out by finding the the tree is at the world origin so that the oscillations occur on
longest straight path within the subtree starting from p’s concentric cylinders resulting in a back-and-forth wiggling
parent joint and rotating it about p’s parent joint. We pre- of the wind. That is, given a parametric wind velocity
compute the radius of every subtree’s reachable workspace v̄wind (x), we normalize v̄wind (x) × ĵ obtaining a unit vector
starting from the leaves and traveling inwards. Let ηp be s(x) and modify the wind to v̄wind (x)+h(||x−(x· ĵ)ĵ||)s(x)
the length of rigid body p, and p̂ac be the vector that points before rescaling to preserve the original magnitude.
from rigid body c’s parent joint to rigid body p’s parent We incorporate the effects of wind on tree branches using
joint. Then we precompute the radius of the reachable a pressure-based force as in [48], [49]. First, we compute
workspace of body p’s subtree η̂p recursively via η̂p = vrel = vwind − vbody where both vwind and vbody are
max(ηp , maxc∈Cp (||p̂ac || + η̂c )) where η̂c is the radius of the evaluated at the rigid body’s center of mass. Since we only
reachable workspace of body c’s subtree. During simulation, consider the component of wind not along the direction of
QUIGLEY ET AL.: REAL-TIME INTERACTIVE TREE ANIMATION 7

ordinary differential equations using a fourth-order Runge-


Kutta method and obtain in-plane fluttering and tumbling
motion; however, they are not able to model spiraling since
their method is restricted to two spatial dimensions. A
subsequent comment [53], a corrigendum [54], and further
revisions to the model [55], [56] (the latter backed by exper-
iments) indicate that accurately modeling falling thin disks
or squares may still be unsettled science. Alternatively, one
could take a data-driven approach as in [57] or even ran-
domly sample prescribed spline curves as in [58]. Motivated
by these aforementioned works and the restrictions imposed
by real-time constraints as well as the inaccuracies incurred
by taking forward Euler time steps at 30Hz, we propose a
related technique that seems to work well in practice.
Let the normal and tangential components of the wind
velocity relative to a leaf be vrel,n = (vrel · n)n and vrel,t =
vrel − vrel,n where n is the leaf’s normal. Then, we propose
a wind force and torque given by

fwind =κl ρAt ||vrel ||vrel,n + νm(vrel,n + vrel,t /ξ) (23)


q
τ wind =κl ρ A2t Aπt (vrel · n)n∗(vrel cos ϕ + n∗ vrel sin ϕ)
− νIω
(24)

Fig. 10: Petals fall from a cherry blossom tree and are carried where κl is a scale factor, At is the area of the leaf’s proxy
away by the wind (247k rigid bodies, 0.3 sec/frame). triangle, m is the leaf’s mass, ν is an air resistance multiplier,
and ξ is the ratio of the normal drag coefficient to the
tangential drag coefficient. The second terms on the right
the branch, we compute vrel,n = vrel − (vrel · t)t where t is hand sides of Equations 23 and 24 are taken directly from
the axial direction of the branch rigid body. Then the wind [52]. The first term on the right hand side of Equation 23 is
force we apply to each branch rigid body is similar in spirit to that in [52] but more along the lines of
Equation 21 except that we use ||vrel || instead of ||vrel,n ||
fwind = κρAc ||vrel,n ||vrel,n (21) since the former seems to give more visually rich fluttering
where Ac is the longitudinal cross-sectional area of the motion. The first term in Equation 24 reduces to that in [52]
conical frustum, ρ is the density of air, and κ is a scaling when ϕ = 0. Nonzero values of the parameter ϕ give an
parameter. For fruits, there is no preferred direction, so we azimuthal offset angle for the torque direction that allows
instead use for three-dimensional spiraling motion.

fwind = κρAs ||vrel ||vrel (22)


where As is the circular cross-sectional area of the fruit’s
proxy sphere.

8 L EAVES
Leaves are included among the tree’s articulated rigid bod-
ies, as opposed to being one-way coupled, since the accumu-
lated force and torque (due to gravity, wind, and potentially
collisions) over all the leaves can have a significant impact
on branch motion. We allow leaves (or petals) to fall by
detaching them from their parent branches when the torque
on the parent joint exceeds a threshold (see Figures 9 and
10).
Leaves exhibit interesting fluttering, tumbling, and spi-
raling motion, as well as chaotic motion in between these
phases as discussed in [50], [51]. The phenomenological
approach of [52] estimates the force and torque applied to
a thin disk using Kutta-Joukowski’s theorem to compute Fig. 11: Our method runs interactively on a low-budget
the lift force and moment while adding friction forces for tablet. Here, a user exerts a force on a branch via touch
the normal and tangential wind directions. They solve their (visualized by the yellow arrow).
8 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO. X, XXXXX 2017

Fig. 12: Our interactive posing and animation interface can


be used to add, edit, and remove splines for stiffness and
damping to achieve a desired tree motion. The interface
also exposes controls for gravity, wind, fracture thresholds,
Fig. 13: Our largest tree is composed of over 3 million
branch density, etc.
articulated rigid bodies and acts as a stress test running at
2.3 sec/frame.
9 R EAL - TIME A NIMATION AND P OSING S YSTEM
Physical simulation has been prevalent for decades as a tool While the interface can run in real time for trees with
for realistically modeling natural phenomena such as cloth ten thousand branches, our system is also useful for the
[59], [60], smoke [61], explosions [62], water [63], etc. How- interactive tuning of trees that are too big to be simulated
ever, control of such phenomena often remains problematic. in real time. The interface supports the tuning of large trees
One of the major benefits of real-time simulation, see e.g. by exposing controls to selectively simulate only a subset of
[64], is the ability to quickly, iteratively tune parameters in the branches. In practice, this has allowed us to interactively
order to obtain desirable motions for the many degrees of tune trees with over three million articulated rigid bodies,
freedom. Our tree modeling algorithm lends itself well to which subsequently run offline at speeds of around two
such an approach. In fact, our algorithm scales so well that seconds per frame. See Figure 13.
we incorporated it into the Unity game engine and ran it
interactively on a low-budget tablet (see Figure 11).
10 E XAMPLES
The ability to tune a tree’s internal dynamics is partic-
ularly important, since the stiffness and damping of the Data for tree models can be obtained in various ways. Proce-
joint springs are essential for achieving realistic motion. dural modeling techniques [16], [27] can be used to generate
Thus, we created an interactive interface that allows for the an articulated rigid body structure directly. Dedicated mod-
manipulation of spline curves via control points in order to eling tools such as SpeedTree, Xfrog, and GrowFX2 can be
set the stiffness and damping values for the parent joint of used to produce articulated rigid bodies, e.g. by converting
a tree branch based on the branch’s radius. Editing these a set of splines and thicknesses representing a tree into a
splines allows one to fine-tune the extent of bending and set of connected rigid bodies. While one could model a tree
vibration in response to gravity, wind, collisions, etc. In using only a single rigid body per tree branch, in practice we
order to further fine-tune local regions of the tree, we also segment branch lengths into multiple rigid bodies to enable
allow the user to interactively add splines to any branch sub-branch bending. For rendering, we construct a skin
and subsequently use those splines to override the stiff- mesh of a tree’s articulated rigid body such that adjacent
ness/damping values of that rigid body’s entire subtree. See rigid bodies do not appear disjoint and texture coordinates
Figure 12. vary smoothly.
In addition to the controls for interactively tuning the Our algorithm is fast enough to support interactive
parameters of the wind grid discussed in Section 7, our tree simulation on a mobile device. We demonstrate this
user interface exposes controls for gravity, branch and fruit by integrating the algorithm with the Unity game engine
density, multipliers for the global stiffness and damping of (see Figure 11). With this integration, trees can be tuned
branches and leaves, etc. The user can also select and pull interactively using the interface described in Section 9, and
on rigid bodies in the tree. In fact, we allow the user to then simulated on a tablet once the desired parameters
apply forces to edit the tree and change its rest state. For have been found. More complex trees are simulated offline.
leaves on branches, we can readily set different stiffnesses Some of our larger trees are shown in Figures 4, 9, 10, and
for their flapping, swaying, and twisting motions, since we 13. Figure 1 shows a larger scene containing many of our
orient each leaf’s width, normal, and length directions to be simulated trees. Within that scene, a squirrel runs along the
aligned with the x, y , and z -axes of its parent joint frame branches between two trees (see Figure 15), applying a force
in its rest pose simply by carefully choosing the orientation that bends the branches.
of the parent joint frame. We also expose the parameters 2. http://speedtree.com, http://xfrog.com, and
discussed in Section 8 for tuning the motion of falling leaves. https://exlevel.com
QUIGLEY ET AL.: REAL-TIME INTERACTIVE TREE ANIMATION 9

ABA Ours considering an impulse-based treatment of the articulated


rigid bodies that compose a tree. This would require one to
ascertain an impulse factor that models the response of our
tree evolution algorithm.
The other primary limitation to obtaining realism is that
real trees appear much more visually rich than any of the
models we have been able to create. Thus, it would be
104 substeps/frame 1 substep/frame
interesting to use data capture technologies and computer
ABA Ours vision techniques to model real trees for use in our sim-
ulations. Progress has already been made in this direction
via the techniques of [67], [68] and the aforementioned
[20]. One might obtain parameters for the real tree using
an approach like that of [69] to observe the vibration of
branches in response to the wind. The combination of highly
realistic models obtained in such ways with our simulation
105 substeps/frame 1 substep/frame
algorithm would be an intriguing line of future work.

Fig. 14: (Top) A branch sags under gravity using Feather-


stone’s articulated-body algorithm (ABA) and our method. ACKNOWLEDGEMENTS
(Bottom) The test is repeated with greater stiffnesses, requir- Research supported in part by ONR N00014-13-1-0346, ONR
ing a greater number of substeps per frame. N00014-11-1-0707, ONR N-00014-11-1-0027, and ARL AH-
PCRC W911NF-07-0027. E.Q. was supported in part by an
NDSEGF. Y.Y. was supported in part by a Stanford Graduate
We compare our method to the implementation of Feath- Fellowship. Computing resources were provided in part by
erstone’s articulated-body algorithm provided by RBDL [65] ONR N00014-05-1-0479.
with forward Euler time integration. While the explicit
method can take frame-rate time steps for a small number
of bodies, increasingly more substeps are required as the R EFERENCES
number of bodies and/or the stiffness of the bodies’ joints [1] M. Müller, B. Heidelberger, M. Hennix, and J. Ratcliff, “Position
increases. As expected, our algorithm does not produce the based dynamics,” J. Visual Comm. and Image Repr., vol. 18, no. 2,
same motion as the explicit algorithm for the same set of pp. 109–118, 2007.
[2] R. Featherstone, Robot Dynamics Algorithms. Kluwer Academic
stiffness and damping values; the strength of our method is Publishers, Boston/Dordrecht/Lancaster, 1987.
that it can be used to tune parameters to produce a desired [3] D. K. Pai, “Strands: Interactive simulation of thin solids using
motion while still taking frame-rate time steps regardless of cosserat models,” in Proc. of Eurographics, ser. Comput. Graph.
the number of rigid bodies or the magnitude of their joint Forum, vol. 21. Eurographics Assoc., 2002, pp. 347–352.
[4] F. Bertails, B. Audoly, M.-P. Cani, B. Querleux, F. Leroy, and J.-
stiffnesses. See Figure 14. L. Lévêque, “Super-helices for predicting the dynamics of natural
hair,” ACM Trans. Graph., vol. 25, no. 3, pp. 1180–1187, 2006.
[5] A. McAdams, A. Selle, K. Ward, E. Sifakis, and J. Teran, “Detail
11 L IMITATIONS AND F UTURE W ORK preserving continuum simulation of straight hair,” in Proc. SIG-
GRAPH 2009, 2009, pp. 385–392.
There are several avenues along which our proposed [6] F. Bertails, “Linear time super-helices,” in Computer graphics forum,
method can be extended and improved. In our opinion, the vol. 28, no. 2. Wiley Online Library, 2009, pp. 417–426.
[7] S. Hadap, “Oriented strands: dynamics of stiff multi-body sys-
primary drawback of the method is that it does not consider tem,” in Proc. of the 2006 ACM SIGGRAPH/Eurographics Symp. on
two-way coupling between wind and trees. As such the Comput. Anim. Eurographics Association, 2006, pp. 91–100.
method can produce quite realistic global motions, but the [8] J. Barbič and D. James, “Real-time subspace integration of St.
Venant-Kirchhoff deformable models,” ACM Trans. Graph. (SIG-
trees can sometimes fall into the uncanny valley when GRAPH Proc.), vol. 24, no. 3, pp. 982–990, 2005.
observing inter-branch motion. We feel that improving the [9] J. Barbič and Y. Zhao, “Real-time large-deformation substructur-
wind model to include branch opacity and tree porosity as ing,” ACM TOG (SIGGRAPH 2011), vol. 30, no. 4, pp. 91:1–91:7,
well as two-way coupling would yield the most marked 2011.
[10] D. Baraff, “Linear-time dynamics using Lagrange multipliers,” in
gains in realism. It is also important to consider how various Proc. of ACM SIGGRAPH 1996, 1996, pp. 137–146.
trees may shield each other from the wind. [11] R. Weinstein, J. Teran, and R. Fedkiw, “Dynamic simulation of
Our stiffness model might be improved by taking addi- articulated rigid bodies with contact and collision,” IEEE TVCG,
vol. 12, no. 3, pp. 365–374, 2006.
tional factors into consideration, e.g. increasing the stiffness [12] F. Hernández, C. Garre, R. Casillas, and M. A. Otaduy, “Linear-
of joints based on their topology so that trees are stiffer in time dynamics of characters with stiff joints,” in V Ibero-American
areas near bifurcations. Our force-based interaction model Symp. in Comput. Graph. (SIACG 2011), 2011, pp. 163–168.
could be further expanded to incorporate effects such as rain [13] D. L. Michels, G. A. Sobottka, and A. G. Weber, “Exponential
integrators for stiff elastodynamic problems,” ACM Trans. Graph.,
hitting leaves or snow accumulating on branches. Various vol. 33, no. 1, p. 7, 2014.
level of detail considerations could be taken into account [14] D. Brydon, J. Pearson, and M. Marder, “Solving stiff differential
in order to simulate large numbers of trees in a scene, e.g. equations with the method of patches,” J. Comput. Phys., vol. 144,
by taking larger-than-framerate time steps or by evolving no. 2, pp. 280–298, 1998.
[15] P. Prusinkiewicz, M. Hammel, J. Hanan, and R. Měch, “Visual
only a subset of the springs in each tree using an approach models of plant development,” in Handbook of formal languages.
like that of [66]. Collision handling could be improved by Springer, 1997, pp. 535–597.
10 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 22, NO. X, XXXXX 2017

Fig. 15: A squirrel runs along the branch of a tree, leaps, and lands on the branch of another tree, gently perturbing both.

[16] J. Weber and J. Penn, “Creation and rendering of realistic trees,” [34] J. Stam, “Stochastic dynamics: Simulating the effects of turbulence
in Proc. 22nd Ann. Conf. Comput. Graph. Int. Tech. ACM, 1995, pp. on flexible structures,” in Comput. Graph. Forum, vol. 16, no. s3.
119–128. Wiley Online Library, 1997.
[17] S. Pirk, O. Stava, J. Kratt, M. A. M. Said, B. Neubert, R. Měch, [35] S. Pirk, T. Niese, T. Hädrich, B. Benes, and O. Deussen, “Windy
B. Benes, and O. Deussen, “Plastic trees: Interactive self-adapting trees: Computing stress response for developmental tree models,”
botanical tree models,” ACM Trans. Graph., vol. 31, no. 4, pp. 50:1– ACM Trans. Graph., vol. 33, no. 6, pp. 204:1–204:11, 2014.
50:10, 2012. [36] Y. Zhao and J. Barbič, “Interactive authoring of simulation-ready
[18] P. de Reffye, C. Edelin, J. Françon, M. Jaeger, and C. Puech, “Plant plants,” ACM Trans. Graph., vol. 32, no. 4, pp. 84:1–84:12, 2013.
models faithful to botanical structure and development,” in Proc. [37] Y. Zhao, “Plant substructuring and real-time simulation using
of the 15th Ann. Conf. Comput. Graph. Int. Tech., ser. SIGGRAPH ’88. model reduction,” Ph.D. dissertation, University of Southern Cal-
ACM, 1988, pp. 151–158. ifornia, 2014.
[19] R. Měch and P. Prusinkiewicz, “Visual models of plants interacting [38] Y. Li and J. Barbič, “Stable orthotropic materials,”
with their environment,” in Proc. of the 23rd Annual Conf. on ACM/Eurographics Symp. on Comput. Anim., 2014.
Comput. Graph. and Interactive Techniques. ACM, 1996, pp. 397– [39] J.-M. Aubry and X. Xian, “Fast implicit simulation of flexible
410. trees,” in Math. Progress in Expressive Image Synthesis II. Springer,
[20] Y. Livny, F. Yan, M. Olson, B. Chen, H. Zhang, and J. El-sana, 2015, pp. 47–61.
“Automatic reconstruction of tree skeletal structures from point [40] T. Sakaguchi and J. Ohya, “Modeling and animation of botanical
clouds,” Proc. SIGGRAPH Asia 2010, vol. 29, pp. 151:1–151:8, 2010. trees for interactive virtual environments,” in Proc. of the ACM
[21] J. Diener, L. Reveret, and E. Fiume, “Hierarchical retargetting of Symp. on Virt. Reality Software and Tech. ACM, 1999, pp. 139–146.
2d motion fields to the animation of 3d plant models,” in Proc. [41] M. Yang, L. Jiang, X. Li, Y. Liu, X. Liu, and E. Wu, “Interactive
of the 2006 ACM SIGGRAPH/Eurographics Symp. on Comput. Anim., coupling between a tree and raindrops,” Comput. Anim. Virt.
ser. SCA ’06, 2006, pp. 187–195. Worlds, vol. 23, no. 3-4, pp. 267–277, 2012.
[22] C. Li, O. Deussen, Y.-Z. Song, P. Willis, and P. Hall, “Modeling and [42] S. Jeong, S.-H. Park, and C.-H. Kim, “Simulation of morphology
generating moving trees from video,” in Proc. of SIGGRAPH Asia changes in drying leaves,” Comput. Graph. Forum, vol. 32, no. 1,
2011, 2011, pp. 127:1–127:12. pp. 204–215, 2013.
[23] B. Neubert, T. Franken, and O. Deussen, “Approximate image- [43] M. Müller and N. Chentanez, “Solid simulation with oriented
based tree-modeling using particle flows,” ACM Trans. Graph., particles,” ACM TOG, vol. 30, no. 4, pp. 92:1–92:10, 2011.
vol. 26, no. 3, p. 88, 2007. [44] S. Tomažič and S. Stančin, “Simultaneous orthogonal rotation
[24] P. Tan, T. Fang, J. Xiao, P. Zhao, and L. Quan, “Single image tree angle,” Electrotech. Rev, vol. 78, pp. 7–11, 2011.
modeling,” in ACM SIGGRAPH Asia 2008 Papers, 2008, pp. 108:1– [45] S. Stančin and S. Tomažič, “Angle estimation of simultaneous
108:7. orthogonal rotations from 3d gyroscope measurements,” Sensors,
[25] D. Bradley, D. Nowrouzezahrai, and P. Beardsley, “Image-based vol. 11, no. 9, pp. 8536–8549, 2011.
reconstruction and synthesis of dense foliage,” ACM Trans. Graph., [46] E. Guendelman, R. Bridson, and R. Fedkiw, “Nonconvex rigid
vol. 32, no. 4, pp. 74:1–74:10, 2013. bodies with stacking,” ACM TOG, vol. 22, no. 3, pp. 871–878, 2003.
[26] X. Chen, B. Neubert, Y.-Q. Xu, O. Deussen, and S. B. Kang, [47] J. J. Craig, Introduction to robotics: mechanics and control, 3rd ed.
“Sketch-based tree modeling using Markov random field,” in Pearson Prentice Hall Upper Saddle River, 2005.
ACM SIGGRAPH Asia 2008 Papers, 2008, pp. 109:1–109:9. [48] J. Wejchert and D. Haumann, “Animation aerodynamics,” Comput.
[27] S. Longay, A. Runions, F. Boudon, and P. Prusinkiewicz, Graph., vol. 25, no. 4, pp. 19–22, 1991.
“Treesketch: Interactive procedural modeling of trees on a tablet,” [49] M. Lentine, J. T. Gretarsson, C. Schroeder, A. Robinson-Mosher,
in Proc. Int. Symp. Sketch-Based Interf. Modeling, 2012, pp. 107–120. and R. Fedkiw, “Creature control in a fluid environment,” IEEE
[28] Y. Akagi and K. Kitajima, “Computer animation of swaying trees TVCG, vol. 17, no. 5, pp. 682–693, 2011.
based on physical simulation,” Computers & Graphics, vol. 30, no. 4, [50] H. Zhong, S. Chen, and C. Lee, “Experimental study of freely
pp. 529–539, 2006. falling thin disks: Transition from planar zigzag to spiral,” Physics
[29] X.-y. Hu, W.-m. Tao, and Y.-m. Guo, “Using FEM to predict tree of Fluids, vol. 23, no. 1, p. 011702, 2011.
motion in a wind field,” J. Zhejiang Univ. Sci. A, vol. 9, no. 7, pp. [51] F. Auguste, J. Magnaudet, and D. Fabre, “Falling styles of disks,”
907–915, 2008. J. Fluid Mech., vol. 719, pp. 388–405, 3 2013.
[30] M. Shinya and A. Fournier, “Stochastic motion—motion under the [52] Y. Tanabe and K. Kaneko, “Behavior of a falling paper,” Phys. Rev.
influence of wind,” in Comput. Graph. Forum, vol. 11, no. 3. Wiley Lett., vol. 73, no. 10, pp. 1372–1375, 1994.
Online Library, 1992, pp. 119–128. [53] L. Mahadevan, H. Aref, and S. Jones, “Comment on âĂIJbehavior
[31] R. Habel, A. Kusternig, and M. Wimmer, “Physically guided of a falling paperâĂİ,” Phys. Rev. Lett., vol. 75, no. 7, p. 1420, 1995.
animation of trees,” in Comput. Graph. Forum, vol. 28, no. 2, 2009, [54] Y. Tanabe and K. Kaneko, “Tanabe and Kaneko reply,” Phys. Rev.
pp. 523–532. Lett., vol. 75, no. 7, p. 1421, 1995.
[32] J. Diener, M. Rodriguez, L. Baboud, and L. Reveret, “Wind pro- [55] A. Belmonte, H. Eisenberg, and E. Moses, “From flutter to tumble:
jection basis for real-time animation of trees,” in Comput. Graph. inertial drag and froude similarity in falling paper,” Phys. Rev.
Forum, vol. 28, no. 2, 2009, pp. 533–540. Lett., vol. 81, no. 2, p. 345, 1998.
[33] M. Yang, M.-c. Huang, and E.-h. Wu, “Physically-based tree ani- [56] A. Andersen, U. Pesavento, and Z. J. Wang, “Unsteady aerody-
mation and leaf deformation using CUDA in real-time,” in Trans. namics of fluttering and tumbling plates,” J. Fluid Mech., vol. 541,
Edutainment VI, ser. LNCS, 2011, vol. 6758, pp. 27–39. pp. 65–90, 2005.
QUIGLEY ET AL.: REAL-TIME INTERACTIVE TREE ANIMATION 11

[57] T. Martin, N. Umetani, and B. Bickel, “OmniAD: Data-driven Winnie Lin received her B.S. in Mathemat-
omni-directional aerodynamics,” ACM Trans. Graph., vol. 34, no. 4, ics from Stanford University in 2016, and has
pp. 113:1–113:12, 2015. worked as an undergraduate research assistant
[58] C. Li, J. Qian, R. Tong, J. Chang, and J. Zhang, “GPU based real- in computational geometry and computer graph-
time simulation of massive falling leaves,” Comput. Visual Media, ics. She is currently pursuing her M.S. in Com-
vol. 1, no. 4, pp. 351–358, 2015. puter Science, also at Stanford University.
[59] D. Terzopoulos, J. Platt, A. Barr, and K. Fleischer, “Elastically
deformable models,” Comput. Graph. (Proc. SIGGRAPH 87), vol. 21,
no. 4, pp. 205–214, 1987.
[60] D. Baraff and A. Witkin, “Large steps in cloth simulation,” in Proc.
SIGGRAPH 1998, 1998, pp. 43–54.
[61] J. Stam, “Stable fluids,” in Proc. of SIGGRAPH 99, 1999, pp. 121–
128.
[62] G. Yngve, J. O’Brien, and J. Hodgins, “Animating explosions,” in
Proc. of ACM SIGGRAPH 2000, 2000, pp. 29–36. Ron Fedkiw received his Ph.D. in Mathemat-
[63] D. Enright, S. Marschner, and R. Fedkiw, “Animation and render- ics from UCLA in 1996 and did postdoctoral
ing of complex water surfaces,” ACM Trans. Graph. (SIGGRAPH studies both at UCLA in Mathematics and at
Proc.), vol. 21, no. 3, pp. 736–744, 2002. Caltech in Aeronautics before joining the Stan-
[64] M. Macklin, M. Müller, N. Chentanez, and T.-Y. Kim, “Unified ford Computer Science Department. He was
particle physics for real-time applications,” ACM Trans. Graph. awarded an Academy Award from The Academy
(SIGGRAPH Proc.), vol. 33, no. 4, pp. 153:1–153:12, 2014. of Motion Picture Arts and Sciences, the Na-
[65] M. L. Felis, “RBDL: an efficient rigid-body dynamics library using tional Academy of Science Award for Initiatives
recursive algorithms,” Autonomous Robots, vol. 41, pp. 1–17, 2016. in Research, a Packard Foundation Fellowship,
[66] S. Redon, N. Galoppo, and M. Lin, “Adaptive dynamics of articu- a Presidential Early Career Award for Scientists
lated bodies,” ACM TOG, vol. 24, no. 3, pp. 936–945, 2005. and Engineers (PECASE), a Sloan Research
[67] P. Tan, G. Zeng, J. Wang, S. B. Kang, and L. Quan, “Image-based Fellowship, the ACM Siggraph Significant New Researcher Award, an
tree modeling,” in ACM Trans. Graph., vol. 26, no. 3. ACM, 2007, Office of Naval Research Young Investigator Program Award (ONR
p. 87. YIP), the Okawa Foundation Research Grant, the Robert Bosch Faculty
[68] K. Xie, F. Yan, A. Sharf, O. Deussen, B. Chen, and H. Huang, “Tree Scholarship, the Robert N. Noyce Family Faculty Scholarship, two dis-
modeling with real tree-parts examples,” IEEE TVCG, vol. 22, tinguished teaching awards, etc. He has served on the editorial board of
no. 12, pp. 2608–2618, Dec 2015. the Journal of Computational Physics, Journal of Scientific Computing,
[69] A. Davis, K. L. Bouman, J. G. Chen, M. Rubinstein, F. Durand, and SIAM Journal on Imaging Sciences, and Communications in Mathemat-
W. T. Freeman, “Visual vibrometry: Estimating material properties ical Sciences, and he participates in the reviewing process of a number
from small motions in video,” in 2015 IEEE Conf. on Comput. Vision of journals and funding agencies. He has published over 110 research
and Pattern Recognition (CVPR). IEEE, 2015, pp. 5335–5343. papers in computational physics, computer graphics, and vision, as well
as a book on level set methods. For the past fifteen years, he has been
a consultant with Industrial Light + Magic. He received screen credits for
his work on “Terminator 3: Rise of the Machines," “Star Wars: Episode
III – Revenge of the Sith," “Poseidon," and “Evan Almighty."
Ed Quigley received his B.S. in Computer Sci-
ence from Grove City College in 2013. He has
interned at SURVICE Engineering and Pilot AI
Labs, and is currently pursuing his Ph.D. at
Stanford University where he is supported by
an NDSEG Fellowship. His research interests
include physically-based simulation, animation,
and 3D reconstruction.

Yue Yu received his B.S. in Computer Science


and Mathematics from the Hong Kong Univer-
sity of Science and Technology in 2011. He is
currently pursuing a Ph.D. at Stanford University
where he was awarded a Stanford Graduate
Fellowship. He was a Technology Intern at Walt
Disney Animation Studios. He has coauthored
four papers published in computer graphics and
computational physics. His current research in-
terest is in high order accurate cut-cell solid-fluid
coupling algorithms.

Jingwei Huang received his bachelor’s degree


from the School of Software, Tsinghua Univer-
sity, Beijing, China. He is currently pursuing his
Ph.D. in the Department of Computer Science
at Stanford University. His research interests in-
clude physically-based simulation, image pro-
cessing, and 3D reconstruction.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy