Recognizers:
$1
•
$N
•
$P
•
$P+
•
$Q
•
Impact of $-family
Tools:
GECKo
•
GREAT
•
GHoST
•
AGATe
Gesture recognition can be difficult, arcane, and specialized.
But it doesn't have to be. Published in 2007, the $1 recognizer, and
the $-family recognizers that followed it, made gesture
recognition easy to add to any user interface.
The $-family recognizers, of which
$1,
$N,
$P, and
$Q
are canonical members, along with enhancements
Protractor and
$P+, have
had significant impact on the use of gestures in interactive prototypes.
The $1 paper, published at
ACM UIST 2007, is UIST's
4th most-cited paper of all time.
Google Scholar shows the $1 paper being
cited over 1100 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 algorithms
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 with awards, including:
- $1: Invited for a 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.
-
In 2016, $1 was used by digital artists Zach Liberman
and Matt Felsen in Land Lines,
a gesture-based means of exploring Google Earth satellite imagery.
Their blog describes Land Lines and the role of the $1 recognizer.
Their video shows it working on a smartphone.
The extended $-family
$1 and the other canonical $-family recognizers inspired other researchers to develop follow-ons that share
the $-family motivation. 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-2024 Jacob O. Wobbrock. All rights reserved.
Last updated July 14, 2024.