$N Multistroke Recognizer

Lisa Anthony, University of Maryland—Baltimore County
Jacob O. Wobbrock, University of Washington [contact]


$N Recognizer: JavaScript, C#
Pseudocode: $N, $N-Protractor
Multistroke gesture logs: xml


The $N Multistroke Recognizer is a 2-D stroke recognizer designed for rapid prototyping of gesture-based user interfaces. In machine learning terms, $N is an instance-based nearest-neighbor classifier with a Euclidean scoring function, i.e., a geometric template matcher. $N is built upon the $1 Unistroke Recognizer. $N automatically generalizes examples of multistrokes to encompass all possible stroke orders and directions. This means you can make and define multistrokes using any stroke order and direction you wish, provided you begin at either endpoint of each component stroke. A version of $N utilizing Protractor, optional here, improves $N's speed. The $P Point-Cloud Recognizer is the latest in the dollar family, performing unistroke and multistroke recognition without the combinatoric overhead of $N. Read about the limitations of $N, which $P largely avoids. The $N recognizer is distributed under the New BSD License agreement.


In the demo below, only one multistroke template is loaded for each of the 16 gesture types. You can add additional multistrokes as you wish, and even define your own custom multistrokes.

Use Golden Section Search (original)
Use Protractor (faster)
Use bounded rotation invariance (±45°)
Require same no. of component strokes

Make strokes on this canvas. Right-click the canvas to recognize. If a misrecognition occurs, add the mis- recognized gesture as an example of the intended gesture.

The <canvas> element is not supported by this browser.
Add as example of existing type:
Add as example of custom type:
Delete all user-defined gestures:  


Anthony, L. and Wobbrock, J.O. (2012). $N-Protractor: A fast and accurate multistroke recognizer. Proceedings of Graphics Interface (GI '12). Toronto, Ontario (May 28-30, 2012). Toronto, Ontario: Canadian Information Processing Society, pp. 117-120.

Anthony, L. and Wobbrock, J.O. (2010). A lightweight multistroke recognizer for user interface prototypes. Proceedings of Graphics Interface (GI '10). Ottawa, Ontario (May 31-June 2, 2010). Toronto, Ontario: Canadian Information Processing Society, pp. 245-252.

Li, Y. (2010). Protractor: A fast and accurate gesture recognizer. Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI '10). Atlanta, Georgia (April 10-15, 2010). New York: ACM Press, pp. 2169-2172.

Wobbrock, J.O., Wilson, A.D. and Li, Y. (2007). Gestures without libraries, toolkits or training: A $1 recognizer for user interface prototypes. Proceedings of the ACM Symposium on User Interface Software and Technology (UIST '07). Newport, Rhode Island (October 7-10, 2007). New York: ACM Press, pp. 159-168.

$N By Others

Copyright © 2010-2012 Jacob O. Wobbrock