IP Library Granted Patent US 11,455,030
Granted Patent B2
US 11,455,030 · App. 17/308,769 · Granted Sep 27, 2022

System, method and apparatus of simulating physics in a virtual environment

Inventors: Brian Shuster (Vancouver, CA); Aaron Burch (Vancouver, CA)
Assignee: PFAQUTRUMA RESEARCH LLC
G06F3/011G06T19/006
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 11,455,030
App. No.
17/308,769
Granted
Sep 27, 2022
Kind
B2
Abstract

A method of simulating physics in a virtual worlds system includes selecting at least one of the client devices participating in an instance of a scene as a physics host, the physics host determining subsequent states of objects and sending the subsequent states to one or more processors of a server, the subsequent states of objects comprising one or more of: subsequent locations, orientations, velocities and accelerations determined based on characteristics of the objects and constraints for simulating physics consistent with the new instance of the scene of the virtual worlds system.

Claims (45)

1. A method comprising:

at a first client device including one or more processors, non-transitory memory, and a communication interface for communicating with a plurality of other client devices:

instantiating a multi-user virtual environment, wherein the first client device and the plurality of other client devices each maintain and display a local version of the multi-user virtual environment;

obtaining a request to modify an object within the multi-user virtual environment; and

in response to obtaining the request to modify the object within the multi-user virtual environment:

determining a subsequent state of the object based on the request to modify the object within the multi-user virtual environment;

updating the local version of the multi-user environment based on the subsequent state of the object and displaying the updated local version of the multi-user environment; and

transmitting, via the communication interface, information associated with the subsequent state of the object to the plurality of other client devices and instructing the plurality of other client devices to update their respective local versions of the multi-user virtual environment based on the information associated with the subsequent state of the object.

2. The method of claim 1 , wherein the first client device corresponds to a coordinator of the multi-user virtual environment.

3. The method of claim 1 , wherein the object corresponds to a virtual object or avatar within the multi-user environment.

4. The method of claim 1 , wherein the request to modify the object within the multi-user virtual environment corresponds to a movement request associated with moving the object within the multi-user virtual environment.

5. The method of claim 4 , wherein the subsequent state of the object includes a change to at least one of translational or rotational values of the object.

6. The method of claim 1 , wherein the request to modify the object within the multi-user virtual environment corresponds to a deformation request associated with deforming the object within the multi-user virtual environment.

7. The method of claim 6 , wherein the subsequent state of the object includes a change to at least one of a shape or form of the object.

8. The method of claim 1 , wherein the request to modify the object within the multi-user virtual environment corresponds to a request from one of the plurality of other client devices.

9. The method of claim 1 , wherein the multi-user environment includes representations of a user of the first client device and users of the plurality of other client devices.

10. The method of claim 1 , wherein determining the subsequent state of the object includes deter determining a subsequent state of the object based on the request to modify the object within the multi-user virtual environment, characteristics of the object, and constraints for simulating physics consistent with the multi-user virtual environment.

11. The method of claim 10 , wherein the constraints correspond with one of (a) underwater physics or (b) physics corresponding with conditions in space.

12. The method of claim 1 , wherein the subsequent state of the object is based at least in part on one of an elasticity of the object or a collision of the object within another object.

13. The method of claim 1 , wherein the subsequent state of the object includes a subsequent form of a plurality of pieces of the object.

14. A non-transitory computer-readable medium having instructions encoded thereon which, when executed by one or more processors of a first client device with a communication interface for communicating with a plurality of other client devices, cause the first client device to:

instantiate a multi-user virtual environment, wherein the first client device and the plurality of other client devices each maintain and display a local version of the multi-user virtual environment;

obtain a request to modify an object within the multi-user virtual environment; and

in response to obtaining the request to modify the object within the multi-user virtual environment:

determine a subsequent state of the object based on the request to modify the object within the multi-user virtual environment;

update the local version of the multi-user environment based on the subsequent state of the object and displaying the updated local version of the multi-user environment; and

transmit, via the communication interface, information associated with the subsequent state of the object to the plurality of other client devices and instructing the plurality of other client devices to update their respective local versions of the multi-user virtual environment based on the information associated with the subsequent state of the object.

15. The non-transitory computer-readable medium of claim 14 , wherein the request to modify the object within the multi-user virtual environment corresponds to a movement request associated with moving the object within the multi-user virtual environment.

16. The non-transitory computer-readable medium of claim 15 , wherein the subsequent state of the object includes a change to at least one of translational or rotational values of the object.

17. The non-transitory computer-readable medium of claim 14 , wherein the request to modify the object within the multi-user virtual environment corresponds to a deformation request associated with deforming the object within the multi-user virtual environment.

18. The non-transitory computer-readable medium of claim 17 , wherein the subsequent state of the object includes a change to at least one of a shape or form of the object.

19. A first client device comprising:

a communication interface for communicating with a plurality of other client devices;

one or more processors; and

a non-transitory memory storing instructions, which, when executed by the one or more processors, cause the first client device to:

instantiate a multi-user virtual environment, wherein the first client device and the plurality of other client devices each maintain and display a local version of the multi-user virtual environment;

obtain a request to modify an object within the multi-user virtual environment; and

in response to obtaining the request to modify the object within the multi-user virtual environment:

determine a subsequent state of the object based on the request to modify the object within the multi-user virtual environment;

update the local version of the multi-user environment based on the subsequent state of the object and displaying the updated local version of the multi-user environment; and

transmit, via the communication interface, information associated with the subsequent state of the object to the plurality of other client devices and instructing the plurality of other client devices to update their respective local versions of the multi-user virtual environment based on the information associated with the subsequent state of the object.

20. The first client device of claim 19 , wherein the request to modify the object within the multi-user virtual environment corresponds to a movement request associated with moving the object within the multi-user virtual environment.

21. The first client device of claim 20 , wherein the subsequent state of the object includes a change to at least one of translational or rotational values of the object.

22. The first client device of claim 19 , wherein the request to modify the object within the multi-user virtual environment corresponds to a deformation request associated with deforming the object within the multi-user virtual environment.

23. The first client device of claim 22 , wherein the subsequent state of the object includes a change to at least one of a shape or form of the object.