Spacetime Constraints Chris Moore CS 552
Purpose Physically Accurate Realistic Motion
Components
Bodies
Components Bodies Inputs
Components Bodies Inputs Constraints
Components Bodies Inputs Constraints Objective Function
Bodies Single Particle / Rigid Body Articulated Bodies Multiple Bodies
Inputs Denoted Force Vector Components Spring Variables –Linear and Angular –Rest Length, Damping Coefficient, etc Object Positions
Constraints Function of Inputs:
Constraints Function of Inputs: Examples: –Newton’s 2 nd :
Constraints Function of Inputs: Examples: –Newton’s 2 nd : –Desired Keyframes
Constraints Function of Inputs: Examples: –Newton’s 2 nd : –Desired Keyframes –Maximum Force Magnitude
Constraints Function of Inputs: Examples: –Newton’s 2 nd : –Desired Keyframes –Maximum Force Magnitude –Collision Surfaces
Objective Function Function of Inputs: Optimization Problem
Objective Function Function of Inputs: Optimization Problem Examples
Objective Function Function of Inputs: Optimization Problem Examples –Minimize Force or Torque Where or is derived from
Objective Function Function of Inputs: Optimization Problem Examples –Minimize Force or Torque –Minimize Power Used
Objective Function Function of Inputs: Optimization Problem Examples –Minimize Force or Torque –Minimize Power Used –Minimize Distance to Keyframe
Objective Function Function of Inputs: Optimization Problem Examples –Minimize Force or Torque –Minimize Power Used –Minimize Distance to Keyframe –Maximize Jumping Height / Walking Distance
Process Start With Initial State Until a Desired Result is Found: –Evaluate Objective Function –Optimize Result –Constrain Solution
Optimization
Broyden-Fletcher-Goldfarb-Shanno (BFGS) –Quasi-Newton Method –Gradient Descent
Optimization Broyden-Fletcher-Goldfarb-Shanno (BFGS) Sequential Quadratic Programming (SQP)
Optimization Broyden-Fletcher-Goldfarb-Shanno (BFGS) Sequential Quadratic Programming (SQP) Lagrangians
Optimization Broyden-Fletcher-Goldfarb-Shanno (BFGS) Sequential Quadratic Programming (SQP) Lagrangians Monte Carlo Markov Chains (MCMC)
Optimization Broyden-Fletcher-Goldfarb-Shanno (BFGS) Sequential Quadratic Programming (SQP) Lagrangians Monte Carlo Markov Chains (MCMC) Genetic Algorithms (GA)
Applications Luxo - Generating realistic movement Generating intermediate frames between BVH sequences Creating realistic walking actions Causing the desired dice roll to occur
My Project
Bodies Inputs Constraints Objective Function
Implementation - Bodies Current Simulation: –Single Sphere
Implementation - Bodies Current Simulation: –Single Sphere –Potential for Complex Bodies
Implementation - Bodies Current Simulation: –Single Sphere –Potential for Complex Bodies –Represented within ODE
Implementation - Bodies Current Simulation: –Single Sphere –Potential for Complex Bodies –Represented within ODE –ODE handles system integration and collision detection
Implementation - Inputs Force Vector Components
Implementation - Inputs Force Vector Components –Inputs Represent Keyframes of
Implementation - Inputs Force Vector Components –Inputs Represent Keyframes of –Keyframes are linearly interpolated
Implementation - Inputs Force Vector Components –Inputs Represent Keyframes of –Keyframes are linearly interpolated –Applied at Center of Mass
Implementation - Constraints None Implemented So Far
Implementation - Constraints None Implemented So Far Challenge Mixing Newton’s 2 nd With Collision Response
Implementation - Objective Objective Function:
Implementation - Objective Objective Function: Influence Coefficients –Force Minimization
Implementation - Objective Objective Function: Influence Coefficients –Force Minimization –Velocity Error
Implementation - Objective Objective Function: Influence Coefficients –Force Minimization –Velocity Error –Position Error
Implementation – Class Layout Class Descriptions –STCSoln Represents one possible solution Contains real-valued input variables representing the components to force vectors Force vectors represent keyframes of the force function Discretize solution into N time steps: 3N variables per STCSoln
Implementation – Class Layout Class Descriptions –STCSolnPop Represents a population of STCSoln solutions Stored as a square grid –display purposes –compatibility with the GA parent selection
Implementation – Class Layout Class Descriptions –STCSolnPopEvaluator Interface class Initializes solutions Evaluates solution fitness Unique per problem
Implementation – Class Layout Class Descriptions –STCSolnPopEvaluator Interface class Initializes solutions Evaluates solution fitness Unique per problem –Problem Instance of STCSolnPopEvaluator Unique methods: –Initialize / Shutdown Physical System –Initializes & Updates Solution Playback –Evaluates STCSoln Objective Values
Implementation – Class Layout Class Descriptions –Solver Abstract Class for Optimizing Populations Uses the Problem Class to Calculate Fitness Optimizes Solutions based upon fitness value Subclasses: –GASolver –NewtonSolver
Implementation - Solvers GASolver –Genetic Algorithm based
Implementation - Solvers GASolver –Genetic Algorithm based –Population Specifics Size of Population Grid Layout –Choosing Parents –Maintaining Multiple Minima
Implementation - Solvers GASolver –Genetic Algorithm based –Gene Encoding Genes represented by STCSoln class Chromosomes represented by inputs
Implementation - Solvers GASolver –Genetic Algorithm based –Algorithm Order of Operations Within Iterations –Order of Operations –Succession of Children –Elitism Mutation Operator Crossover Operator –Choosing Parent –Random or Pivot
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent)
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent) –Potentially BFGS / SQP
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent) –Potentially BFGS / SQP –Requires Gradient Calculation of the Objective Function
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent) –Potentially BFGS / SQP –Requires Gradient Calculation of the Objective Function Jacobian
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent) –Potentially BFGS / SQP –Requires Gradient Calculation of the Objective Function Jacobian Hessian
Implementation - Solvers NewtonSolver –Quasi-Newton Algorithm (Gradient Descent) –Potentially BFGS / SQP –Requires Gradient Calculation of the Objective Function Jacobian Hessian –Still to be implemented
Implementation - Interface How it all works:
Implementation - Interface Components: –Scene Components: Green / Red / White Model
Implementation - Interface Components: –VCR-Style Playback Play / Pause / Stop
Implementation - Interface Components: –File Menu New / Load / Save
Implementation - Interface Components: –Population Graph Global Fitness Shading Local Fitness Shading Displays Selected Solution
Implementation - Interface Components: –GA Solver Button Starts / Stops the GA Solver
Implementation - Interface
Components: –Future Implementation: More Solvers Newton Solver Button Force Function Graph User Manipulation of Inputs
Conclusion Demo 1 Demo 2 Demo 3
Sources Spacetime Constraints, Andrew Witkins, Michael Kass Spacetime Constraints Revisited, J. Thomas Ngo, Joe Marks Motion from Spacetime Constraints, Matt Ahrens, Brett Levin © 2001 Spacetime Constraints Attempted, Taylor Shaw © 2001 Spacetime Constraints for Biomechanical Movements, David C. Brogan, Kevin P. Granata, Pradip N. Sheth Automatic Control for Animation, Ron Metoyer © 2004 Efficient Generation of Motion Transitions Using Spacetime Constraints, Charles Rose, Brian Guenter, Bobby Bodenheimer, Michael F. Cohen N-Body Spacetime Constraints, Diane Tang, J. Thomas Ngo, Joe Marks © 1994 Sampling Plausible Solutions to Multi-body Constraint Problems, Stephen Chenney, D. A. Forsyth