Download - Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University
![Page 1: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/1.jpg)
![Page 2: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/2.jpg)
Nonconvex Rigid Bodies Nonconvex Rigid Bodies with Stackingwith Stacking
Nonconvex Rigid Bodies Nonconvex Rigid Bodies with Stackingwith Stacking
Eran GuendelmanEran Guendelman
Robert BridsonRobert Bridson
Ron FedkiwRon Fedkiw
Stanford UniversityStanford University
![Page 3: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/3.jpg)
Paper OverviewPaper OverviewPaper OverviewPaper Overview
Goal:Goal:
• Plausible simulation of a Plausible simulation of a large numberlarge number of of nonconvex rigid bodies.nonconvex rigid bodies.
• Handle collision, contact, friction, stacking.Handle collision, contact, friction, stacking.
Goal:Goal:
• Plausible simulation of a Plausible simulation of a large numberlarge number of of nonconvex rigid bodies.nonconvex rigid bodies.
• Handle collision, contact, friction, stacking.Handle collision, contact, friction, stacking.
![Page 4: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/4.jpg)
Main ContributionsMain ContributionsMain ContributionsMain Contributions• A new time stepping scheme.A new time stepping scheme.
• A “shock propagation” technique for stacks.A “shock propagation” technique for stacks.
• A new time stepping scheme.A new time stepping scheme.
• A “shock propagation” technique for stacks.A “shock propagation” technique for stacks.
![Page 5: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/5.jpg)
Geometric RepresentationGeometric RepresentationGeometric RepresentationGeometric Representation
• A dual representation.A dual representation.
• ExplicitExplicit: Triangulated surface.: Triangulated surface.
– Supplies point samples on surface.Supplies point samples on surface.
• ImplicitImplicit: Signed distance function : Signed distance function ΦΦ..
– ΦΦ distance to surface, distance to surface, ΦΦ < 0< 0 inside, inside, ΦΦ > 0> 0 outside. outside.
– Stored on a uniform or octree grid.Stored on a uniform or octree grid.
– Constant time inside/outside test.Constant time inside/outside test.
– Normal = Normal = ΦΦ (defined throughout space). (defined throughout space).
![Page 6: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/6.jpg)
Time Stepping: Time Stepping: Traditional ApproachTraditional ApproachTime Stepping: Time Stepping: Traditional ApproachTraditional Approach• Traditional time stepping simulation loop:Traditional time stepping simulation loop:
– Update position and velocity.Update position and velocity.
– Process collision.Process collision.
– Process contact.Process contact.
![Page 7: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/7.jpg)
Problem With Problem With Traditional ApproachTraditional ApproachProblem With Problem With Traditional ApproachTraditional Approach
• Problem: Problem: e.g. e.g. Block sliding down inclined plane.Block sliding down inclined plane.
– Initially sliding down.Initially sliding down.
– Update position and velocity Update position and velocity interpenetrating plane. interpenetrating plane.
– Process collision Process collision velocity reflected. velocity reflected.
– No contact to process.No contact to process.
– Next iteration Next iteration object bounces. object bounces.
![Page 8: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/8.jpg)
Fixing ProblemFixing ProblemFixing ProblemFixing Problem
• Velocity threshold. Velocity threshold.
– e.g.e.g. [Mirtich & Canny ’95 – 2 papers] [Mirtich & Canny ’95 – 2 papers]
– Process as contact if speed below threshold.Process as contact if speed below threshold.
• Our approach doesn’t require such threshold.Our approach doesn’t require such threshold.
![Page 9: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/9.jpg)
Time Stepping:Time Stepping:Our ApproachOur ApproachTime Stepping:Time Stepping:Our ApproachOur Approach
• A new ordering of the simulation loop:A new ordering of the simulation loop:
– Process collision.Process collision.
– Update velocity.Update velocity.
– Process contact.Process contact.
– Update position.Update position.
• Some justification:Some justification:
– Velocity update integrates forces and contact Velocity update integrates forces and contact processing resolves forces.processing resolves forces.
Recall traditional approach:
•Update pos & vel.
•Process collision.
•Process contact.
![Page 10: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/10.jpg)
Inclined Plane Inclined Plane RevisitedRevisitedInclined Plane Inclined Plane RevisitedRevisited
• Using our approach.Using our approach.
– No collision to process.No collision to process.
– Update velocity Update velocity block gains downward velocity. block gains downward velocity.
– Process contact Process contact stops normal motion. stops normal motion.
– Update position Update position slides down with no bounce. slides down with no bounce.
![Page 11: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/11.jpg)
TIME STEPPING COMPARISON
![Page 12: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/12.jpg)
Time Stepping Time Stepping ComparisonComparisonTime Stepping Time Stepping ComparisonComparison
• Errors accentuated: Errors accentuated:
– Perfectly elastic collisions (Perfectly elastic collisions (εε=1).=1).
– We don’t rewind to collision time.We don’t rewind to collision time.
– Impulses applied sequentially at point samples.Impulses applied sequentially at point samples.
![Page 13: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/13.jpg)
AccuracyAccuracyAccuracyAccuracy
Decelerating down inclined planeDecelerating down inclined plane
![Page 14: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/14.jpg)
AccuracyAccuracyAccuracyAccuracy
Accelerating down inclined planeAccelerating down inclined plane
![Page 15: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/15.jpg)
Simulation StepSimulation StepSimulation StepSimulation Step
• Choose sufficiently small time step Choose sufficiently small time step ∆t∆t..• Advance bodies using time stepping scheme.Advance bodies using time stepping scheme.
– Use forward Euler for position and velocity update.Use forward Euler for position and velocity update.
• Doesn’t guarantee non-interpenetration, but Doesn’t guarantee non-interpenetration, but achieves good results.achieves good results.– Experimented with “pushing out” to reduce Experimented with “pushing out” to reduce
penetration as in [Baraff ‘95].penetration as in [Baraff ‘95].
![Page 16: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/16.jpg)
Interference DetectionInterference DetectionInterference DetectionInterference Detection
• We don’t rewind to collision time.We don’t rewind to collision time.
• Find all penetrating vertices.Find all penetrating vertices.
– Use implicit surface inside/outside test. Use implicit surface inside/outside test.
• Optionally compute edge-face intersections.Optionally compute edge-face intersections.
• Accelerations:Accelerations:
– Uniform spatial partition.Uniform spatial partition.
– Bounding boxes.Bounding boxes.
![Page 17: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/17.jpg)
ImpulseImpulseImpulseImpulse
• Impulses are used for collision and contact.Impulses are used for collision and contact.
• Collision parameters: Collision parameters: εε and and μμ..
• Collision normal = Collision normal = ΦΦ..
• Use Use Coulomb frictionCoulomb friction model: model:
– Compute impulse to stop tangential motion.Compute impulse to stop tangential motion.
– If outside friction cone, find kinetic friction impulse.If outside friction cone, find kinetic friction impulse.
– Similar to [Hahn ‘88; Moore & Wilhelms ‘88].Similar to [Hahn ‘88; Moore & Wilhelms ‘88].
• Rolling and spinning friction.Rolling and spinning friction.
![Page 18: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/18.jpg)
Collision ProcessingCollision ProcessingCollision ProcessingCollision Processing
• Detect and resolve collisions during time Detect and resolve collisions during time step.step.
• One approach: Process in chronological order.One approach: Process in chronological order.
– Computationally expensive for scenes with frequent Computationally expensive for scenes with frequent collisions.collisions.
• Approach we use: Process all at end of step. Approach we use: Process all at end of step.
– Gives plausible results.Gives plausible results.
– Don’t need to rewind to exact time of collision.Don’t need to rewind to exact time of collision.
![Page 19: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/19.jpg)
Collision Processing: Collision Processing: Algorithm OverviewAlgorithm OverviewCollision Processing: Collision Processing: Algorithm OverviewAlgorithm Overview
• Compute candidate positions of bodies.Compute candidate positions of bodies.
• For each intersecting pair of bodies:For each intersecting pair of bodies:
– Determine interpenetrating points.Determine interpenetrating points.
– Sort points by penetration depth (deepest first). Sort points by penetration depth (deepest first).
– For each point in order:For each point in order:
• Apply frictional impulse (unless bodies receding).Apply frictional impulse (unless bodies receding).
![Page 20: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/20.jpg)
Collision Processing:Collision Processing:Algorithm OverviewAlgorithm OverviewCollision Processing:Collision Processing:Algorithm OverviewAlgorithm Overview
• Repeat above a number of times.Repeat above a number of times.
– Resolving one collision might create new ones.Resolving one collision might create new ones.
• Applies series of impulses rather than Applies series of impulses rather than simultaneously resolving all collisions.simultaneously resolving all collisions.
![Page 21: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/21.jpg)
![Page 22: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/22.jpg)
![Page 23: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/23.jpg)
![Page 24: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/24.jpg)
Contact ProcessingContact ProcessingContact ProcessingContact Processing
• Determine contacts and prevent penetration.Determine contacts and prevent penetration.
• Approaches:Approaches:– Simultaneously solve for all contact forces. Simultaneously solve for all contact forces. e.g.e.g.[Baraff ‘94][Baraff ‘94]
– Penalty method (repulsion forces). Penalty method (repulsion forces). e.g.e.g.[Moore & Wilhelms ‘88][Moore & Wilhelms ‘88]
• Approach we use:Approach we use:– Approximate continuous contact by a series of Approximate continuous contact by a series of
inelastic impulses. inelastic impulses. e.g.e.g. [Mirtich & Canny ‘95] [Mirtich & Canny ‘95]
– Algorithm similar to collision processing (with Algorithm similar to collision processing (with εε=0), =0), but modified for improved accuracy.but modified for improved accuracy.
![Page 25: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/25.jpg)
Improving AccuracyImproving AccuracyImproving AccuracyImproving Accuracy
• GraduallyGradually slow down bodies. slow down bodies.
– Transition impulses from Transition impulses from εε=-1 to =-1 to εε=0. =0.
– -1<-1<εε<0: Slows normal approach velocity.<0: Slows normal approach velocity.
– Use more (smaller) impulses for contact. Use more (smaller) impulses for contact.
• Compute impulses in old position.Compute impulses in old position.
– Still use candidate position to find contact points.Still use candidate position to find contact points.
OLD CANDIDATE
![Page 26: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/26.jpg)
![Page 27: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/27.jpg)
Contact Processing: Contact Processing: Problem With StacksProblem With StacksContact Processing: Contact Processing: Problem With StacksProblem With Stacks
• Problem with stacks: Need many iterations.Problem with stacks: Need many iterations.
![Page 28: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/28.jpg)
Computing Stack Computing Stack OrderingOrderingComputing Stack Computing Stack OrderingOrdering
• Order bodies in stacks into increasing levels:Order bodies in stacks into increasing levels:
– Compute directed graph of “resting on” relation.Compute directed graph of “resting on” relation.
– Group together cycles (get a DAG).Group together cycles (get a DAG).
– Find levels consistent with DAG.Find levels consistent with DAG.
2 3
4
5
1
2
2
1
2
![Page 29: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/29.jpg)
Shock PropagationShock PropagationShock PropagationShock Propagation
• Process contact bottom-up.Process contact bottom-up.
• After processing a level, set to infinite mass After processing a level, set to infinite mass (but not static).(but not static).
![Page 30: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/30.jpg)
SHOCK PROPAGATION ONLY
![Page 31: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/31.jpg)
Combining Contact Combining Contact and Shock Propagationand Shock PropagationCombining Contact Combining Contact and Shock Propagationand Shock Propagation
• Run a number of regular contact iterations.Run a number of regular contact iterations.
– Without setting levels to infinite mass.Without setting levels to infinite mass.
– Transmits weight through stack.Transmits weight through stack.
• Run a single iteration of shock propagation.Run a single iteration of shock propagation.
– Get good behavior without requiring many iterations.Get good behavior without requiring many iterations.
![Page 32: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/32.jpg)
CONTACT & SHOCK PROPAGATION
![Page 33: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/33.jpg)
SHOCK PROPAGATION ONLY
![Page 34: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/34.jpg)
CONTACT & SHOCK PROPAGATION
![Page 35: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/35.jpg)
![Page 36: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/36.jpg)
![Page 37: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/37.jpg)
![Page 38: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/38.jpg)
![Page 39: Nonconvex Rigid Bodies with Stacking Eran Guendelman Robert Bridson Ron Fedkiw Stanford University](https://reader035.vdocument.in/reader035/viewer/2022062421/56649d3f5503460f94a17dec/html5/thumbnails/39.jpg)
SummarySummarySummarySummary
• Dual representation of geometry.Dual representation of geometry.
• Impulse-based simulator.Impulse-based simulator.
• New time stepping approach eliminates need New time stepping approach eliminates need for a velocity threshold.for a velocity threshold.
• Shock propagation shocks the stack into a Shock propagation shocks the stack into a reasonable configuration without requiring reasonable configuration without requiring many contact iterations.many contact iterations.