IP Library Granted Patent US 7,788,071
Granted Patent B2
US 7,788,071 · App. 11/292,788 · Granted Aug 31, 2010

Physics simulation apparatus and method

Assignee: Telekinesys Research Limited
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,788,071
App. No.
11/292,788
Granted
Aug 31, 2010
Kind
B2
Abstract

A method and apparatus wherein complex physical interactions and collisions are modeled at a high level of detail while reducing the computational demands placed on the processing system. In one embodiment the method comprising the steps of defining a first object and a second object, each object adapted for colliding with the other object; assigning an interaction type for at least one of the first and second object in response to an object parameter; and selecting between a continuous simulation of a collision and a discrete simulation of the collision in response to the interaction type.

Claims (46)

1. A computer-based method of simulating a plurality of objects, the method comprising the steps of:

generating an instance of a physics engine, the physics engine running on a computer;

simulating the plurality of objects in a simulated environment using the physics engine using a plurality of frames;

detecting a collision between a pair of objects using the physics engine;

selecting between a continuous simulation mode and a discrete simulation mode for each pair of objects in response to a physics engine parameter using the physics engine, the continuous simulation mode interpolates a motion state for each of the plurality of objects in-between two consecutive frames of the plurality of frames, the discrete simulation mode simulates the plurality of objects using a discrete physical time step;

simulating an interaction between the pair of objects using the selected simulation mode, the selected simulation mode used by the physics engine; and

displaying the simulated interaction.

2. The method of claim 1 wherein the physics engine parameter is an object type and the selecting step further comprises

associating an object type with each object in the pair,

assigning an interaction type in response to one of the object types; and

selecting between a continuous simulation mode and a discrete simulation mode in response to the object type.

3. The method of claim 2 wherein the object type is selected from the group consisting of fixed, keyframed, debris, moving, critical, and bullet.

4. The method of claim 2 wherein the interaction type is selected from the group consisting of continuous, discrete, TOI time of impact interaction, and physical synchronous instance interaction.

5. The method of claim 1 wherein an allowed penetration distance between objects is set based upon an object parameter.

6. The method of claim 1 wherein the physics engine parameter is selected from the group consisting of object type, separation distance, penetration distance, object relevance, physical parameters, and geometric parameters.

7. A computer-based method of simulating object interactions, the method comprising the steps of:

running a physics engine on a computer;

defining a first object having a first object type and a second object having a second object type using the physics engine;

assigning an interaction type in response to at least one object type using the physics engine;

selecting between a continuous simulation mode and a discrete simulation mode in response to the interaction type using the physics engine, wherein when continuous simulation mode is selected the physics engine chronologically processes each occurring collision at a time of impact (TOI) such that collision detection is performed continuously, the discrete simulation mode simulates the plurality of objects using a discrete physical time step such that collision detection is performed at the discrete physical time step; and

simulating an interaction between the first object and the second object using the selected simulation mode.

8. The method of claim 7 wherein the object type is selected from the group consisting of fixed, keyframed, debris, moving, critical, and bullet.

9. The method of claim 7 wherein the interaction type is selected from the group consisting of continuous, discrete, time of impact interaction, and physical synchronous instance interaction.

10. A computer-based method of simulating object interactions using a physics engine, the method comprising the steps of:

running the physics engine;

selecting continuous simulation mode, wherein collision detection is performed between consecutive discrete physical time steps;

calculating a motion state for a plurality of objects at a first time;

calculating a potential motion state for the plurality of objects at a second time using the physics engine;

arranging a plurality of times of impact in chronological order, each time of impact associated with a pair of objects and a time of impact event using the physics engine, the pair of objects selected from the plurality of objects;

processing time of impact events sequentially to determine if a collision is valid using the physics engine;

generating times of impact in response to valid collisions using the physics engine; and simulating object collisions using a set of valid time of impact events using the physics engine.

11. The method of claim 10 wherein the first time corresponds to a first frame and the second time corresponds to a second frame.

12. The method of claim 10 wherein a time of impact is calculated between two bodies using a distance interval between the bodies, the interval representing a maximum penetration depth and a maximum separation distance.

13. The method of claim 10 wherein a plurality of time of impact events generated from a plurality of colliding objects are solved simultaneously.

14. The method of claim 10 wherein maximum penetration distance is increased between a pair of colliding bodies over a number of simulation steps in order to reduce the number of times of impact generated.

15. The method of claim 10 wherein distance interval used to calculate a time of impact is chosen from a dispatch table based on an assigned parameter.

16. A computer system for simulating collisions between two objects, the computer system comprising:

an electronic memory device and

an electronic processor in communication with the memory device, wherein the memory device comprises instructions that when executed by the processor cause the processor to:

define a first object having a first object type and a second object having a second object type;

assign an interaction type in response to at least one object type;

simulate the first object and the second object within a simulated environment;

select between a continuous simulation mode and a discrete simulation mode in response to the interaction type, the discrete simulation mode simulates the first object and the second object using a discrete physical time step such that collision detection is performed at the discrete physical time step, the continuous simulation mode performs collision detection between consecutive discrete physical time steps;

simulate an interaction between the first object and the second object using the selected simulation mode; and

display the simulated interaction.

17. The system of claim 16 wherein the interaction type is selected from the group consisting of continuous and discrete, and wherein the at least one object type is critical.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2020
From: TELEKINESYS RESEARCH LIMITED
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053700/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2006
From: BOND, ANDREW; STRUNK, OLIVER; GASINSKI, ADRIAN
To: TELEKINESYS RESEARCH LIMITED
Reel/Frame 017659/0666 →
Continuity (2)
Provisional Application 6063340500 · Dec 3, 2004
Related Publication 20060149516A1 · Jul 6, 2006