# US 10,311,543 B2 · Virtual object movement

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

- Number: US 10,311,543 B2
- Document ID: US10311543B2
- Status: Granted
- Kind: B2
- Application number: 15/336,461
- Filed: 2016-10-27
- Published: 2018-05-03
- Granted: 2019-06-04
- Earliest claimed: 2016-10-27
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Semih Energin; Sergio Paolantonio; David Evans; Eric Scott Rehmeyer; Robert Thomas Held; Maxime Ouellet; Anatolie Gavriliuc; Riccardo Giraldi; Andrew Frederick Muehlhausen
- Web page: https://patentgrep.com/patent/US10311543B2

## CPC

- G06T 3/20: Linear translation of whole images or parts thereof, e.g. panning
- A63F 13/428: involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
- A63F 13/53: involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- G06F 1/163: {Wearable computers, e.g. on a belt}
- G06F 3/011: {Arrangements for interaction with the human body, e.g. for user immersion in virtual reality (blind teaching G09B21/00)}
- G06F 3/012: {Head tracking input arrangements}
- G06F 3/013: {Eye tracking input arrangements (G06F3/015 takes precedence)}
- G06F 3/017: {Gesture based interaction, e.g. based on a set of recognized hand gestures (interaction based on gestures traced on a digitiser G06F3/04883)}
- G06F 3/0304: {Detection arrangements using opto-electronic means (constructional details of pointing devices not related to the detection arrangement using opto-electronic means G06F3/033; optical digitisers G06F3/042)}
- G06F 3/04815: Interaction with a metaphor-based environment or interaction object displayed as three-dimensional [3D], e.g. changing the user viewpoint with respect to the environment or object
- G06F 3/04845: for image manipulation, e.g. dragging, rotation, expansion or change of colour
- G06T 3/60: Rotation of whole images or parts thereof
- G06T 19/006: {Mixed reality (object pose determination, tracking or camera calibration for mixed reality G06T7/00)}
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2210/21: Collision detection, intersection
- G06T 2219/2004: Aligning objects, relative positioning of parts
- G06T 2219/2016: Rotation, translation, scaling
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for moving a virtual object includes displaying a virtual object and moving the virtual object based on a user input. Based on the user input attempting to move the virtual object in violation of an obstacle, displaying a collision indicator and an input indicator. The collision indicator is moved based on user input and movement constraints imposed by the obstacle. The input indicator is moved based on user input without movement constraints imposed by the obstacle.

## Claims

### Claim 1

A method for moving a virtual object with a virtual reality computing device including a near-eye display, comprising:
displaying a virtual object on the near-eye display;
moving the virtual object based on a user input;
based on the user input attempting to move the virtual object in violation of an obstacle, displaying a collision indicator and an input indicator on the near-eye display, the input indicator having a same size and shape as the collision indicator, where one or both of a color and a transparency of the input indicator changes based on a distance between the input indicator and the collision indicator;
moving the collision indicator based on user input and movement constraints imposed by the obstacle; and
moving the input indicator based on user input without movement constraints imposed by the obstacle.

### Claim 2 (depends on 1)

The method of claim 1, where the obstacle is a real world object.

### Claim 3 (depends on 1)

The method of claim 1, where the obstacle is a virtual object.

### Claim 4 (depends on 1)

The method of claim 1, where an appearance of the collision indicator mimics an appearance of the virtual object.

### Claim 5 (depends on 1)

The method of claim 1, where an appearance of the input indicator is different than but derived from an appearance of the virtual object.

### Claim 6 (depends on 1)

The method of claim 1, where rotation of the input indicator results in collision-permissible rotation of the collision indicator.

### Claim 7 (depends on 1)

The method of claim 1, where movement of the collision indicator is further based on a simulated attractive force that pulls the collision indicator toward the input indicator.

### Claim 8 (depends on 1)

The method of claim 1, where movement constraints imposed by the obstacle are relaxed as the distance between the collision indicator and the input indicator increases.

### Claim 9 (depends on 1)

The method of claim 1, where the collision indicator and input indicator replace the virtual object.

### Claim 10 (depends on 9)

The method of claim 9, further comprising replacing the collision indicator and the input indicator with the virtual object at a position of the input indicator based on a condition of separation between the collision indicator and the input indicator.

### Claim 11 (depends on 10)

The method of claim 10, where the condition of separation is the distance between the collision indicator and the input indicator, and the collision indicator and the input indicator are replaced with the virtual object at the position of the input indicator based on the distance exceeding a threshold.

### Claim 12 (depends on 10)

The method of claim 10, where upon replacing the collision indicator and the input indicator with the virtual object, the method further comprises moving the virtual object based on user input without movement constraints imposed by the obstacle.

### Claim 13 (depends on 1)

The method of claim 1, further comprising displaying a virtual window to maintain visibility of the input indicator or the virtual object.

### Claim 14

A computing device, comprising:
a logic machine; and
a storage machine holding instructions executable by the logic machine to:
display a virtual object;
move the virtual object based on a user input; and
based on the user input attempting to move the virtual object in violation of an obstacle, replace the virtual object with a collision indicator and an input indicator, the input indicator having a same size and shape as the collision indicator, where one or both of a color and a transparency of the input indicator changes based on a distance between the input indicator and the collision indicator;
move the collision indicator based on user input and movement constraints imposed by the obstacle; and
move the input indicator based on user input without movement constraints imposed by the obstacle.

### Claim 15 (depends on 14)

The computing device of claim 14, where the instructions are further executable to replace the collision indicator and the input indicator with the virtual object at a position of the input indicator based on the distance between the collision indicator and the input indicator exceeding a threshold, and move the virtual object based on user input without movement constraints imposed by the obstacle.

### Claim 16 (depends on 15)

The computing device of claim 15, where movement of the collision indicator is further based on a simulated attractive force that pulls the collision indicator toward the input indicator.

### Claim 17

A method for moving a virtual object with a virtual reality computing device including a near-eye display, comprising:
displaying a virtual object on the near-eye display;
moving the virtual object based on a user input; and
based on the user input attempting to move the virtual object in violation of an obstacle, replacing the virtual object with a collision indicator and an input indicator on the near-eye display, the input indicator having a same size and shape as the collision indicator, where one or both of a color and a transparency of the input indicator changes based on a distance between the input indicator and the collision indicator;
moving the collision indicator based on user input, movement constraints imposed by the obstacle, and a simulated attractive force that pulls the collision indicator toward the input indicator;
moving the input indicator based on user input without movement constraints imposed by the obstacle;
based on the distance between the collision indicator and the input indicator exceeding a threshold, replacing the collision indicator and the input indicator with the virtual object at a position of the input indicator; and
moving the virtual object from the position based on user input without movement constraints imposed by the obstacle.
