IP Library Granted Patent US 10,564,800
Granted Patent B2
US 10,564,800 · App. 15/902,640 · Granted Feb 18, 2020

Method and apparatus for tool selection and operation in a computer-generated environment

Inventors: Kyle W. Cooper (Malibu, CA); Kimberly Cooper (Malibu, CA); Amir Alavi (Atlanta, GA); Brian C. Holmes (Los Angeles, CA)
Assignee: SPATIALAND INC.
G06F3/04815G02B27/017G06F3/04842
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 10,564,800
App. No.
15/902,640
Granted
Feb 18, 2020
Kind
B2
Abstract

Method and apparatus for facilitating virtual object selection and interaction in a computer-generated environment such as a virtual or augmented reality 3-D environment are disclosed. A physical controller allows interaction by the user with a tool displayed at a first position in the computer-generated environment where, when a first signal is received from the physical controller to initiate selection of the tool, a visual cue is created in the computer-generated environment. The visual cue includes a vector that allows targeting of the tool and is displayed with respect to a virtual controller that is a graphical representation of the physical controller in the computer-generated environment. Upon receipt of a selection signal from the physical controller when the vector and the tool intersect, the computer-generated environment is updated to display the tool at a second location that is relative to the virtual controller.

Claims (66)

1. An apparatus for providing object interaction in a computer-generated environment, comprising:

an interface configured to communicate with a physical controller associated with a user to allow the user to interact with a virtual object displayed at a first location in the computer-generated environment;

at least one processor coupled to the interface; and

a memory coupled to the at least one processor, wherein the memory is configured to cause the at least one processor to:

provide a virtual controller comprising a graphical representation of the physical controller in the computer-generated environment, wherein the virtual controller further comprises a set of coordinates;

display a visual cue in the computer-generated environment generated from a vector comprising an origin determined from the set of coordinates;

receive a selection signal from the physical controller during a detected intersection between the vector and the virtual object;

update the computer-generated environment with the virtual object displayed at a second location based on the receipt of the selection signal, wherein the second location is the origin; and

provide an animation of the virtual object moving from the first location to the second location;

determine that the animation of the virtual object moving from the first location to the second location has caused an object space of the virtual object to intersect with an object space of the virtual controller;

in response to the determination that the object space of the virtual object has intersected with the object space of the virtual controller, halt the animation of the virtual object moving from the first location to the second location;

receive, from the physical controller, an activation signal indicating that the user wishes to grasp the virtual object;

complete, based on receipt of the activation signal, the animation of the virtual object moving from first location to the second location; and

in response to the virtual object reaching the second location, present an animation of the user grasping the virtual object.

2. The apparatus of claim 1 , wherein the memory is further configured to cause the at least one processor to:

associate the virtual object with the virtual controller based on the intersection between the respective object spaces.

3. The apparatus of claim 2 , wherein the virtual object comprises a first graphical representation in the computer-generated environment before the association of the virtual object with the virtual controller, and the memory is further configured to cause the at least one processor to:

change the first graphical representation of the virtual object to a second graphical representation to provide visual feedback in the computer-generated environment indicating the association of the virtual object with the virtual controller.

4. The apparatus of claim 1 , wherein the vector comprises an orientation determined with respect to the virtual controller, and the memory is further configured to cause the at least one processor to:

determine a change in the orientation of the vector based on a movement of the physical controller; and

update the visual cue based on the determined change in the orientation of the vector.

5. The apparatus of claim 1 , wherein the memory is further configured to cause the at least one processor to:

determine an identifier associated with the virtual object; and

provide an updated graphical representation of the virtual object in the computer-generated environment using the identifier.

6. A method of object interaction in a computer-generated environment, comprising:

providing a virtual controller comprising a graphical representation of a physical controller associated with a user for interacting with a virtual object displayed at a first location in the computer-generated environment, wherein the virtual controller further comprises a set of coordinates;

displaying a visual cue in the computer-generated environment generated from a vector comprising an origin determined from the set of coordinates;

receiving a selection signal from the physical controller during a detected intersection between the vector and the virtual object;

updating the computer-generated environment with the virtual object displayed at a second location based on the receipt of the selection signal, wherein the second location is the origin;

providing an animation of the virtual object moving from the first location to the second location;

determining that the animation of the virtual object moving from the first location to the second location has caused an object space of the virtual object to intersect with an object space of the virtual controller;

in response to determining that the object space of the virtual object has intersected with the object space of the virtual controller, halting the animation of the virtual object moving from the first location to the second location;

receiving, from the physical controller, an activation signal indicating that the user wishers to grasp the virtual object;

completing, based on receipt of the activation signal, the animation of the virtual object moving from the first location to the second location; and

in response to the virtual object reaching the second location, presenting an animation of the user grasping the virtual object.

7. The method of claim 6 , further comprising:

associating the virtual object with the virtual controller.

8. The method of claim 7 , wherein the virtual object comprises a first graphical representation in the computer-generated environment before the association of the virtual object with the virtual controller, and the association of the virtual object with the virtual controller comprises:

changing the first graphical representation of the virtual object to a second graphical representation to provide visual feedback in the computer-generated environment indicating the association of the virtual object with the virtual controller.

9. The method of claim 6 , wherein the vector comprises an orientation determined with respect to the virtual controller, and wherein the display of the visual cue comprises:

determining a change in the orientation of the vector based on a movement of the physical controller; and

updating the visual cue based on the determined change in the orientation of the vector.

10. The method of claim 6 , wherein the highlighting of the virtual object comprises:

determining an identifier associated with the virtual object; and

providing an updated graphical representation of the virtual object in the computer-generated environment using the identifier.

11. A non-transitory computer-readable storage medium comprising code for:

providing a virtual controller comprising a graphical representation of a physical controller associated with a user for interacting with a virtual object displayed at a first location in a computer-generated environment, wherein the virtual controller further comprises a set of coordinates;

displaying a visual cue in the computer-generated environment generated from a vector comprising an origin determined from the set of coordinates;

receiving a selection signal from the physical controller during a detected intersection between the vector and the virtual object;

updating the computer-generated environment with the virtual object displayed at a second location based on the receipt of the selection signal, wherein the second location is the origin;

providing an animation of the virtual object moving from the first location to the second location;

determining that the animation of the virtual object moving from the first location to the second location has caused an object space of the virtual object to intersect with an object space of the virtual controller;

in response to determining that the object space of the virtual object has intersected with the object space of the virtual controller, halting the animation of the virtual object moving from the first location to the second location;

receiving, from the physical controller, an activation signal indicating that the user wishes to grasp the virtual object;

completing, based on receipt of the activation signal, the animation of the virtual object moving from the first location to the second location; and

in response to the virtual object reaching the second location, presenting an animation of the user grasping the virtual object.

12. The non-transitory computer-readable storage medium of claim 11 , further comprising code for:

associating the virtual object with the virtual controller.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the virtual object comprises a first graphical representation in the computer-generated environment before the association of the virtual object with the virtual controller, and the code for association of the virtual object with the virtual controller comprises code for:

changing the first graphical representation of the virtual object to a second graphical representation to provide visual feedback in the computer-generated environment indicating the association of the virtual object with the virtual controller.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the vector comprises an orientation determined with respect to the virtual controller, and wherein the code for the display of the visual cue comprises code for:

determining a change in the orientation of the vector based on a movement of the physical controller; and

updating the visual cue based on the determined change in the orientation of the vector.

15. The non-transitory computer-readable storage medium of claim 11 , wherein the code for highlighting of the virtual object comprises code for:

determining an identifier associated with the virtual object; and

providing an updated graphical representation of the virtual object in the computer-generated environment using the identifier.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2024
From: SPATIALAND
To: WALMART INC.
Reel/Frame 068619/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2024
From: WALMART INC.
To: WALMART APOLLO
Reel/Frame 068619/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: COOPER, KYLE W.; COOPER, KIMBERLY; ALAVI, AMIR; HOLMES, BRIAN C.
To: SPATIALAND INC.
Reel/Frame 045276/0141 →
Continuity (2)
Provisional Application 62462858 · Feb 23, 2017
Related Publication 20180239515A1 · Aug 23, 2018