By default, the algorithm searches for lower case letters. Click a button above to switch or follow the steps below to train a different set of characters. The generated files implement the search with roughly 50 KB (minified and zipped) of JavaScript/wasm including the training data. Learn (a bit) more about the process from this blog post.

Train Your Character Set.

Data to Update (optional):
More Info Train a set of paths. Start with one of the default sets: "upperDefault" for upper case letters, "lowerDefault" for lower case letters, or "digitsDefault" for the digits 0-9. Leave blank to start with an empty set or enter the name of one of your previously saved sets. Enter multiple values separated by commas to combine multiple sets into one.

Set the Number of Points Per Character.

Convert to Point Array:
More Info The paths drawn in the previous step must be converted to an array of points. Enter the name (or names separated by commas) of the path sets to use. If you haven't trained anything yet, use the default sets: "upperDefault" for upper case letters, "lowerDefault" for lower case letters, or "digitsDefault" for the digits 0-9. On the next page you will be able to set the number of points to use for each shape.

Change the Active Character Set.

More Info Choose one of the objects generated in the previous step to use for identifying. If you selected the "set as active" checkbox when generating the point arrays, this step is not necessary unless you wish to change to a different set. If you have not completed any of the previous steps you can use the defaults: "upperDefault" for upper case letters, "lowerDefault" for lower case letters, or "digitsDefault" for the digits 0-9.

Set the Dictionary for Word Identification, if desired.

Name of List:
Word List:
Set as Active:
Click this link to test word identification
Or click this link to identify MLB all-stars.
More Info Copy/paste or enter a list of words. Use an array like ['yes','no','maybe'] or use a comma separated list with or without parentheses like 'yes', 'no', 'maybe' or yes, no, maybe.
Choose the name of your word list and enter it into the name box. If you wish to make this list of words the active list, then leave the "Set as Active" box checked. When you have set your list (or if you wish to use the default list of 10000 common words) click the link to test the word identification algorithm.
Download generated JS/wasm files to use elsewhere.
More Info This library is not ready for production, but you can download the necessary files to test on your custom HTML/JS. A readme file is included with a bit more information on how to use.

Upload/download paths and points to/from a different device/browser.
Paths to upload:
Points to upload:
Words to upload:
Click here to download previously saved data
More Info If you want to use a separate device like a tablet to do some training, then temporarily upload it to the server. Once it is a uploaded a 4 character code will be generated and displayed above. Remember this code and then visit the link ( on a different device within an hour. Enter the code with your pen/finger/mouse to download your saved data.

Paths to delete:
Points to delete:
Words to delete: