IP Library Granted Patent US 10,459,519
Granted Patent B2
US 10,459,519 · App. 15/794,265 · Granted Oct 29, 2019

Function allocation for virtual controller

Inventors: Tony Kobayashi (Berkeley, CA); Paul Du Bois (Oakland, CA); Lauren Winston (Mountain View, CA)
Assignee: Google LLC
G06F3/011G06F3/016G06F3/017G06F3/0346G06F3/0487G06T19/00G06F3/012
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,459,519
App. No.
15/794,265
Granted
Oct 29, 2019
Kind
B2
Abstract

A method includes: associating, in a computer system, a virtual controller with a physical controller; allocating a first function to the virtual controller, the allocation providing for performance of the first function using the physical controller; detecting a gesture performed using the physical controller; and in response to detecting the gesture, de-allocating the first function from, or allocating a second function to, the virtual controller.

Claims (41)

1. A method comprising:

associating, in a computer system, a first virtual controller with a first physical controller;

allocating a first function to the first virtual controller, the allocation providing for performance of the first function using the first physical controller;

associating a second virtual controller in the computer system with a second physical controller;

allocating a second function to the second virtual controller;

detecting a gesture performed using the first physical controller; and

in response to detecting the gesture, de-allocating the first function from, or allocating the second function to, the first virtual controller.

2. The method of claim 1 , wherein in response to detecting the gesture, the first function is de-allocated from the first virtual controller, the first function is allocated to the second virtual controller, and the second function is de-allocated from the second virtual controller, and the second function is allocated to the first virtual controller.

3. The method of claim 2 , wherein the first function includes a brush function in a virtual painting program and the second function includes a palette function in the virtual painting program, and wherein detecting the gesture triggers a swapping of the brush function and the palette function in the virtual painting program.

4. The method of claim 1 , wherein the gesture is made using the first and second physical controllers.

5. The method of claim 4 , wherein the gesture involves the first and second physical controllers being brought towards each other and thereafter away from each other.

6. The method of claim 4 , wherein the gesture involves respective ends of the first and second physical controllers being brought toward each other, and the ends then brought apart from each other.

7. The method of claim 6 , wherein the respective ends of the first and second physical controllers are respective bottom ends of the first and second physical controllers.

8. The method of claim 1 , wherein the first and second physical controllers are identical to each other.

9. The method of claim 1 , further comprising storing, in response to detecting the gesture, the de-allocation of the first function from, or the allocation of the second function with, the first virtual controller, as a default in the computer system.

10. The method of claim 1 , wherein the first virtual controller is defined in a virtual space generated by the computer system, and wherein the first function is de-allocated from the first virtual controller in response to detecting the gesture, the method further comprising defining a point in the virtual space, and, in response to detecting the gesture, associating the first function with the point.

11. The method of claim 10 , wherein the second function had already been allocated to the first virtual controller before the gesture was detected.

12. The method of claim 10 , the method further comprising allocating the second function also to the first virtual controller.

13. The method of claim 12 , wherein the first function includes a palette function in a virtual painting program, wherein the second function includes a brush function in the virtual painting program, and wherein the allocation of the second function to the first virtual controller provides that the first and second physical controller can both be used to perform the brush function in the virtual painting program.

14. The method of claim 1 , wherein the gesture is detected using a sensor.

15. The method of claim 14 , wherein the sensor is located on the first physical controller.

16. The method of claim 14 , further comprising extrapolating velocity and position information about the first physical controller from sensor data generated by the sensor.

17. The method of claim 16 , further comprising extrapolating orientation data about the first physical controller from the sensor data.

18. The method of claim 1 , wherein the first virtual controller is a dominant controller, and wherein the second virtual controller is a non-dominant controller furnishing one or more tools to be used by the dominant controller.

19. A computer program product tangibly embodied in a non-transitory storage medium, the computer program product including instructions that when executed cause a processor to perform operations including:

associating, in a computer system, a first virtual controller with a first physical controller;

allocating a first function to the first virtual controller, the allocation providing for performance of the first function using the first physical controller;

associating a second virtual controller in the computer system with a second physical controller;

allocating a second function to the second virtual controller;

detecting a gesture performed using the first physical controller; and

in response to detecting the gesture, de-allocating the first function from, or allocating the second function to, the first virtual controller.

20. A system comprising:

a processor; and

a computer program product tangibly embodied in a non-transitory storage medium, the computer program product including instructions that when executed cause the processor to perform operations including:

associating, in a computer system, a first virtual controller with a first physical controller;

allocating a first function to the first virtual controller, the allocation providing for performance of the first function using the first physical controller;

associating a second virtual controller in the computer system with a second physical controller;

allocating a second function to the second virtual controller;

detecting a gesture performed using the first physical controller; and

in response to detecting the gesture, de-allocating the first function from, or allocating the second function to, the first virtual controller.

21. The system of claim 20 , wherein the first virtual controller is a dominant controller, and wherein the second virtual controller is a non-dominant controller furnishing one or more tools to be used by the dominant controller.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2017
From: KOBAYASHI, TONY; BOIS, PAUL DU; WINSTON, LAUREN
To: GOOGLE LLC
Reel/Frame 044186/0610 →
Continuity (2)
Provisional Application 62448172 · Jan 19, 2017
Related Publication 20180203502A1 · Jul 19, 2018
Cited By (1)
US 12,561,041