IP Library Granted Patent US 10,042,430
Granted Patent B2
US 10,042,430 · App. 15/358,104 · Granted Aug 7, 2018

Free-space user interface and control using virtual constructs

Inventors: Raffi Bedikian (San Francisco, CA); Jonathan Marsden (San Mateo, CA); Keith Mertens (Oakland, CA); David Holz (San Francisco, CA)
Assignee: Leap Motion, Inc.
G06F3/017G06F3/011G06F3/0304G06F3/04845G06K9/00335
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,042,430
App. No.
15/358,104
Granted
Aug 7, 2018
Kind
B2
Abstract

During control of a user interface via free-space motions of a hand or other suitable control object, switching between control modes can be facilitated by tracking the control object's movements relative to, and its penetration of, a virtual control construct (such as a virtual surface construct). The position of the virtual control construct can be updated, continuously or from time to time, based on the control object's location.

Claims (56)

1. A computer-implemented method for controlling a user interface via free-space motions of a control object, the method comprising:

receiving motion information indicating positions of a control object being tracked in a region of free space; and

using a processor:

(i) defining a plurality of virtual control constructs, including at least a first virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding first portion of the control object; whereby the first virtual control construct is positioned proximate to the first portion of the control object, and a second virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding second portion of the control object; whereby the second virtual control construct is positioned proximate to the second portion of the control object;

(ii) determining an input gesture made by the control object based on a first portion state determined for the first portion of the control object and including any change in spatial position of the first portion of the control object relative to the first virtual control construct and a second portion state determined for the second portion of the control object and including any change in spatial position of the second portion of the control object relative to the second virtual control construct; and

(iii) switching from conducting control of a user interface in a first mode to conducting control of the user interface in a second mode based at least in part upon interpreting the input gesture determined from the first portion state and the second portion state.

2. The computer-implemented method of claim 1 , wherein: the control object includes a hand, the first portion includes a finger and the second portion includes a thumb, and wherein the determining an input gesture includes:

determining that the first portion state and the second portion state indicate that the finger and the thumb changed distance from their corresponding user-specific virtual planes; thereby reducing a distance between the finger and the thumb; and

determining from the first portion state and the second portion state that the input gesture comprises a pinching gesture of the thumb and finger.

3. The computer-implemented method of claim 2 , wherein the switching further comprises:

interpreting the pinching gesture to be a command indicating a zooming out of displayed content; and

conducting control of the user interface zooming out of displayed content.

4. The computer-implemented method of claim 2 , further comprising:

determining that at least one of the finger and the thumb penetrated a corresponding virtual control construct; and

determining from the first portion state and the second portion state that the input gesture comprises a maximal pinching gesture of the thumb and finger.

5. The computer-implemented method of claim 3 , wherein the switching further comprises:

interpreting the maximal pinching gesture to be a command indicating a maximum zooming out of displayed content; and

conducting control of the user interface to perform continued zooming out of displayed content.

6. The computer-implemented method of claim 1 , wherein: the control object includes a hand, the first portion includes a finger and the second portion includes a thumb, and wherein the determining an input gesture includes:

determining that the first portion state and the second portion state indicate that the finger and the thumb changed distance from their corresponding user-specific virtual planes; thereby increasing a distance between the finger and the thumb; and

determining from the first portion state and the second portion state that the input gesture comprises a spreading gesture of the thumb and finger.

7. The computer-implemented method of claim 6 , wherein the switching further comprises:

interpreting the spreading gesture to be a command indicating a zooming in of displayed content; and

conducting control of the user interface to zooming in of displayed content.

8. The computer-implemented method of claim 6 , further comprising:

determining that at least one of the finger and the thumb are dis-engaged from a corresponding virtual control construct; and

determining from the first portion state and the second portion state that the input gesture comprises a maximal spreading gesture of the thumb and finger.

9. The computer-implemented method of claim 8 , wherein the switching further comprises:

interpreting the maximal spreading gesture to be a command indicating a maximum zooming in of displayed content; and

conducting control of the user interface to continued zooming in of displayed content.

10. The computer-implemented method of claim 1 , further comprising:

updating a spatial position of at least one virtual control construct based at least in part on the motion information of a corresponding portion of the control object such that the virtual control construct is enabled to follow the corresponding portion of the control object.

11. The computer-implemented method of claim 10 , wherein the virtual control construct computationally follows tracked motions of the control object portion with a time lag.

12. The computer-implemented method of claim 11 , wherein the time lag is fixed.

13. The computer-implemented method of claim 12 , wherein the time lag is computed by the processor and depends on a motion parameter of the control object portion.

14. The computer-implemented method of claim 10 , wherein the spatial position of the virtual control construct is updated by the processor based on a current distance between the control object portion and the virtual control construct.

15. The computer-implemented method of claim 14 , wherein the spatial position of the virtual control construct is updated in accordance with a virtual energy potential defined as a function of a distance between the control object portion and the virtual control construct.

16. The computer-implemented method of claim 15 , wherein the virtual energy potential comprises minima at steady-state distances between the control object portion and a corresponding virtual control construct at a time when the control object portion is engaged with the virtual control construct and a time when the control object portion is disengaged from the virtual control construct.

17. The computer-implemented method of claim 1 , further comprising computationally tracking the motions of the control object portions based on a temporal sequence of images of the control object.

18. The computer-implemented method of claim 17 , further comprising acquiring the sequence of images with a camera system having depth-sensing capability.

19. The method of claim 1 , wherein the first mode is an engaged mode and the second mode is a disengaged mode.

20. The method of claim 1 , further comprising computationally determining, during a transition from a disengaged mode to an engaged mode, a degree of penetration of the virtual control construct by the control object, and controlling the user interface based at least in part thereon.

21. The method of claim 1 , wherein conducting control of the user interface comprises updating screen content based, at least in part, on the mode and tracked motions of the control object.

22. The method of claim 1 , wherein conducting control of the user interface comprises operating a cursor associated with a position on a screen based, at least in part, on the mode and tracked motions of the control object.

23. The method of claim 22 , wherein operating the cursor comprises displaying a cursor symbol on the screen at the associated position.

24. The method of claim 23 , wherein the cursor symbol is indicative of a distance between the control object portion and a corresponding virtual control construct.

25. A system including one or more processors coupled to memory, the memory loaded with computer instructions to control a user interface via free-space motions of a control object, the instructions, when executed on the processors, implement actions comprising:

receiving motion information indicating positions of a control object being tracked in a region of free space;

defining a plurality of virtual control constructs, including at least a first virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding first portion of the control object; whereby the first virtual control construct is positioned proximate to the first portion of the control object, and a second virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding second portion of the control object; whereby the second virtual control construct is positioned proximate to the second portion of the control object;

determining an input gesture made by the control object based on a first portion state determined for the first portion of the control object and including any change in spatial position of the first portion of the control object relative to the first virtual control construct and a second portion state determined for the second portion of the control object and including any change in spatial position of the second portion of the control object relative to the second virtual control construct; and

switching from conducting control of a user interface in a first mode to conducting control of the user interface in a second mode based at least in part upon interpreting the input gesture determined from the first portion state and the second portion state.

26. A non-transitory computer readable storage medium impressed with computer program instructions to control a user interface via free-space motions of a control object, the instructions, when executed on a processor, implement a method comprising:

receiving motion information indicating positions of a control object being tracked in a region of free space;

defining a plurality of virtual control constructs, including at least a first virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding first portion of the control object; whereby the first virtual control construct is positioned proximate to the first portion of the control object, and a second virtual control construct defined at a spatial position determined based at least in part on the motion information for a corresponding second portion of the control object; whereby the second virtual control construct is positioned proximate to the second portion of the control object;

determining an input gesture made by the control object based on a first portion state determined for the first portion of the control object and including any change in spatial position of the first portion of the control object relative to the first virtual control construct and a second portion state determined for the second portion of the control object and including any change in spatial position of the second portion of the control object relative to the second virtual control construct; and

switching from conducting control of a user interface in a first mode to conducting control of the user interface in a second mode based at least in part upon interpreting the input gesture determined from the first portion state and the second portion state.

Assignments (12)
SECURITY INTEREST Recorded Apr 6, 2026
From: SIM IP HXR LLC
To: UNITY MASTER LLC SERIES XIX
Reel/Frame 075365/0907 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2026
From: ULTRAHAPTICS IP TWO LIMITED
To: SIM IP HXR LLC
Reel/Frame 075127/0793 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2026
From: ULTRAHAPTICS LIMITED; ULTRAHAPTICS IP LIMITED; ULTRAHAPTICS IP TWO LIMITED; ULTRALEAP LIMITED
To: SIM IP HXR LLC
Reel/Frame 074403/0864 →
SECURITY INTEREST Recorded Jun 10, 2020
From: LMI LIQUIDATING CO., LLC
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 052902/0571 →
SECURITY INTEREST Recorded Jun 5, 2020
From: ULTRAHAPTICS IP TWO LIMITED
To: LMI LIQUIDATING CO., LLC
Reel/Frame 052848/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: LEAP MOTION, INC.
To: LMI LIQUIDATING CO., LLC.
Reel/Frame 052914/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2020
From: LMI LIQUIDATING CO., LLC.
To: ULTRAHAPTICS IP TWO LIMITED
Reel/Frame 051580/0165 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2019
From: HAYNES BEFFEL WOLFELD LLP
To: LEAP MOTION, INC.
Reel/Frame 049926/0631 →
RELEASE OF SECURITY INTEREST Recorded May 31, 2019
From: TRIPLEPOINT CAPITAL LLC
To: LEAP MOTION, INC.
Reel/Frame 049337/0130 →
SECURITY INTEREST Recorded Apr 11, 2019
From: LEAP MOTION, INC.
To: HAYNES BEFFEL WOLFELD LLP
Reel/Frame 048919/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2018
From: BEDIKIAN, RAFFI; MARSDEN, JONATHAN; MERTENS, KEITH; HOLZ, DAVID
To: LEAP MOTION, INC.
Reel/Frame 045466/0284 →
SECURITY INTEREST Recorded Dec 22, 2017
From: LEAP MOTION, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 044469/0592 →
Continuity (15)
Continuation 14154730 · Jan 14, 2014
Provisional Application 61752733 · Jan 15, 2013
Provisional Application 61752731 · Jan 15, 2013
Provisional Application 61752725 · Jan 15, 2013
Provisional Application 61791204 · Mar 15, 2013
Provisional Application 61808959 · Apr 5, 2013
Provisional Application 61808984 · Apr 5, 2013
Provisional Application 61816487 · Apr 26, 2013
Provisional Application 61824691 · May 17, 2013
Provisional Application 61825515 · May 20, 2013
Provisional Application 61825480 · May 20, 2013
Provisional Application 61872538 · Aug 30, 2013
Provisional Application 61873351 · Sep 3, 2013
Provisional Application 61877641 · Sep 13, 2013
Related Publication 20170075428A1 · Mar 16, 2017
Cited By (14)
US 50,598 US 12,204,695 US 12,260,023 US 12,306,301 US 12,333,081 US 12,387,449 US 12,400,414 US 12,405,673 US 12,572,213 US 12,619,316 US 12,650,734 US 12,693,717 US 12,693,743 US 12,704,936