{"id":21569639,"url":"https://github.com/thedevstone/Jestures","last_synced_at":"2025-07-16T18:31:45.643Z","repository":{"id":57719831,"uuid":"141270248","full_name":"thedevstone/Jestures","owner":"thedevstone","description":"A simple framework for gesture recognition in Java","archived":false,"fork":false,"pushed_at":"2019-10-02T23:13:48.000Z","size":55586,"stargazers_count":33,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-24T11:09:53.833Z","etag":null,"topics":["bintray","demo","dtw","dynamic-time-warping","eclipse","eclipse-plugin","findbugs","gesture-recognition","ivy","java","java-8","javadoc","kinect","kinect-sensor","kinect-v2","kinect2","knn-algorithm","knn-classification","microsoft","pmd"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thedevstone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-17T09:59:07.000Z","updated_at":"2024-10-14T16:35:41.000Z","dependencies_parsed_at":"2022-09-13T13:02:01.598Z","dependency_job_id":null,"html_url":"https://github.com/thedevstone/Jestures","commit_stats":null,"previous_names":["thedevstone/jestures","giulianini/jestures"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thedevstone%2FJestures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thedevstone%2FJestures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thedevstone%2FJestures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thedevstone%2FJestures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thedevstone","download_url":"https://codeload.github.com/thedevstone/Jestures/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226154459,"owners_count":17581943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bintray","demo","dtw","dynamic-time-warping","eclipse","eclipse-plugin","findbugs","gesture-recognition","ivy","java","java-8","javadoc","kinect","kinect-sensor","kinect-v2","kinect2","knn-algorithm","knn-classification","microsoft","pmd"],"created_at":"2024-11-24T11:10:06.350Z","updated_at":"2024-11-24T11:10:07.362Z","avatar_url":"https://github.com/thedevstone.png","language":"Java","funding_links":["https://paypal.me/LucaGiulianini?locale.x=it_IT"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/Giulianini/Jestures.svg?branch=master)](https://travis-ci.org/Giulianini/Jestures)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/acaa3eb255b84676acc52402a39e7e07)](https://www.codacy.com/app/Giulianini/Jestures?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=Giulianini/Jestures\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/acaa3eb255b84676acc52402a39e7e07)](https://www.codacy.com/app/Giulianini/Jestures?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=Giulianini/Jestures\u0026utm_campaign=Badge_Coverage)\n[![PyPI - License](https://img.shields.io/github/license/Giulianini/Jestures.svg)](https://github.com/Giulianini/Jestures/blob/master/LICENSE.txt)\n[![Download](https://api.bintray.com/packages/giulianini/maven/Jestures/images/download.svg?version=0.0.2) ](https://bintray.com/giulianini/maven/Jestures/0.0.2/link)\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.giulianini.jestures/jestures.svg)](https://search.maven.org/search?q=g:com.github.giulianini.jestures)\n[![Javadocs](https://www.javadoc.io/badge/com.github.giulianini.jestures/jestures.svg)](https://www.javadoc.io/doc/com.github.giulianini.jestures/jestures)\n![GitHub issues](https://img.shields.io/github/issues/Giulianini/Jestures.svg)\n![GitHub last commit](https://img.shields.io/github/last-commit/Giulianini/Jestures.svg)\n![Maintenance](https://img.shields.io/maintenance/yes/2019.svg)\n![GitHub repo size in bytes](https://img.shields.io/github/repo-size/Giulianini/Jestures.svg)\n![GitHub contributors](https://img.shields.io/github/contributors/Giulianini/Jestures.svg)\n\n---\n\n# Jestures\n\n## A simple framework for gesture recognition in Java\n\n\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"/pic/Jestures.png\"\u003e\n\u003c/h1\u003e\n\n## Donate\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/LucaGiulianini?locale.x=it_IT)\n\n## Download\n*   Released builds are available from - [Bintray](https://bintray.com/giulianini/maven/Jestures/_latestVersion)\n*   Released builds are available from - [Maven Central](https://search.maven.org/search?q=g:com.github.giulianini.jestures)\n*   Snapshot builds are available from - [Artifactory](http://oss.jfrog.org/oss-snapshot-local/com/github/giulianini/jestures/)\n\n## Javadocs \nIf you need to access the documentation for any stable version, [javadoc.io](https://www.javadoc.io/doc/com.github.giulianini.track4j/track4j/) is probably the right place to search in.\n\n## Build\nTo build Jestures, execute the following command:\n\n    gradlew build\n\n**NOTE** : Jestures uses JavaFx so it may not work on older version of Java.\n\n## Demo\nRun the demo with:\n    \n    cd Jestures_Recorder\n    gradlew run\n\n## Gesture Recorder Tool\nRun the demo with:\n\n    cd Jestures_Demo\n    gradlew run\n\n## Adding Jestures to your build\n### Gradle\n\n#### How to Include In Gradle Project\n```gradle\nrepositories {\n    mavenCentral()\n    jCenter()\n}\n```\nReference the repository from this location using:\n```gradle\ndependencies {\n    compile 'com.github.giulianini.jestures:jestures:1.0.0'\n}\n```\n\n### Maven\n\n#### How to Include In Maven Project\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.giulianini.jestures\u003c/groupId\u003e\n    \u003cartifactId\u003ejestures\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n    \u003ctype\u003epom\u003c/type\u003e\n\u003c/dependency\u003e\n```\n\n### Ivy\n\n#### How to Include In Ivy Project\n```xml\n\u003cdependency org='com.github.giulianini.jestures' name='jestures' rev='1.0.0'\u003e\n    \u003cartifact name='jestures' ext='pom' \u003e\u003c/artifact\u003e\n\u003c/dependency\u003e\n```\n\n## How can I use Jestures\n\n### Set Up The Framework\n1.   Install the [__Kinect SDK__ ](https://www.microsoft.com/en-us/download/confirmation.aspx?id=40278)\n2. \t Download natives - [Natives dll for Kinect](https://drive.google.com/open?id=1Dpvs71O2dN6AxnTrMUGLAIDJkp0y8YXD)\n3. \t Put __ufdw_j4k_**bit.dll_ Natives into __HOME/.Jestures/native__. Jestures will find them.\n4.   \n\t*   **Build**  \n\tYou can download the source code of the library and build it as mentioned previously. Building Jestures will generate Jestures.jar under the Track4J/build/libs folder. To use Jestures, import Jestures.jar into your project and start recognizing gestures :).\n\t*   **Import the dependency**  \n\tInclude the dependency for your build system.\n \n ### Start The Recorder Tool\n 5.\t  Follow the step above and the recorder tool must work with your kinect version.\n \n### Code\n\n#### Tracker only\n```java\nfinal Sensor sensor = new Kinect(Joint.RIGHT_HAND, KinectSensors.SKELETON_ONLY, KinectVersion.KINECT1);\nfinal Tracking tracker = Tracker.getInstance();\ntracker.attacheSensor(sensor);\ntracker.startSensor();\ntracker.setOnJointTracked(new JointListener(){\n....});\n```\n\n#### Start the Recognizer\n```java\nfinal Sensor sensor = new Kinect(Joint.RIGHT_HAND, KinectSensors.SKELETON_ONLY, KinectVersion.KINECT1);\nfinal Recognition recognizer = Recognizer.getInstance();\nrecognizer.attacheSensor(sensor);\nrecognizer.startSensor();\nrecognizer.setOnGestureRecognized(System.out::println);\n```\n\n#### Start via UI\n\n```java\nfinal Sensor sensor = new Kinect(Joint.RIGHT_HAND, KinectSensors.SKELETON_ONLY, KinectVersion.KINECT1);\nfinal Recognition recognizer = Recognizer.getInstance();\nrecognizer.attacheSensor(sensor);\nfinal RecognitionView view = new RecognitionScreenView(recognizer);\nrecognizer.attacheUI(view);\nrecognizer.setOnGestureRecognized(System.out::println);\n```\n#### Define your own UI\n\n```java\npublic class Gui extends AbstractView {\n    public Gui(Recognition recognizer) {\n        super(recognizer);\n        // TODO Auto-generated constructor stub\n    }\n    @Override\n    public void notifyOnFrameChange(int frame, Vector2D derivative, Vector2D path) {\n        // TODO Auto-generated method stub   \n    }\n    @Override\n    public void notifyOnFeatureVectorEvent() {\n        // TODO Auto-generated method stub   \n    }\n..... A lot of methods to implements\n}\n```\n\n## Supported sensors\n\n*   **Windows:** \n\t- _Kinect v1_\n\t- _Kinect v2_\n\n### Future support\n\n*   **Windows:** \n\t- _Lipmotion_\n\t\n*   **Linux:**\n\t- _Kinect v1_\n\t- _Kinect v2_\n\t\n## Notes for Developers\n\n### Importing the project\nThe project has been developed using Eclipse, and can be easily imported in such IDE.\n\n#### Recommended configuration\n*  Install the required eclipse plugins:\n    *   In Eclipse, click \"Help\" -\u003e \"Eclipse Marketplace...\"\n    *   In the search field enter \"findbugs\", then press Enter\n    *   One of the retrieved entries should be \"FindBugs Eclipse Plugin\", click Install\n    *   Click \"\u003c Install More\"\n    *   In the search field enter \"checkstyle\", then press Enter\n    *   One of the retrieved entries should be \"Checkstyle Plug-in\" with a written icon whose text is \"eclipse-cs\", click Install\n    *   Click \"\u003c Install More\"\n    *   Wait for Eclipse to resolve all the features\n    *   Click \"Confirm \u003e\"\n    *   Follow the instructions, accept the license, wait for Eclipse to download and install the product, accept the installation and restart the IDE\n    *   When restarted, click \"Help\" -\u003e \"Install New Software...\"\n    *   Click \"Add...\"\n    *   In \"Location\" field, enter `https://dl.bintray.com/pmd/pmd-eclipse-plugin/updates/`\n    *   The \"Name\" field is not mandatory (suggested: \"PMD\")\n    *   Click OK.\n    *   If not already selected, in \"Work with:\" dropdown menu choose the just added update site\n    *   Select \"PMD for Eclipse 4\" and click next\n    *   Follow the instructions, accept the license, wait for Eclipse to download and install the product, accept the installation and restart the IDE.\n    \n*   Set the line delimiter to LF (only for Windows users)\n    *   In Eclipse, click window -\u003e preferences\n    *   In the search form enter \"encoding\", then press Enter\n    *   Go to General -\u003e Workspace\n    *   In the section \"New text file line delimiter\" check \"Other\" and choose Unix\n    *   Apply\n    \n*   Use space instead of tabs\n    *   In Eclipse, click window -\u003e preferences\n    *   Go to General -\u003e Editors -\u003e Text Editors\n    *   Check \"insert spaces for tabs\" option.\n    *   Apply.\n    *   Go to Java -\u003e Code style -\u003e Formatter\n    *   Click Edit button\n    *   In Indentation tab, under \"General Settings\", set \"tab policy\" to \"Spaces only\"\n    *   Apply (you should probably rename the formatter settings).\n\n## Screenshots\n### Recognition\n![Track4J](/pic/recognizer_canvas.gif)\n![Track4J](/pic/recognizer_derivative.gif)\n### Dataset\n![Track4J](/pic/dataset.gif)\n### Recording\n![Track4J](/pic/recorder.gif)\n\n## License\n[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\t\n\t\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedevstone%2FJestures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthedevstone%2FJestures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthedevstone%2FJestures/lists"}