TurboTouch predictor
Project description
TurboTouch predictor Python version
Provides a Python implementation for the TurboTouch predictor.
Install
pip install TurboTouchPredictor --upgrade
Minimal example
from TurboTouchPredictor import TurboTouchPredictor
ttpPredictor = TurboTouchPredictor();
// Amount of prediction in ms. Allowed values: 0, 16, 32, 48, 64
ttpPredictor.setAmountOfCompensation(32);
predictedPoint = ttpPredictor.predict(0, 0, 0, "Interacting") # x, y, t, state
Doc
TurboTouchPredictor package
- _class _TurboTouchPredictor.TurboTouchPredictor
-
Bases:
object
- Filter:
-
OneEuroVectorProcessor
- LatencyCompensated:
-
int
- Update1euroInternalFreq:
-
bool
- __init__() None
-
Initializes the TurboTouchPredictor
- predict(_x: float_, _y: float_, _timestamp: float_, _state: str_) tuple[float, float]
-
Predicts a point from the current lagging one
- Parameters:
-
-
x – x coordinate in pixels
-
y – y coordinate in pixels
-
timestamp – timestamp in nanoseconds
-
state – “Interacting” or “NotInteracting”
-
- Returns:
-
return the predicted point p, p[0]: x coordinate, p[1]: y coordinate
- Return type:
-
tuple[float, float]
- reset()
-
Resets the internal state of the processor
- setAmountOfCompensation(_comp: int_) None
-
Sets the parameters of the predictor for the given amount of compensation
- Parameters:
-
comp (int) – Compensation amount in ms. Allowed values: 0, 16, 32, 48, 64
- _class _OneEuroVectorProcessor.OneEuroVectorProcessor(_freq: float_, _mincutoff: float_, _beta: float_)>
-
Bases:
object
- NormFilter:
-
OneEuroFilter
- FilterX:
-
OneEuroFilter
- FilterY:
-
OneEuroFilter
- __init__(_freq: float, mincutoff: float, beta: float) None
-
Initializes the OneEuroVectorProcessor with three OneEuroFilter
- Parameters:
-
-
freq (float) – An estimate of the frequency in Hz of the signal (> 0).
-
mincutoff (float) – Min cutoff frequency in Hz (> 0).
-
beta (float) – Parameter to reduce latency (> 0).
-
- process(prediction: tuple[float, float, float], lag: tuple[float, float]) tuple[float, float]
-
- Parameters:
-
-
prediction (tuple[float, float, float]) – (x, y, t)
-
lag (tuple[float, float]) – (x, y)
-
- Returns:
-
the processed position
- Return type:
-
tuple[float, float]
- reset() None
-
Resets the internal state of the processor
- setParameters(freq: float, mincutoff: float, beta: float) None
-
- Parameters:
-
-
freq (float) – An estimate of the frequency in Hz of the signal (> 0).
-
mincutoff (float) – Min cutoff frequency in Hz (> 0).
-
beta (float) – Parameter to reduce latency (> 0).
-
Related publication
@inproceedings{10.1145/3242587.3242646,
author = {Nancel, Mathieu and Aranovskiy, Stanislav and Ushirobira, Rosane and Efimov, Denis and Poulmane, Sebastien and Roussel, Nicolas and Casiez, G\'{e}ry},
title = {Next-Point Prediction for Direct Touch Using Finite-Time Derivative Estimation},
year = {2018},
isbn = {9781450359481},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3242587.3242646},
doi = {10.1145/3242587.3242646},
abstract = {End-to-end latency in interactive systems is detrimental to performance and usability, and comes from a combination of hardware and software delays. While these delays are steadily addressed by hardware and software improvements, it is at a decelerating pace. In parallel, short-term input prediction has shown promising results in recent years, in both research and industry, as an addition to these efforts. We describe a new prediction algorithm for direct touch devices based on (i) a state-of-the-art finite-time derivative estimator, (ii) a smoothing mechanism based on input speed, and (iii) a post-filtering of the prediction in two steps. Using both a pre-existing dataset of touch input as benchmark, and subjective data from a new user study, we show that this new predictor outperforms the predictors currently available in the literature and industry, based on metrics that model user-defined negative side-effects caused by input prediction. In particular, we show that our predictor can predict up to 2 or 3 times further than existing techniques with minimal negative side-effects.},
booktitle = {Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology},
pages = {793–807},
numpages = {15},
keywords = {touch input, latency, lag, prediction technique},
location = {Berlin, Germany},
series = {UIST '18}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for TurboTouchPredictor-0.1.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b73f12c7b1f330a6b21017233f066e08421f23487ca3106a6a0a77340fc56a17 |
|
MD5 | 113b1cc967e85ab6893587d634034f5e |
|
BLAKE2b-256 | 01d0f5d2e6510fed6631b5f321c0cb7bf91f9faae59aa8ad7ab8fe73d058e35a |