Flocking and Group Behavior
Post on 22-Jan-2016
58 Views
Preview:
DESCRIPTION
Transcript
Flocking and Group Behavior
Luv KohliCOMP259
March 24, 2003
Outline
• First, birdies!– Craig Reynolds paper on flocking
• Then, fishies!– Tu & Terzopoulos paper on artificial
fishes
What is a flock?
• One definition: a group of birds or mammals assembled or herded together
Why model flocking?
• It looks cool• Difficult to animate using traditional
keyframing or other techniques– Hard to script the path– Hard to handle motion constraints– Hard to edit motion
Boids!
• “boids” comes from “bird-oids”• Similar to particle systems, but have
orientation• Have a geometric shape used for
rendering• Behavior-based motion
Boid motion (1)
• Boids have a local coordinate system
Boid motion (2)
• Flight is accomplished using a dynamic, incremental, and rigid geometrical transformation
• Flight path not specified in advance• Forward motion specified as
incremental translations in local +Z direction
Boid motion (3)
• Rotation about X, Y, and Z axes for pitch, yaw, and roll
• No notion of lift or gravity (except for banking)
• Limits set for maximum speed and maximum acceleration
Flocking motion
• Boids must coordinate with flockmates• Two main desires:
– Stay close to the flock– Avoid collisions with the flock
• Flocking seems to have evolved due to protection from predators, higher chances of finding food, mating, etc.
Flocking – 3 Behaviors (1)
• Collision avoidance: avoid collisions with nearby flockmates
Flocking – 3 Behaviors (2)
• Velocity matching: attempt to match velocity with nearby flockmates
Flocking – 3 Behaviors (3)
• Flock centering: attempt to stay close to nearby flockmates
Arbitrating behaviors
• Behavioral urges produce acceleration requests: normalized 3D vector with importance in [0,1]
• Priority acceleration allocation is used instead of averaging acceleration requests
• Acceleration requests are prioritized and the most important ones are used up to a maximum acceleration
Simulated perception
• Unrealistic for each boid to have complete knowledge
• Flocking depends upon a localized view of the world
• Each boid has a spherical neighborhood of sensitivity, based upon a radius and an exponent: 1/rn
• Can be exaggerated in forward direction
Scripted flocking
• More control is needed for animation (e.g., flocks should be near point A at time t0 and near point B at time t1)
• Flock has a migratory urge towards a global target
• Global target can be moving and can vary depending on boids or other factors
Avoiding obstacles (1)
• Force field approach– Obstacles have a field of repulsion– Boids increasingly repulsed as they
approach obstacle• Drawbacks:
– Approaching a force in exactly the opposite direction
– Flying alongside a wall
Avoiding obstacles (2)
• Steer-to-avoid approach– Boid only considers obstacles directly
in front of it– Finds silhouette edge of obstacle
closest to point of eventual impact– A vector is computed that will aim the
boid at a point one body length beyond the silhouette edge
Avoiding obstacles (3)
Algorithmic considerations
• Naïve algorithm is O(N2)• This can be significantly reduced:
– Localizing each boid’s perception– Parallelization– Spatial partitioning can be used to
achieve O(1)
On to fish!
• Want to model schooling and other behaviors:– Eating– Avoiding predators– Mating
• Modeled with limited memory, perception of the world, behavior, and physics
Overview
Physics-based fish model (1)
• Dynamic fish model consisting of 23 nodal point masses and 91 springs
• Spring arrangement maintains structural stability while allowing flexibility
• 12 springs run the length of the body to serve as simple muscles
Physics-based fish model (2)
Mechanics (1)
• Each node has:
– mass mi
– Position xi(t) = [xi(t) yi(t) zi(t)]
– Velocity vi(t) = dxi/dt
– Acceleration ai(t) = d2xi/dt2
Mechanics (2)
• Spring Sij connects node i to node j
– Spring constant cij
– Rest length lij– Deformation eij = ||rij|| - lij
•rij = xj(t) – xi(t)
– Exerts force fsij = cijeij(t)rij/||rij|| on
node i, and –fsij on node j
Mechanics (3)
• Equations of motion specified by:mi(d2xi/dt2) + ρi(dxi/dt) – wi = fw
i
ρi = damping factor
wi(t) = sum of spring forces
fwi = external (hydrodynamic) forces
• Integrated using numerically stable implicit Euler method
How to swim fish-style (1)
• Artificial fish moves by contracting muscles
• Forward motion achieved by swinging tail, which displaces water
• Displaced water produces a reaction force normal to the fish’s body and proportional to the displaced volume
How to swim fish-style (2)• Instantaneous force proportional to ∫s(n·v)nds• s = surface• v = relative velocity between surface and fluid• n = unit outward normal function over surface• Approximated withf=min(0, -A(n·v)n), whereA is triangle area. (1/3)f isgiven to each triangle node
How to swim fish-style (3)
• Tail swinging achieved by contracting swimming muscles on one side and relaxing on the other side periodically
• Turning achieved by contracting one side sharply, relaxing the other side, then slowly relaxing the contracted side
• Swimming uses back two muscle groups, turning uses front two muscle groups
Motor controllers
• Artificial fish has three motor controllers– Swim-MC(speed)
•Converts speed into contraction amplitude and frequency
– Left-turn-MC(angle)– Right-turn-MC(angle)
•Converts angle into parameters for muscles
Sensory perception (1)
• Vision sensor: vision is cyclopean• Covers 300 degree spherical angle
extending to some effective radius based on water translucency
• Vision sensor has access to geometry, material properties, and illumination information
• Image is averaged to determine overall light
Sensory perception (2)
• Temperature sensor• Samples ambient water temperature at
center of fish’s body
Mental state (1)
• Fish’s mental state specified by:– Hunger
•H(t) = min[1-ne(t)R(∆tH)/,1]•ne(t) = amount of food consumed
•R(x) = 1 – p0x, po = digestion rate
•∆tH = time since last meal = appetite
– p0 = 0.005 results in ravenous fish
Mental state (2)
• Fish’s mental state specified by:– Libido
•L(t) = min[s(∆tL)(1-H(t)), 1]
•s(x) = p1x, p1 = libido constant
•H is hunger•∆tL = time since last mating
– p1 = 0.01 results in sexual mania
Mental state (3)
• Fish’s mental state specified by:– Fear
•F(t) = min(sum(min[Do/di(t), 1]),1)
•Do = 100 (constant)
•di(t) = distance to visible predator i
Intention generator
Satisfying intentions
• Once an intention is selected, control is passed to a behavior routine
• Eight behaviors:– Avoiding-static-obstacle– Avoiding-fish– Eating-food– Mating– Leaving– Wandering– Escaping– Schooling
• Behaviors can also have subroutines that are called
Schooling
Different fish types
• Predators, prey, pacifists• Each type has different intentions which
lead to different behavioral patterns• Pacifists exhibit mating behavior based
upon criteria for being interested in potential mates
Pacifists
• A male fish selects a mate as follows:– A female of the same species is
preferred to one of other species– Closer females are more attractive
than ones further away• A female fish selects a mate similarly
but shows preference to male fish size (stronger, more protective) rather than proximity
References
• Reynolds, C. W., 1987. "Flocks, Herds, and Schools: A Distributed Behavioral Model." Computer Graphics, 21(4): 25-34.
• Tu, X. and Terzopoulos, D. "Artificial fishes: Physics, locomotion, perception, behavior." Proc. ACM SIGGRAPH '94 Conference.
top related