Parallel Rigid Body Solver Mass Segmentation for Simulation Stability
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, especially when iteration is terminated before convergence 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
1Loss of time
If iterative methods are used to solve rigid body dynamics in large-scale simulations, then computation time is reduced, but residual energy distribution becomes uneven causing jittering and swimming artifacts
Solution Approach 1:
The patent segments the residual energy distribution across contacts by processing contacts in parallel batches rather than sequentially. Each batch processes a subset of contacts independently, allowing simultaneous computation while distributing residual energy more uniformly across all contacts. This segmentation enables early termination of iterations without the severe artifacts caused by sequential processing, as the parallel batch approach ensures more equitable residual distribution even when convergence is not fully achieved.
2Productivity
If parallel implementation is used to increase processing speed, then productivity improves, but serialization is required for bodies with multiple contacts losing parallelism benefits
Solution Approach 1:
The patent segments contacts into multiple independent batches that can be processed in parallel. Each batch contains a subset of contacts that can be solved independently without requiring serialization. This segmentation strategy allows the system to maintain high parallelism even for bodies with multiple contacts, as different batches are distributed across different processing threads. The batching approach eliminates the need to serialize processing for individual bodies, preserving parallelism benefits while correctly handling complex contact connectivity.
Solution Approach 2:
The patent implements dynamic batch assignment where contacts are distributed into batches based on the current simulation state and contact connectivity. This dynamic approach allows the system to adaptively balance the workload across parallel threads, optimizing processing speed while maintaining correctness. The dynamic batching strategy enables efficient utilization of multiple processing cores by adjusting batch composition based on contact density and connectivity patterns, thereby maximizing productivity without requiring rigid serialization protocols.
3Productivity
If iteration is terminated before convergence to maximize body count, then productivity increases, but residual energy causes visible jittering and swimming
Solution Approach 1:
The patent segments the contact solving process into multiple parallel batches, allowing the simulation to handle a larger number of rigid bodies by distributing contacts across batches. This segmentation enables the system to terminate iterations early while maintaining acceptable simulation quality, as the parallel batch approach distributes residual energy more uniformly compared to sequential processing. The result is that more bodies can be simulated simultaneously without the severe jittering and swimming artifacts that would otherwise occur with premature termination of sequential iterations.
Data Source
AI summary
A system and method for solving linear complementarity problems for rigid body simulation is disclosed. The method includes determining a plurality of modified effective masses for a plurality of contacts between a plurality of bodies, wherein each modified effective mass term is based on a corresponding number of contacts. A plurality of relative velocities is determined based on the plurality of body velocities determined from a last iteration. A plurality of impulse corrections is determined based on the plurality of modified effective masses and the plurality of relative velocities. A plurality of updated impulses is determined based on the impulse corrections. The plurality of updated impulses is applied to the plurality of bodies based on a plurality of original masses of the bodies, body velocities determined from the last iteration, to determine a plurality of updated velocities of the plurality of bodies.


