Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seflless/outlines
Pointcloud Shape Recognizer
https://github.com/seflless/outlines
Last synced: 16 days ago
JSON representation
Pointcloud Shape Recognizer
- Host: GitHub
- URL: https://github.com/seflless/outlines
- Owner: seflless
- License: mit
- Created: 2015-05-18T19:16:08.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-24T02:27:16.000Z (over 7 years ago)
- Last Synced: 2024-04-16T04:51:09.916Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.04 MB
- Stars: 19
- Watchers: 5
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Overview
Recognize drawn shapes based on their point clouds.**Demos:**
- [Point Cloud](http://francoislaberge.com/outlines/point-cloud/)
- [Unistroke](http://francoislaberge.com/outlines/unistroke/)## Installation
npm install outlines
## Usage
```js
var outlines = require('outlines'),
recognizer = outlines.Recognizer(),
Point = outlines.Point,
gesture = [];// Create an array of the points making up a gesture you want to find
// a match for.
// new Point(x, y, strokeId)
// strokeId should be incremented for each new stroke. Ie. If a user lifts and
// touches/mouses down again each subsequent stream of points is a separate stroke
gesture.push(new Point(0, 0, 0))
gesture.push(new Point(10, 10, 0))
gesture.push(new Point(20, 20, 0));gesture.push(new Point(40, 40, 1));
gesture.push(new Point(50, 50, 1));
gesture.push(new Point(60, 60, 1));// Get a list in ranked (closest to furthest match)
// Note: For now there is a built in set of symbols. You could replace a recognizers
// set of symbols though, see the implementation to figure out how:
// https://github.com/francoislaberge/outlines/blob/master/src/outlines.js#L107-L152
var matches = recognizer.Rank(gesture);
console.log(matches);
```## Contributing
```
git clone [email protected]:francoislaberge/outlines.git
cd outlines
npm install
npm start
```## References
- Based on the **$P Point-Cloud Recognizer** research paper
- [$P project page](http://depts.washington.edu/aimgroup/proj/dollar/pdollar.html)
- [PDF of paper](http://faculty.washington.edu/wobbrock/pubs/icmi-12.pdf)
- [Pseudo Code](http://depts.washington.edu/aimgroup/proj/dollar/pdollar.pdf)## Coming Soon
Support for more recognizers will be added soonish. Here's a sneak peak:
- Work in progress: [Unistroke Recognizer](http://francoislaberge.com/outlines/unistroke/).
- Want to add the GRAIL system to this as well
- https://jackschaedler.github.io/handwriting-recognition/
- See [Video](https://www.youtube.com/watch?v=p2LZLYcu_JY&feature=youtu.be&t=24m30s) for motivation
- Talk to Ken Perlin and ask what he's using for Chalktalk
- Some notes related to the history of hand writing recognition
- http://www.osnews.com/story/26838/Palm_I_m_ready_to_wallow_now/page2/Experiments I'd like to make:
- Try reusing icon sets such as [FontAwesome](http://fontawesome.io/icons/), as starting points.
- Related: Allow SVG and fonts as potential sources?
- For SVG: Try: http://helpfulsheep.com/2015-03-25-converting-svg-fonts-to-svg/