Chenney & Forsyth, 2000 Animation CS 551 / 651 Chenney/Forsyth Paper Results Applications • Atoms: 200 spheres and 100 water molecules in divided box • Cars: 4 multibody vehicles and 400 pendula • Robots: 20 eight-link manipulators throwing blocks • Avalanche: 300 rocks tumbling down mountainside Results • Note average integration step vs. time between discontinuities Results Atoms for 2 seconds • Average integration step – Conservative advancement slows down Results Atoms for 2 seconds • Total “work done” per simulated object – Retroactive detection repeats a lot of work Results Total time • 100 atoms – RD-1/30 = 0.142, TW = 0.147, CA = 1.15 • 200 atoms – RD -1/30 = 2.61, TW = .388, CA = 4.74 Inspect the title Sampling Plausible Solutions to Multi-body Constraint Problems What’s the emphasis of this paper? Randomness Many details are ignored by simulations • Randomness will replace these details with something that is good enough (plausible) Do you agree? • A driving simulator with a random approximation to a bumpy road will better prepare its users for driving on a real road Randomness Multiple paths is a good thing • examples Multiple paths is a bad thing • examples Finding a place for uncertainty Feed-forward simulations • Where? Optimal (goal-oriented) simulations • What trouble do they cause? Incorporating Uncertainty pw (A) = probability animation A would occur in the world • non-negative • finite integral over domain • unnormalized Example: • A ball bounces on flat table i times with – normal vector mean at 0 degrees – standard deviation 10 degrees Introducing constraints The randomness must not interfere with constraints • Examples • The ball must start here and land there • The ball must go through this point • The initial acceleration must be foo • We now want pw(A | C) Ball example Evaluating pw(A | C) • prob(bouncei ) i Constraints Ball example Evaluating pw(A | C) • prob(bouncei ) i Ball example Trial and error is bound to fail • Easy to start with constraint satisfaction and insert intermediate bounces (but are they plausible) • Easy to model plausible bounces (but will they satisfy constraints) Sampling from pw (A|C) is too difficult Loosening requirements pw(A): probability A occurs in real world p(A): probability A occurs in world with relaxed constraints (maybe not realistic) • pc(A) = prob A satisfies constraints • Removed conditional probability Ball example pw(A) • pc(A) • Gaussian function defined on final position of ball, d Ball example Sampling • Select animation, A, with high probability • Select animation, A, from set with high probabilities Markov Chain Monte Carlo Markov chain • Given a sequence of events, the present state is only dependent on the preceding state and independent of the previous states – Only the present influences the future – The past doesn’t influence the future – A random walk (why?) Monte Carlo • Using random numbers to solve a problem MCMC for animations Identify degrees of freedom • What variables are you looking to solve for? – Normal vectors on table, friction over surface, … – The random variables • Iteratively search for good values of these variables MCMC Algorithm Compute p(A0) Use markov model to perturb degree-of-freedom values from Ai Compute p(Ac) MCMC Algorithm How likely is change from parameters used to generate Ac to parameters used for Ai Ball example Transition probability, q n ball bounces 10 values for normal (+/- 5) • First term = prob of choosing particular set of degrees of freedom to change • Second term = prob of choosing any particular value for a degree of freedom MCMC Algorithm Key component • propose ( ) – “designed through intuitive reasoning and experimentation” – “use past experience as a guide” MCMC Algorithm Provable feature of algorithm • As i inf, samples are true reflection of probability distribution of model • Sampling animation from the set of samples produces well-understood plausibility 2D Ball Probability function Take the log 2D Ball Lesson learned about standard dev s too small most animations are improbable because they don’t land in correct place s too large most animations are probable because they land within landing region but they miss the exact spot Tuning probability function, p(A) is tricky Bowling Degrees of freedom • Ball (diameter, initial position, initial velocity, initial angular velocity) • Pin (initial position) Constraints • Initial pins up, final pins down Lesson learned • If constraints are too strict, iterative perturbations will not frequently “jump” from one legal animation to another Rolling Dice Normal function (for tabletop) • Example from bouncing ball won’t work – Nearby points should have similar normals (not independent) – Object bouncing in same place should use same normal each time • Create “surface” using b-splines – Degrees of freedom are control point heights, initial pos – Also use restitution and friction values at control points Rolling Dice Lessons learned • Creating a good proposal algorithm is difficult • Algorithm finds first constraint satisfying animation (in one hour) and has hard time jumping to another satisfying animation (“many” hours) Rolling Dice Constraints • Any position/orientation at any time Review What’s easy about this? • Getting a simulation • Selecting some degrees of freedom • Building the MCMC algorithm Review What’s difficult? • Building p(A|C) function – Tuning bouncing ball standard deviation – Authors used Gibbs distribution function to assist • Building proposal function – Dice example had simple proposal algorithm Review What’s difficult • This is a search problem – Global vs. local search – Requires infinite samples to be perfect ² Simulation time and search space size are realistic constraints on feasibility Big Picture How to synthesize animations that accomplish specific goals • Keyframing • Simulation • Motion capture Data-driven simulation is a compromise Next Class Hodgins, O’Brien, Tumblin. Perception of Human Motion with Different Geometric Models.