Parallel Mass Scaling for Stable Rigid Body Stack Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvestability of object stacksVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If the number of constraint iterations is increased to stabilize stacks, then stability improves, but the computational efficiency decreases

Engineering Contradiction:
Improvestability of object stacksVSAvoidcomputational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If mass adjustment is performed sequentially to improve stack stability, then stability improves, but the computation time increases

Engineering Contradiction:
Improvestability of object stacksVSAvoidcomputation time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9613449B2Method and apparatus for simulating stiff stacks
Publication Date: 2017.04.04 NVIDIA CORP
  • US9613449B2 patent drawing
  • US9613449B2 patent drawing
  • US9613449B2 patent drawing

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.