Patent ID: 11875094
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
Field: Computer technology (Electrical engineering)
Classification: CPC G  Y | IPC G

Claim 19:
20. A computing device, comprising:
a processor configured to execute a physics engine configured to:
store initial velocities for a colliding pair of bodies;
determine one or more position or velocity constraints for the colliding pair of bodies;
solve the one or more position or velocity constraints;
apply one or more forces or impulses to each body of the colliding pair of bodies based on the solving of each position or velocity constraint;
accumulate the one or more applied forces or impulses to obtain accumulated results of constraint solving;
determine intermediate solver velocities for the colliding pair of bodies based on the accumulated results of constraint solving;
calculate friction velocities for that colliding pair of bodies based on the stored initial velocities and the intermediate solver velocities using a minimization function, wherein the minimization function selects a smaller of the stored initial velocities and the intermediate solver velocities to compute the friction velocities;
apply a friction force or impulse based on the calculated friction velocities for the colliding pair of bodies;
update positions of the colliding pairs of bodies based on the accumulated results of constraint solving and the applied friction force or impulse; and
output data representations of the plurality of bodies to a display associated with the computing device.