Rigid Body Simulation Solver Using Vector Processing for Linear Time Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing rigid-body simulation methods, particularly constraint-based simulations, face challenges such as large memory and computational costs due to the Jacobian matrix calculations, restrictive evaluation order, and position errors caused by misalignment of contact force calculations with collision timing.

Innovation Solution

The simulator iteratively evaluates equations to calculate constraint reaction components using vector processing, allowing simultaneous calculation of multiple components from read data, and defines constraints in terms of displacements to ensure accurate position updates without imparting additional velocity or acceleration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If constraint-based simulation methods are used to ensure realistic rigid body interactions, then simulation accuracy is improved, but computational cost and memory requirements increase due to Jacobian matrix calculations

Engineering Contradiction:
Improvesimulation accuracyVSAvoidcomputational cost
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The simulation system segments constraints into different types (collisions, joints, contacts) and processes them in separate iterative passes. Each constraint type is handled by specialized solver code that processes only relevant constraints, avoiding the need to construct and solve a single large Jacobian matrix for all constraints simultaneously. This segmentation reduces memory requirements and computational complexity while maintaining simulation accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses iterative dynamic solving where constraint reactions are recalculated multiple times per simulation step, with each iteration refining the solution. The solver dynamically adjusts constraint reactions based on current body positions and velocities, allowing accurate simulation without requiring static Jacobian matrix construction. This dynamic approach enables the system to handle changing constraint conditions efficiently.

Inventive Principle:
Principle #15Dynamics

2Stability of the object's composition

If traditional constraint solving methods are used to calculate constraint reactions, then simulation stability is improved, but position errors occur due to misalignment of contact force calculations with collision timing

Engineering Contradiction:
Improvesimulation stabilityVSAvoidposition accuracy
Core Design Contradiction:
Stability of the object's compositionVSManufacturing precision

Solution Approach 1:

The system performs preliminary collision detection and constraint identification before calculating constraint reactions. By identifying all active constraints (collisions, joints, contacts) at the beginning of each simulation step and storing them for processing, the system ensures that constraint forces are calculated based on the correct timing and spatial relationships. This preliminary action prevents position errors that would occur if constraints were evaluated at misaligned times.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The iterative solver uses feedback from previous iterations to refine constraint reaction calculations. Each iteration computes constraint reactions based on current body states, applies them to update positions and velocities, then uses these updated states to recalculate constraints in the next iteration. This feedback loop continuously corrects position errors and ensures that constraint forces remain aligned with actual collision and contact timing throughout the simulation step.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If iterative equation evaluation is used to calculate constraint reactions, then simulation accuracy is improved, but computational time increases

Engineering Contradiction:
Improvesimulation accuracyVSAvoidcomputational time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The iterative solving process is segmented into multiple passes, each handling specific constraint types (collisions, joints, contacts) separately. Each pass processes only the constraints relevant to that category, reducing the computational workload per iteration. This segmentation allows the system to achieve accurate solutions through multiple specialized passes rather than requiring numerous general-purpose iterations, thereby reducing total computational time while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs a fixed number of iterative passes (e.g., 5-10 iterations) rather than continuing until complete convergence. This partial action approach provides sufficient accuracy for real-time simulation needs without the excessive computational cost of achieving full mathematical convergence. The fixed iteration count balances accuracy requirements with real-time performance constraints, preventing excessive computational time while maintaining acceptable simulation accuracy.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7493244B2Computer simulation of body dynamics including a solver that solves in linear time for a set of constraints using vector processing
Publication Date: 2009.02.17 ELECTRONIC ARTS INC
  • US7493244B2 patent drawing
  • US7493244B2 patent drawing
  • US7493244B2 patent drawing

AI summary

Computer simulation of the dynamics of rigid bodies interacting through collisions, stacks and joints is performed using a constraint-based system in which constraints are defined in terms of the positions of the bodies. Displacements caused by reaction forces necessary to ensure that the bodies comply with the position constraints can be calculated and can be done iteratively by updating equations defining the reaction forces and the displacements such that the computation time and memory resources required to perform the calculations is linearly dependent upon the number of bodies and the number of contacts and joints between the bodies. Computational requirements and memory requirements are reduced further by performing the calculations using vector operations.