{"id":18514176,"url":"https://github.com/seanschneeweiss/rosemotion","last_synced_at":"2025-04-09T06:34:05.820Z","repository":{"id":37240534,"uuid":"319747729","full_name":"seanschneeweiss/RoSeMotion","owner":"seanschneeweiss","description":"Hand Motion Capture from a 3D Leap Motion Controller for a Musculoskeletal Dynamic Simulation implemented in Python","archived":false,"fork":false,"pushed_at":"2024-03-18T21:55:48.000Z","size":36268,"stargazers_count":23,"open_issues_count":2,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T00:51:30.579Z","etag":null,"topics":["anybody","anypytools","bvh","c3d","hand-tracking","joint-angles","leap-motion","leapmotion","mocap","motion-capture","python","ulm-university"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seanschneeweiss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-08T20:03:20.000Z","updated_at":"2024-12-12T01:01:48.000Z","dependencies_parsed_at":"2024-11-06T15:49:08.604Z","dependency_job_id":"f51aa6ff-a91c-4675-b7ed-e4b10c4ff931","html_url":"https://github.com/seanschneeweiss/RoSeMotion","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanschneeweiss%2FRoSeMotion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanschneeweiss%2FRoSeMotion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanschneeweiss%2FRoSeMotion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanschneeweiss%2FRoSeMotion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanschneeweiss","download_url":"https://codeload.github.com/seanschneeweiss/RoSeMotion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247993599,"owners_count":21030043,"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":["anybody","anypytools","bvh","c3d","hand-tracking","joint-angles","leap-motion","leapmotion","mocap","motion-capture","python","ulm-university"],"created_at":"2024-11-06T15:42:19.577Z","updated_at":"2025-04-09T06:34:00.770Z","avatar_url":"https://github.com/seanschneeweiss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)\n\n# ROSE Motion\n\nZenodo Code Archive: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4344201.svg)](https://doi.org/10.5281/zenodo.4344201) MDPI Sensors Article: [![DOI](https://zenodo.org/badge/DOI/10.3390/s21041199.svg)](https://doi.org/10.3390/s21041199)\n\nLeapMotion recording, export to BVH and Anybody\n![ROSE Motion](https://snag.gy/T6kpqO.jpg)\n\n## Structure / Actions\n\n* **Record**\nPlug in the Leap Motion Controller and make a recording of the right hand\n    * **Settings**\n        * Setting \"Frames per second\" defines the minimum time delta between to recorded frames\n        * Checking \"Animate\" will open the bvh animation after recording, a slider can be used to iterate through the frames\n        * Setting the basis\n    * **BVH Export**\n        * Setting \"Write BVH-File\" will export the recorded motion to a BVH file defined in the next setting\n        * Choose the filepath and name in \"BVH File\"\n        * Setting \"BVH Channels\" will export either the channels XRotation, YRotation, ZRotation or also XPosition, YPosition, ZPosition\n    * **Interpolation Vector**\n        * Setting \"Write interpolation files for AnyBody\" will export the files\n            * Elbow.any (pronation angle)\n            * Finger[1-5].any (angles for all finger joints)\n            * FingerLength.any (scaling of the finger lengths based on Leap Motion recording)\n            * TimeSeries.any (equally spaced time points between 0 and 1)\n            * Wrist.any (abduction and flexion angles for wrist)\n        * Choose the template directory, the AnyBody interpolation files are written based on those files\n        * Choose the output directory, here the above mentioned files will be saved to\n* **AnyBody** ([repository](https://github.com/seanschneeweiss/RoSeMotion-AnyBody))\n    * **Source files**\n        * Choose \"exisiting vector files\" if interpolation files are already in the project folder \u003cAnyBodyFolder\u003e/Model/InterpolVec\n        * Choose \".bvh file\" to convert it to the interpolation files based on the templates in config/anybody_templates/ and copy into the AnyBody project folder \u003cAnyBodyFolder\u003e/Model/InterpolVec\n        * Choose \"Source (.any)\" to copy all .any files into the AnyBody project folder \u003cAnyBodyFolder\u003e/Model/InterpolVec\n        * Setting \"HAND.Main.any\" defines the main model file of the AnyBody project, which should be loaded for the analysis\n        * Setting \"Start Frame\" will define the first frame to start with (cut off the frames before that). Leaving this option empty will set the first frame to 1\n        * Setting \"End Frame\" will define the last frame to end with (cut off the frames after that). Leaving this option empty will set the last frame to end\n    * **Operations**\n        * Select the operations which should be executed in AnyBody\n        * Setting \"Time steps\" will rewrite alls lines which match ``nStep = xx;`` in the main model file. (e.g. ``nStep = 50;``)\n    * **Results**\n        * Selecting \"plot after the analysis\" will open an interactive plot for the results from the AnyBody analysis (joint angles)\n        * Setting \".anydata.h5 file\" will save the results from the AnyBody anaylsis to the specified file\n        * Selecting \"Open AnyBody\" will open the AnyBody GUI after the analysis and will load the .anydata.h5 to make a replay available\n* **Converter**\n    * Convert a given bvh file to the interpolation files used for AnyBody based on the templates in config/anybody_templates\n* **Animation**\n    * Open a bvh file to animate it, a slider can be used to iterate through the frames\n\n### Basis setting\n\n* AnyBody initial basis -\u003e select for correct movement within AnyBody\n* Leap Motion first frame basis -\u003e select for exporting to BVH and use in other applications\n\n## Setup\n\n**Windows**\n\n* Install python (3.9.13) i.e. from\n\n  https://www.python.org/downloads/\n* Add python to system path during setup or follow the following instructions:\n\n  https://github.com/BurntSushi/nfldb/wiki/Python-\u0026-pip-Windows-installation\n\n* Install dependencies, by running the following in a command prompt:\n```\npip install -r requirements.txt\n```\nYou might have to use `pip3` instead, depending on your setup.\n\n* Start RoSeMotion\n```\npython app/main.py\n```\n\n---\nFollowing python packages and versions were tested:\n * _Gooey_ (1.0.8.1)\n * _AnyPyTools_ (1.7.8)\n * _Matplotlib_ (3.3.3) (only for AnyBody results)\n * _Numpy_ (1.19.5)\n * _Pandas_ (1.1.5)\n * _pywin32_ (301) (only for window size automation)\n * _pywinauto_ (0.6.8) (only for window size automation)\n * _Scikit-learn_ (0.23.2) (only for BVH animation)\n * _wxPython_ ([4.1.2a1.dev5330+3e6be81d](https://wxpython.org/Phoenix/snapshot-builds/wxPython-4.1.2a1.dev5330+3e6be81d-cp39-cp39-win_amd64.whl))\n\n## Credits\n* https://github.com/chriskiehl/Gooey\n* https://github.com/YPZhou/b3d/\n* https://github.com/AnyBody-Research-Group/AnyPyTools\n* https://github.com/leapmotion/LeapCxx\n* https://github.com/omimo/PyMO\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanschneeweiss%2Frosemotion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanschneeweiss%2Frosemotion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanschneeweiss%2Frosemotion/lists"}