@dvgs/vgesture
v1.2.5
Published
Typescript library which gives ability to interact with DOM elements with hand gestures via webcam.
Downloads
60
Maintainers
Readme
V-Gesture
Typescript library which gives ability to interact with DOM elements with hand gestures via webcam.
Note: This project isn't well tested for production, and requires major browser versions to run. So I highly recommend not to use it on production.
https://github.com/dovigod/V-Gesture/assets/30416914/05e9e1f6-ccc5-47f5-9fab-afaab3bb775d
Installation
npm install @dvgs/vgesture
Usage
Create "gesturable element"
Most of Elements with vgestureable
attribute will be assumed as "gesturable"
exceptions: here
// index.html
...
<div vgesturable onclick="..."> This is gesture interactable element</div>
<div vgesturable onclick="..."> This is gesture interactable element</div>
...
Initialize VGesture
import { VGesture } from '@dvgs/vgesture
const vGesture = new VGesture()
await vGesture.initialize()
Register Gesture
import { ClickGesturePlugin } from '@dvgs/vgesture/plugins
vGesture.register(new ClickGesturePlugin())
Run
vGesture.startDetection()
Documentation
Documentation created by Typedocs
Creating gesture
VGesture provides plugin and gesture interface to easily create and use gesture defined by yourself.
see an example
Requestable Operations / variables
Note) When requesting function operation, parameters should be ordered alphabetical.
const type = 'function' ? 'func' : 'variable' : 'var' : '';
let schema = `${type}::${name}`
//ex) requesting variable
"var::indexTip"
//ex) requesting function
// wrong :: "func::get2FingerDistance-indexTip-indexDip"
// correct :: "func::get2FingerDistance-indexDip-indexTip"
| Name | Type | Description | | :----------------- | :------: | :------------------------------------------------- | | get2FingerDistance | function | get distance between provided finger tip parameter | | indexTip | variable | index tip coordinate [index: 9] | | thumbTip | variable | thumb tip coordinate [index: 4] | | pinkyTip | variable | pinky tip coordinate [index: 20] | | ringTip | variable | ring tip coordinate [index: 16] | | middleTip | variable | middle tip coordinate [index: 12] | | thumbIp | variable | thumbIp coordinate [index: 3] | | thumbMcp | variable | thumbMcp coordinate [index: 2] | | thumbCmc | variable | thumbCmc coordinate [index: 1] | | indexMcp | variable | indexMcp coordinate [index: 5] | | indexPip | variable | indexPip coordinate [index: 6] | | indexDip | variable | indexDip coordinate [index: 7] | | middleMcp | variable | middleMcp coordinate [index: 9] | | middlePip | variable | middlePip coordinate [index: 10] | | middleDip | variable | middleDip coordinate [index: 11] | | ringMcp | variable | ringMcp coordinate [index: 13] | | ringPip | variable | ringPip coordinate [index: 14] | | ringDip | variable | ringDip coordinate [index: 15] | | pinkyMcp | variable | pinkyMcp coordinate [index: 17] | | pinkyPip | variable | pinkyPip coordinate [index: 18] | | pinkyDip | variable | pinkyDip coordinate [index: 19] |