Minimization Function for Friction in Physics Engine Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Physics engines with real-time iterative rigid body dynamics solvers face challenges in efficiently and accurately finding approximate solutions, particularly in handling intermediate forces that can lead to artifacts and unintended behavior, such as sliding or rolling of rigid bodies, due to intermediate velocities that are not representative of actual states.

Innovation Solution

A stateless physics engine is implemented with a minimization function for friction solving, which calculates friction velocities based on stored initial velocities and intermediate solver velocities, applying a friction force or impulse to mitigate these issues without introducing extra states, thereby reducing memory consumption and ensuring determinism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If intermediate solver velocities are used for friction calculations, then friction forces can be applied during iterative solving, but artifacts and unintended behavior occur due to velocities not representing actual states

Engineering Contradiction:
Improvereal-time simulation speedVSAvoidsimulation accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent stores initial velocities before iterative solving begins, making them available for friction calculations throughout the solving process. This preliminary action allows friction to be computed using reliable initial velocity data rather than intermediate solver velocities that do not represent actual physical states, thereby maintaining simulation accuracy while enabling real-time computation.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If state data is stored for friction calculations, then friction accuracy improves, but memory consumption increases

Engineering Contradiction:
Improvefriction calculation accuracyVSAvoidmemory consumption
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential velocity data (initial velocities) needed for friction calculations, storing minimal state information rather than comprehensive body state data. This selective extraction maintains friction calculation accuracy while keeping memory consumption low, avoiding the need to store extensive state information.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If iterative solving is used to find approximate solutions, then computational efficiency improves, but intermediate forces cause artifacts and instability

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidsimulation stability
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent implements feedback by using stored initial velocities to guide friction calculations throughout the iterative solving process. This feedback mechanism ensures that friction forces remain consistent with the actual physical state rather than intermediate solver states, preventing artifacts and maintaining simulation stability while allowing iterative solving to proceed efficiently.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11875094B2Minimization function for friction solving
Publication Date: 2024.01.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11875094B2 patent drawing
  • US11875094B2 patent drawing
  • US11875094B2 patent drawing

AI summary

A physics engine executed on a processor to simulate real-time rigid body dynamics of a simulated physical system with a minimizing function between initial velocities and intermediate solver velocities is provided. The physics engine may be configured to iteratively loop through a collision detection phase, an iterative solving phase, updating phase, and display phase. The physics engine may be configured to store initial velocities for colliding pairs of bodies. The physics engine may be further configured to determine intermediate solver velocities for the colliding pairs of bodies based on accumulated results of constraint solving for each pair of bodies. The physics engine may be further configured to calculate friction velocities for that colliding pair of bodies based on the stored initial velocities and the intermediate solver velocities using a minimization function, and apply a friction force or impulse based on the calculated friction velocities.