Parallel Rigid Body Solver Using Mass Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing parallel implementations of rigid body dynamics simulations face challenges in avoiding artifacts like jittering and swimming due to uneven distribution of residual energy, which limits performance and scalability, especially in large-scale or real-time simulations.
Innovation Solution
A parallel iterative rigid body solver that splits the mass of each body among its contacts and solves contact constraints independently, using fixed joints to ensure consistent momentum propagation and stable resting contact, allowing for parallel processing without serialization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If serial projected Gauss-Seidel is used to solve contact constraints, then the algorithm is simple to implement, but the performance does not scale well as more threads are added due to required serialization
Solution Approach 1:
The patent divides the set of contact constraints into multiple independent groups that can be processed in parallel. Each group is solved independently using PGS, eliminating the need for serialization between threads while maintaining solution quality. This segmentation allows the algorithm to scale efficiently with additional threads.
2Productivity
If iteration is terminated early to maximize rigid body count, then real-time simulation performance is improved, but residual energy causes artifacts like jittering and swimming
Solution Approach 1:
By segmenting contact constraints into independent groups solved in parallel, the patent achieves uniform error distribution across all contacts even when iteration is terminated early. This eliminates the uneven residual energy distribution that causes jittering and swimming artifacts, allowing early termination without quality degradation.
Solution Approach 2:
The patent changes the iteration parameter by performing a fixed number of parallel iterations rather than serial iterations. This parameter change allows the simulation to terminate early while maintaining uniform error distribution across contacts, preventing artifacts while maximizing performance.
3Productivity
If parallel PGS is used to increase computation speed, then productivity is improved, but uniform error distribution across contacts becomes difficult to achieve
Solution Approach 1:
The patent segments contact constraints into independent groups assigned to different threads. Each thread solves its assigned contacts uniformly, ensuring that error distribution remains consistent across all contacts parallelized computation.
Data Source
AI summary
A system and method for solving linear complementarity problems for rigid body simulation is disclosed. The method includes determining one or more contact constraints affecting an original object having an original mass. The method includes splitting the original object by a total number of the contact constraints into a plurality of sub-bodies. The method includes assigning a contact constraint to a corresponding sub-body. The method further includes solving contact constraints in isolation for each sub-body. The method also includes enforcing positions and orientations of each sub-body are identical.


