Parallel Mass Scaling for Stable Rigid Body Stack Simulation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional constraint solvers for simulating dynamic objects, such as rigid bodies, are computationally intensive and inefficient for real-time applications, particularly in stabilizing stacks of objects, due to the need for numerous iterations to propagate collision forces and ensure stability.
Innovation Solution
The method involves characterizing the mass of fundamental building blocks or primitives as a function of stack height and adjusting them prior to constraint solving, with heavier masses at the bottom of the stack, allowing for parallel mass adjustment and constraint solving, thereby improving stability without increasing iteration numbers or altering the iteration order.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional constraint solvers are used to simulate stacks of rigid bodies, then collision forces are propagated and stability is ensured, but the computation time increases significantly due to the large number of iterations required
Solution Approach 1:
The patent modifies the mass parameter of primitives based on their position in the stack (depth from the ground). By assigning heavier masses to primitives at the bottom of the stack and lighter masses to those at the top, the system achieves faster convergence and improved stability without requiring additional iterations. This parameter adjustment is computed in parallel and applied before constraint solving.
2Reliability
If the number of constraint iterations is increased to stabilize stacks, then stability improves, but the computational efficiency decreases
Solution Approach 1:
Instead of increasing the number of iterations, the patent changes the mass parameter of primitives to achieve faster convergence. The mass of each primitive is scaled based on its depth in the stack, creating a mass distribution that naturally promotes stability and reduces the number of iterations needed for convergence.
Solution Approach 2:
The patent performs mass adjustment as a preliminary step before constraint solving. By pre-computing and applying the mass scaling factors based on primitive depth, the system prepares the simulation in a state that requires fewer iterations to achieve stability, thereby improving computational efficiency.
3Reliability
If mass adjustment is performed sequentially to improve stack stability, then stability improves, but the computation time increases
Solution Approach 1:
The patent divides the mass adjustment computation into independent per-primitive operations. Each primitive's mass scaling factor is computed independently based on its depth, allowing parallel execution across all primitives in the stack. This segmentation enables efficient parallel implementation that avoids the time cost of sequential processing.
Solution Approach 2:
The patent transitions from sequential to parallel computation by exploiting the independent nature of mass scaling for each primitive. The mass adjustment operation is reformulated as a parallelizable task where each primitive can have its mass adjusted simultaneously without interfering with others, thus maintaining stability improvement while reducing computation time.
Data Source
AI summary
A computer implemented method of simulating a stack of objects represented as data within memory of a computer system is disclosed. The method comprises modeling the stack within a computer simulation as a set of associated primitives with associated constraints thereto in the memory, wherein the stack comprises a plurality of layers and wherein each layer comprises at least one primitive. The method further comprises estimating a height for each of the primitives in the stack and determining a respective scaling factor for each of the primitives in parallel, wherein each scaling factor is operable to adjust a mass value of each of the primitives. Also, the method comprises scaling a mass value of each of the primitives in accordance with a respective scaling factor in parallel. Finally, the method comprises solving over a plurality of constraints iteratively using a scaled mass value for each of the primitives.


