Position-Based Dynamics for Stable Vertex Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional physics simulations in video games face challenges in balancing realism and computational efficiency, often resulting in either inaccurate or unstable animations due to the use of forces or impulses, which can lead to numerical instability and energy issues.

Innovation Solution

Position-based dynamics methods are employed, where vertex positions are directly manipulated based on constraints, allowing for improved control over integration stability, prevention of penetration, and easier implementation, while conserving linear and angular momentum through projection techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional physics simulation methods using forces and impulses are used, then realistic object behavior can be achieved, but numerical instability and energy conservation problems occur

Engineering Contradiction:
Improvesimulation stabilityVSAvoidenergy conservation
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent replaces the traditional force-based mechanical integration system with a position-based direct manipulation system. Instead of applying forces and integrating accelerations to update positions, the invention directly sets vertex positions based on constraint satisfaction, eliminating the numerical integration steps that cause instability and energy drift.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The invention changes the fundamental parameter being manipulated from forces/accelerations to positions directly. By working with position parameters rather than force parameters, the system achieves both stability and energy conservation without requiring complex force balance calculations.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If explicit integration techniques are used to speed up simulation, then computational efficiency improves, but overshooting and instability problems occur

Engineering Contradiction:
Improvesimulation speedVSAvoidposition accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

Instead of integrating from forces to positions (forward integration), the invention inverts the approach by directly computing positions from constraint conditions. This backward approach eliminates accumulation errors and overshooting inherent in explicit integration methods while maintaining computational efficiency.

Inventive Principle:
Principle #13The other way round (Inversion)

3Reliability

If position-based dynamics are used to improve stability, then numerical stability improves, but momentum conservation must be explicitly implemented

Engineering Contradiction:
Improveintegration stabilityVSAvoidmomentum conservation implementation
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary momentum conservation calculations before final position updates. By computing momentum adjustments in advance and applying them as correction terms, the system maintains both stability and momentum conservation without requiring complex iterative solving during the main simulation loop.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7616204B2Method of simulating dynamic objects using position based dynamics
Publication Date: 2009.11.10 NVIDIA CORP
  • US7616204B2 patent drawing
  • US7616204B2 patent drawing
  • US7616204B2 patent drawing

AI summary

Disclosed is a method of simulating a dynamic object comprising a plurality of vertices. The method comprises defining a current position and a current velocity for a vertex “v” among the plurality of vertices, generating an estimated next position for vertex “v” based on the current position and current velocity, updating the estimated next position based on a plurality of constraints, and after updating the estimated next position, computing a next position and a next velocity for vertex “v” based on the current position and estimated next position.