IP Library Granted Patent US 12,455,677
Granted Patent B2
US 12,455,677 · App. 17/469,109 · Granted Oct 28, 2025

Hybrid systems and methods for low-latency user input processing and feedback

Inventors: Daniel Wigdor (Toronto, CA); Steven Leonard Sanders (New York, NY); Ricardo Jorge Jota Costa (Toronto, CA); Clifton Forlines (Cape Elizabeth, ME)
Assignee: Tactual Labs IP LLC
G06F3/0484G06F3/0488G06F3/14G06F9/451G06T1/20G06F3/03545G06F3/04817G06F3/04847
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 12,455,677
App. No.
17/469,109
Granted
Oct 28, 2025
Kind
B2
Abstract

A system for processing user input includes an input device, an input processing unit, a high-latency subsystem, a low-latency subsystem, input processing unit software for generating signals in response to user inputs, and an output device. The low-latency subsystem processes signals corresponding to at least some events and generates corresponding programmable low-latency output, the programmable output being based, at least in part, on state information being maintained by the high-latency subsystem. The high-latency subsystem processes signals corresponding to at least some events, and generates corresponding output, the output of the high-latency subsystem being higher latency than the output of the low-latency subsystem with respect to a given event.

Claims (37)

1. A method for processing user input, comprising:

maintaining state information relating to an existing state of at least one of a low-latency subsystem and a high-latency subsystem, wherein the state information is maintained with at least one of the high-latency subsystem and the low-latency subsystem and the low-latency subsystem operates independently of the high-latency subsystem;

receiving signals via a user input;

obtaining the state information relating to the existing state of at least one of the low-latency subsystem and the high-latency subsystem, wherein the state information is directly obtained from the low-latency subsystem or the high-latency subsystem using at least one of the low-latency subsystem and the high-latency subsystem;

generating at least one low-latency output based at least in part on the state information relating to the existing state of at least one of the low-latency subsystem and the high-latency subsystem and at least some of the signals, the low-latency output being output with low latency relative to the high-latency subsystem;

generating at least one high-latency output using at least some of the signals, wherein the high-latency output is generated by the high-latency subsystem; and

wherein the low-latency subsystem processes at least some of the signals independently of the high-latency subsystem and synchronizes with the high-latency subsystem.

2. The method of claim 1 , further comprising decimating signals received via the user input.

3. The method of claim 2 , wherein the decimation of signals received comprises windowed averaging of the signals received.

4. The method of claim 2 , wherein the decimation of signals received involves weighted averaging of the signals received.

5. The method of claim 1 , wherein the low-latency subsystem comprises graphical user interface element logic.

6. The method of claim 1 , further comprising pre-rendering graphics using the high-latency subsystem.

7. The method of claim 1 , further comprising reducing processing load of the high-latency subsystem by off-loading processing tasks to the low-latency subsystem.

8. A method for processing input, comprising:

receiving signals;

exchanging state information of at least one of the low-latency subsystem and the high-latency subsystem directly between a low-latency subsystem and a high-latency subsystem, wherein the low-latency subsystem responds to received signals faster than the high-latency subsystem, wherein the low-latency subsystem operates independently of the high-latency subsystem;

generating at least one low-latency output based at least in part on at least some of the received signals, the low-latency output being output with low latency relative to the high-latency subsystem;

generating at least one high-latency output using at least some of the received signals, wherein the high-latency output is generated by the high-latency subsystem; and

wherein the low-latency subsystem processes at least some of the signals independently of the high-latency subsystem and synchronizes low-latency output with the high-latency subsystem.

9. The method of claim 8 , further comprising decimating signals received via the input.

10. The method of claim 9 , wherein the decimation of signals received comprises windowed averaging of the signals received.

11. The method of claim 9 , wherein the decimation of signals received involves weighted averaging of the signals received.

12. The method of claim 8 , wherein the low-latency subsystem comprises graphical user interface element logic.

13. The method of claim 8 , further comprising pre-rendering graphics using the high-latency subsystem.

14. The method of claim 8 , further comprising reducing processing load of the high-latency subsystem by off-loading processing tasks to the low-latency subsystem.

15. A method for processing input, comprising:

detecting inputs;

outputting a stream of input events corresponding to detected input;

receiving at least one event from the stream of user input events corresponding to the detected user input at a high-latency subsystem, wherein the high-latency subsystem maintains state information of at least one of a low-latency subsystem and the high-latency subsystem, wherein the low-latency subsystem operates independently of the high-latency subsystem;

generating an output with the high-latency subsystem; and

receiving at least a portion of the stream of input events corresponding to the detected input; and

generating an output with the low-latency subsystem, wherein the generated output of the low-latency subsystem is lower latency than the output of the high-latency subsystem, wherein the output of the low-latency subsystem is based, at least in part, on the state information directly exchanged and processed while the low-latency subsystem is synchronized with the high-latency subsystem.

16. The method of claim 15 , further comprising decimating the stream of input events.

17. The method of claim 16 , wherein the decimation of the stream of input events comprises windowed averaging of the stream of input events.

18. The method of claim 16 , wherein the decimation of the stream of input events involves weighted averaging of the stream of input events.

19. The method of claim 15 , wherein the low-latency subsystem comprises graphical user interface element logic.

20. The method of claim 15 , further comprising pre-rendering graphics using the high-latency subsystem.

Assignments (6)
PATENT SECURITY AGREEMENT Recorded Sep 29, 2025
From: TACTUAL LABS IP LLC
To: WYE IP CAPITAL LLC
Reel/Frame 072979/0615 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2025
From: TACTUAL LABS CO.
To: TACTUAL LABS IP LLC
Reel/Frame 072301/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2025
From: TACTUAL LABS CO.
To: TACTUAL LABS IP LLC
Reel/Frame 071825/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2024
From: WIGDOR, DANIEL; SANDERS, STEVEN LEONARD; JOTA COSTA, RICARDO JORGE; FORLINES, CLIFTON
To: TACTUAL LABS CO.
Reel/Frame 069393/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2024
From: JOTA COSTA, RICARDO JORGE; WIGDOR, DANIEL
To: THE GOVERNING COUNCIL OF THE UNIVERSITY OF TORONTO
Reel/Frame 069387/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2024
From: THE GOVERNING COUNCIL OF THE UNIVERSITY OF TORONTO
To: TACTUAL LABS CO.
Reel/Frame 069387/0900 →
Continuity (5)
Continuation 16290119 · Mar 1, 2019
Continuation 15360039 · Nov 23, 2016
Division 14046819 · Oct 4, 2013
Provisional Application 61710256 · Oct 5, 2012
Related Publication 20220253185A1 · Aug 11, 2022
References Cited (9)
US 4860240A · Hartley · 1989 [cited by examiner]
US 6292857B1 · Sidoroff · 2001 [cited by examiner]
US 6538667B1 · Duursma · 2003 [cited by examiner]
US 9927959B2 · Wigdor · 2018 [cited by examiner]
US 20050134307A1 · Stojanovic · 2005 [cited by examiner]
US 20110093628A1 · Bulgin · 2011 [cited by examiner]
US 20120140797A1 · Malkin · 2012 [cited by examiner]
US 20120216134A1 · Neubacher · 2012 [cited by examiner]
US 20130127757A1 · Mann · 2013 [cited by examiner]