Synchronization scheme for physics simulations

US10440109B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10440109-B2
Application numberUS-201816056502-A
CountryUS
Kind codeB2
Filing dateAug 6, 2018
Priority dateOct 11, 2015
Publication dateOct 8, 2019
Grant dateOct 8, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A server, which is in communication with a plurality of client computing devices configured to perform a reduced simulation function, comprises a synchronization engine configured to generate synchronization packets for one or more rigid bodies according to a synchronization scheme and, for each rigid body, to dynamically update the synchronization scheme based on a current state of the rigid body in simulation data and stored states for the rigid body which are stored in a buffer. The synchronization packets are then transmitted to one of the plurality of client computing devices.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method, comprising: by a server in communication with a remote client computing device performing a local simulation of one or more rigid bodies: storing a plurality of previous states of one or more rigid bodies involved in the local simulation, the state of the one or more rigid bodies being categorized as either colliding or not colliding; generating synchronization data for a respective rigid body according to a synchronization scheme, the generating accounting for transitions between a continuously colliding state and a not colliding state by comparing a current state of the respective rigid body to one or more stored states for the respective rigid body; and transmitting the synchronization data to the client computing device. 2. The method according to claim 1 , wherein the generating of the synchronization data comprises detecting if the respective rigid body is transitioning between a continuously colliding state and a steady gravitational state. 3. The method according to claim 2 , wherein, in response to detecting a transition from the continuously colliding state to the steady gravitational state, the method further comprises updating the synchronization scheme to generate synchronization data comprising a set of properties of the respective rigid body. 4. The method according to claim 2 , wherein, in response to detecting a transition from the steady gravitational state to the continuously colliding state, the method further comprises updating the synchronization scheme to generate synchronization data causing the local simulation of the respective rigid body on the client computing device to stop. 5. The method of claim 1 , further comprising: storing N previous states of the respective rigid body, where N is a positive integer greater than one. 6. The method of claim 5 , further comprising detecting a transition from a continuously colliding state to a steady gravitational state when at least the N−1 most recent stored states for the respective rigid body are all not colliding and the current state is colliding. 7. The method of claim 5 , further comprising detecting a transition from a steady gravitational state to a continuously colliding state when at least the N−1 most recent stored states for the respective rigid body are all colliding and the current state is not colliding. 8. The method of claim 5 , further comprising dynamically adjusting the value of N based, at least in part, on an available bandwidth between the server and the remote client computing device. 9. The method of claim 1 , wherein the transmitting comprises transmitting properties of the respective rigid body including the respective rigid body's velocity, position and rotation. 10. The method of claim 1 , wherein the method further comprises updating the synchronization scheme for the respective rigid body by detecting if the respective rigid body is in a continuously colliding state or in a steady gravitational state. 11. The method of claim 10 , wherein, in response to detecting that the respective rigid body is in the continuously colliding state, updating the synchronization scheme to generate one or more sets of the synchronization data every K collisions, each set of synchronization data comprising a reduced set of properties of the respective rigid body, and where K is a positive integer. 12. The method of claim 11 , further comprising dynamically adjusting the value of K based, at least in part, on an available bandwidth between the server and the remote client computing device. 13. The method of claim 10 , wherein, in response to detecting that the respective rigid body is in the steady gravitational state, updating the synchronization scheme to stop generating synchronization packets, wherein K is a positive integer. 14. The method of claim 1 , further comprising computing the current state of the respective rigid body as being either colliding or not colliding. 15. The method of claim 14 , wherein the computing the current state of the respective rigid body comprises performing a simulation of gravitational trajectories of the respective rigid body. 16. The method of claim 14 , wherein the computing the current state of the respective rigid body comprises performing a simulation of a collision of the respective rigid body. 17. One or more computer-readable storage devices computer-executable instructions which when executed by a computer cause the computer to perform a method, the method comprising: storing a plurality of previous states of one or more rigid bodies involved in the simulation, the state of the one or more rigid bodies being categorized as either colliding or not colliding; generating synchronization data for a respective rigid body according to a synchronization scheme, the generating accounting for transitions between a continuously colliding state and a not colliding state by comparing a current state of the respective rigid body to one or more stored states for the respective rigid body; and transmitting the synchronization data to the client computing device. 18. The one or more computer-readable storage devices of claim 17 , wherein the generating of the synchronization data comprises detecting if the respective rigid body is transitioning between a continuously colliding state and a steady gravitational state. 19. The one or more computer-readable storage devices of claim 17 , wherein, (a) in response to detecting a transition from the continuously colliding state to the steady gravitational state, the method further comprises updating the synchronization scheme to generate synchronization data comprising a set of properties of the respective rigid body; and (b) in response to detecting a transition from the steady gravitational state to the continuously colliding state, the method further comprises updating the synchronization scheme to generate synchronization data causing the simulation of the respective rigid body on the client computing device to stop. 20. A server in communication with a remote client computing device performing a local simulation of one or more rigid bodies, the server being configured to: store a plurality of previous states of one or more rigid bodies involved in the simulation, the state of the one or more rigid bodies being categorized as either colliding or not colliding; generate synchronization data for a respective rigid body according to a synchronization scheme, the generating accounting for transitions between a continuously colliding state and a not colliding state by comparing a current state of the respective rigid body to one or more stored states for the respective rigid body; and transmit the synchronization data to the client computing device.

Assignees

Inventors

Classifications

  • Computer-aided design [CAD] · CPC title

  • ICT specially adapted for modelling or simulations in systems biology, e.g. gene-regulatory networks, protein interaction networks or metabolic networks · CPC title

  • Analogue computers for specific processes, systems or devices, e.g. simulators · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10440109B2 cover?
A server, which is in communication with a plurality of client computing devices configured to perform a reduced simulation function, comprises a synchronization engine configured to generate synchronization packets for one or more rigid bodies according to a synchronization scheme and, for each rigid body, to dynamically update the synchronization scheme based on a current state of the rigid b…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L67/1095. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 08 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).