# US 10,864,434 B2 · Simulation of multiple connected bodies for real-time application

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,864,434 B2
- Document ID: US10864434B2
- Status: Granted
- Kind: B2
- Application number: 15/907,127
- Filed: 2018-02-27
- Published: 2019-08-29
- Granted: 2020-12-15
- Earliest claimed: 2018-02-27
- Assignees: Square Enix Co., Ltd.
- Applicants: Square Enix Ltd.
- Inventors: Gary Linn Snethen; Sree Harsha Kalangi
- Web page: https://patentgrep.com/patent/US10864434B2

## CPC

- A63F 13/211: using inertial sensors, e.g. accelerometers or gyroscopes
- A63F 13/56: Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
- G01L 5/04: for measuring tension in flexible members, e.g. ropes, cables, wires, threads, belts or bands {(G01L5/0004 takes precedence)}
- A63F 13/40: Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- G06F 3/011: {Arrangements for interaction with the human body, e.g. for user immersion in virtual reality (blind teaching G09B21/00)}
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G01L: MEASURING FORCE, STRESS, TORQUE, WORK, MECHANICAL POWER, MECHANICAL EFFICIENCY, OR FLUID PRESSURE (weighing G01G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments relate to simulating the movements of three or more bodies connected on a cord for use in real-time videogame applications. The state of the bodies such as position, velocity, and orientation of the bodies connected by a cord are determined in single pass without iteration. For a given time step and the state of the bodies in the time step, the Jacobian matrix for the connected bodies is calculated. The, the tension in the cord is calculated based on the Jacobian matrix. From the tension, the state of the bodies for the next time step is obtained.

## Claims

### Claim 1

A method of simulating movements of connected bodies, comprising:
(a) receiving constraint parameters describing constraints associated with physical properties of three or more bodies connected by a cord, wherein the constraint parameters include a mass of the cord that is greater than zero;
(b) receiving a state of the bodies including at least one of a position, linear velocity, angular velocity, mass, inertia tensor, and orientation of the bodies at a current time step;
(c) receiving external force parameters or external impulse parameters, the external force parameters indicative of external forces applied to the connected bodies at the current time step, the external impulse parameters indicative of external impulses applied to the connected bodies at the current time step;
(d) determining a Jacobian matrix for the connected bodies based on the constraint parameters and the state of the bodies for the current time step;
(e) determining a tension experienced in the cord at the current time step based on the external force parameters or the external impulse parameters at the current time step and the Jacobian matrix;
(f) updating the state of the bodies for a next time step subsequent to the current time step based on the determined tension at the current time step; and
(g) sending for display, on a display device, representations of the bodies and the cord at the next time step based on the updated state,
wherein each of steps (c) through (f) are performed only once for the current time step.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
(g) updating the next time step as the current time step; and
repeating steps (c) through (f) with the updated current time step.

### Claim 3 (depends on 1)

The method of claim 1, wherein the constraint parameters include at least one of (i) a number of bodies connected by the cord, (ii) distances between each of the bodies, and (iii) whether each of the bodies are allowed to slide along the cord.

### Claim 4 (depends on 1)

The method of claim 1, wherein the constraint parameters further include at least one of a flexibility of the cord or a stiffness of the cord.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
(g) determining if the updated state of the bodies for the next time step satisfies at least one additional constraint; and
(h) responsive to determining that the updated state of the bodies for the next step does not satisfy the at least one additional constraint, revising the state of the bodies at the current time step and reiterating (e) and (f).

### Claim 6 (depends on 1)

The method of claim 1, wherein at least one of the external force parameters or the external impulse parameters is determined based on an input received from a user via an input device, and the (c) and (f) are performed in real-time.

### Claim 7 (depends on 1)

The method of claim 1, wherein the tension experienced in the cord at the current time step is an impulse.

### Claim 8

A non-transitory computer readable storage medium with instructions that when executed by a processor cause the processor to:
(a) receive constraint parameters describing constraints associated with physical properties of three or more bodies connected by a cord, wherein the constraint parameters include a mass of the cord that is greater than zero;
(b) receive a state of the bodies including at least one of a position, linear velocity, angular velocity, mass, inertia tensor, and orientation of the bodies at a current time step;
(c) receive external force parameters or external impulse parameters, the external force parameters indicative of external forces applied to the connected bodies at the current time step, the external impulse parameters indicative of external impulses applied to the connected bodies at the current time step;
(d) determine a Jacobian matrix for the connected bodies based on the constraint parameters and the state of the bodies for the current time step;
(e) determine a tension experienced in the cord at the current time step based on the external force parameters or the external impulse parameters at the current time step and the Jacobian matrix;
(f) update the state of the bodies for a next time step subsequent to the current time step based on the determined tension at the current time step; and
(g) sending for display, on a display device, representations of the bodies and the cord at the next time step based on the updated state,
wherein each of steps (c) through (f) are performed only once for the current time step.

### Claim 9 (depends on 8)

The computer readable storage medium of claim 8, wherein the instructions further cause the processor to:
(g) update the next time step as the current time step; and
repeat steps (c) through (f) with the updated current time step.

### Claim 10 (depends on 8)

The computer readable storage medium of claim 8, wherein the constraint parameters include at least one of (i) a number of bodies connected by the cord, (ii) distances between each of the bodies, and (iii) whether each of the bodies are allowed to slide along the cord.

### Claim 11 (depends on 8)

The computer readable storage medium of claim 8, wherein the instructions further cause the processor to:
(g) determine if the updated state of the bodies for the next time step satisfies at least one additional constraint; and
(h) responsive to determining that the updated state of the bodies for the next step does not satisfy the at least one additional constraint, revise the state of the bodies at the current time step and reiterating (e) and (f).

### Claim 12 (depends on 8)

The computer readable storage medium of claim 8, wherein at least one of the external force parameters or the external impulse parameters is determined based on an input received from a user via an input device, and the (c) and (f) are performed in real-time.
