Recognizers:
$1
•
$N
•
$P
•
$P+
•
$Q
•
Impact of $-family
Tools:
GECKo
•
GREAT
•
GHoST
•
AGATe
Impact of $-family
Gesture recognition was once difficult, arcane, and specialized.
Then in 2007 came the $1 recognizer and the $-family
that followed, making stroke gestures easy to add to any user interface.
The $-family recognizers, of which
$1,
$N,
$P, and
$Q
are canonical members, along with core enhancements
Protractor and
$P+, have
had significant impact on the use of gestures in interactive prototypes.
The $1 paper, published at
UIST 2007, is that conference's
4th most-cited paper.
Google Scholar shows the $1 paper being
cited over 1000 times.
Beyond citations, $1 has been implemented in hundreds of projects.
Its use has gone beyond its initial intent for stroke-gesture recognition to things like
hand-pose recognition.
The $1 paper and its siblings
led to numerous follow-ons by other researchers,
leading to the "extended $-family" of
technologies. All adopt the same philosophy espoused
in the original $1 paper: to take what
are typically complex, arcane technologies
understood only by specialists and make them easy to
convey, implement, and deploy on any platform for
non-specialists whose objective is quickly enhancing
interactivity. Accordingly, the $1 paper began a trend,
followed by other $-family publications, of putting their
entire pseudocode necessary for implementation directly in
their papers.
Some of the core $-family publications were recognized, including:
- $1: Invited for special reprise presentation at SIGGRAPH 2008
- $P: ICMI 2012 Outstanding Paper Award
- $P: ICMI 2022 Ten-Year Technical Impact Award
- $Q: MobileHCI 2018 Honorable Mention Paper
Beyond academic impact, $1 and the $-family have been rapidly absorbed into industry projects.
For example:
-
Within a year of $1's publication, Mr. Spiff's Revenge by POW Studios
won Best Windows Game in the
2008 Dr. Dobb's Challenge.
(Review: "...while our judges took a while to get comfortable with the controls, they particularly enjoyed the gestures
used to attack enemies and perform the huge, screen clearing 'smart bomb' attack!")
The game used $1 gestures for
creating shields (circles),
launching fireballs (arcs),
drinking potions (hearts), and
smashing all enemies ("pow").
-
In the same year,
$1 was reviewed by Make:,
a popular DIY website for hackers and hobbyists.
-
Microsoft used $N to recognize multistroke gestures on their
PocketTouch
device, which enabled gesture-sensing through a pants pocket for quick, ambient interactions.
-
German firm Prefrontal Cortex employed
$P for gesture control in
Ombre Fabula,
a gesture-controlled interactive shadow play. The prototype won 2nd place at the
2014 Intel RealSense App Challenge.
-
$1's direct successor, Protractor, sped up $1's iterative angular
alignment process using a closed-form calculation based on inverse cosine distance, and became the basis for Google's
android.gesture package.
The extended $-family
$1 and the other canonical $-family recognizers inspired other researchers to develop follow-ons that share
the $-family motivation. We and their authors consider the following to be the "extended family" of the
$-family recognizers. They are listed in chronological order:
Some examples of the $-family in industry prototypes and projects:
The $-family recognizers have been used in industry prototypes and projects:
Some examples of the $-family in others' published research projects:
Many published research projects have used the $-family recognizers, especially $1:
$-family implementations by others
Over the years, many developers have sent in their own implementations of our $-family recognizers in various programming languages.
We make no representations as to the correctness or completeness of these implementations, but offer them here "as is." (We also don't
check these links very often, so some may have gone stale.)
(Have one to add? Email
wobbrock@uw.edu.)
$1
-
github $-family repositories in many languages
-
MotionCAPTCHA jQuery plugin, by Joss Crowcroft
-
GLGestureRecognizer, an Objective-C version for iPhone, by Adam Preble
-
$1 for VVV, by motzi
-
Flash Actionscript version, by Christoph Ketzler
-
Processing version, by Darius Morawiec
-
Java SE/ME version, by Alex Olwal [YouTube]
-
MicroDollar: $1 in C++ w/optimizations for embedded hardware, by Alex Olwal
-
Java version, by Norman Papernick
-
C# version for Windows 7, by Kevin Marshall
-
Python version, by Charlie Von Metzradt
-
Python version, by Shaun K. Kane
-
Python version, by Mike O'Brien
-
C++ version, by Baylor Wetzel
-
C++ version, by Ishikawa
-
X3D version, by Michael Zöllner
-
JSXGraph demo, by Alfred Wassermann
$N
$P
-
C# version for Unity, by Da Viking Code
-
$P for VVVV, by ethermammoth
-
Python version, by Simon Waloschek
-
Objective-C version, by Felix Raab
-
Objective-C version for LeapMotion, by qorashi
-
Java version, by David White
-
Java version, by Michael D. Manson
-
Java version for Android, by Michael D. Manson
-
JavaScript version for npm, by Francois Laberge
-
Swift for iOS, by David Lee
-
Swift 3 version, by Eddy Southwood
-
VR for Godot (3-D), by SYBIOTE
$Q
Copyright © 2018-2022 Jacob O. Wobbrock. All rights reserved.
Last updated August 8, 2022.