diff --git a/README.md b/README.md index 2f56781..21ee5d2 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,12 @@ ofxGVF === -Gesture Variation Follower: c++ library and implementation in various creative programming environments +Gesture Variation Follower: c++ library and implementation in various creative programming environments. GVF allows for realtime gesture recognition and variation tracking. +
+ +GVF started as a research project on designing novel methods for expressive interaction with digital media through physical gestures. As such the code remains free and open-source (see licence below), so if you use it in other research projects please cite our work: +* B Caramiaux, N Montecchio, A Tanaka, F Bevilacqua. Adaptive Gesture Recognition with Variation Estimation for Interactive Systems. *ACM Transactions on Interactive Intelligent Systems (TiiS)*, 4(4), 18-51. December 2014 + Using GVFlib --- @@ -10,21 +15,25 @@ Start by constructing a GVF object: ``` GVF *gvf = new GVF(); ``` +
+**Recording** To record gesture templates, switch to the learning mode: ``` setState(GVF::STATE_LEARNING); ``` -Start a new gesture +Then for each gesture to record, start a new gesture ``` startGesture(); ``` -And feed the observations to the current gesture: +And feed each gesture point (vector of float values): ``` -addObservation(observation); +addObservation(point); ``` +
+**Following** Once the gestures recorded, switch to the following mode: ``` @@ -38,7 +47,9 @@ And perform the recognition + tracking for each observation of the gesture: ``` update(observation); ``` +
+**Results** To obtain GVF's outputs, declare a variable of type `GVFOutcomes`: ``` @@ -50,26 +61,52 @@ update(observation); ``` -Using GVFlib implemented in creative programming environments + +Documentation/API --- Soon - -Documentation/API +Examples in creative programming environments --- -Soon +**MaxMSP** + +A compiled version of GVF for MacOSX (>10.8) can be found in `max-patches/` together with the help patch. +
+ +If needed, to compile the object first clone the MaxSDK by using the provided script: +``` +./getMaxSDK.sh +``` +Then open the Xcode project from `xcode/` and build the object. + +**openFrameworks** + +We provide an openFrameworks add-on `ofxGVF`. To use it in your openFrameworks project, copy the `ofxGVF` folder to the openFrameworks `add-on` folder. We provide an example of application using GVF to recognise and track 2D gestures. + +**PureData** + +A compiled version of GVF for MacOSX (>10.8) can be found in `Build/Darwin/`. The help patch is in the `PureData` folder. +
+ +To compile the GVF PureData object, open a terminal and do: +``` +cd PureData/ +make +``` + +Note that you need PureData installed on your computer. Credits --- -The library itself has been designed and developed in 2011 at Ircam Centre Pompidou Paris (STMS lab Ircam-CNRS-UPMC) by Baptiste Caramiaux and Nicola Montecchio (University of Padova), in the Real-Time Musical Interaction team led by Frédéric Bevilacqua. +The algorithm has been designed and prototyped in 2011 at Ircam Centre Pompidou Paris (STMS lab Ircam-CNRS-UPMC) by Baptiste Caramiaux and Nicola Montecchio (University of Padova), in the Real-Time Musical Interaction team led by Frédéric Bevilacqua. It has been extended at Goldsmiths College, University of London, by Baptiste Caramiaux. -The openFrameworks add-on has been greatly done by Matthew Gingold (https://github.com/gameoverhack) +The openFrameworks add-on has been greatly done by Matthew Gingold (https://github.com/gameoverhack)