{"id":51181492,"url":"https://github.com/sofa-framework/sofahapticavatar","last_synced_at":"2026-06-27T07:03:19.342Z","repository":{"id":39749765,"uuid":"218572218","full_name":"sofa-framework/SofaHapticAvatar","owner":"sofa-framework","description":"Haptic Avatar driver plugin for SOFA","archived":false,"fork":false,"pushed_at":"2026-06-12T15:18:51.000Z","size":44930,"stargazers_count":2,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-06-12T17:15:47.628Z","etag":null,"topics":["avatar","haptic","plugin","sofa-framework"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sofa-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-10-30T16:25:46.000Z","updated_at":"2026-06-12T15:19:04.000Z","dependencies_parsed_at":"2024-09-13T20:07:48.532Z","dependency_job_id":"38f02de7-74ff-4b2e-9bd3-20faac69460f","html_url":"https://github.com/sofa-framework/SofaHapticAvatar","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/sofa-framework/SofaHapticAvatar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofa-framework%2FSofaHapticAvatar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofa-framework%2FSofaHapticAvatar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofa-framework%2FSofaHapticAvatar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofa-framework%2FSofaHapticAvatar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sofa-framework","download_url":"https://codeload.github.com/sofa-framework/SofaHapticAvatar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sofa-framework%2FSofaHapticAvatar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34844350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["avatar","haptic","plugin","sofa-framework"],"created_at":"2026-06-27T07:03:15.220Z","updated_at":"2026-06-27T07:03:19.334Z","avatar_url":"https://github.com/sofa-framework.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SOFA plugin for Haptic Avatar device\n\n[![Documentation](https://img.shields.io/badge/doc-in_pdf-green.svg)](https://github.com/sofa-framework/SofaHapticAvatar/blob/master/doc/SofaHapticAvatar%20plugin%20documentation.pdf)\n[![Support](https://img.shields.io/badge/support-on_GitHub_Discussions-blue.svg)](https://github.com/sofa-framework/sofa/discussions)\n[![Gitter](https://img.shields.io/badge/chat-on_Gitter-ff69b4.svg)](https://app.gitter.im/#/room/#sofa-framework:gitter.im)\n[![Follou](https://img.shields.io/badge/Follou-to_website-red.svg)](https://www.follou-haptics.com/)\n\n## Description\n\nHaptic Avatar is a haptic device from [Follou Haptics](https://www.follou-haptics.com/) for minimally invasive surgical training, e.g. laparoscopy, arthroscopy and thoracoscopy. \nIt has four degrees of freedom, all with force feedback, and a form factor that enables multiple and adjustable portal placement suitable for both individual and team training.\nIt features a port-like part where a representation of a surgical tool can be inserted and retracted. The tool will be detected and identified at insertion.\n\n\u003cimg align=\"center\" width=\"60%\" height=\"auto\" src=\"./doc/Device_picture.png\"\u003e\n\n## Features\nThe real device is represented virtually in SOFA using an ArticulatedSystemMapping to define the different articulation of the device. Each articulation represents either a single rotation or a translation in one direction.\nVery quickly, during the simulation, in addition to the simulation thread. A first thread is created to communicate with the Haptic device at high frequency. It is used to retrieve the tool information and send the force feedback using SOFA lCPForceFeedback mechanism. \nThen a second thread running as well at high frequency is used to copy the tool information into a data set which will be used by the simulation thread.\n\u003cimg align=\"center\" width=\"60%\" height=\"auto\" src=\"./doc/HAvatar_Articulated_Nodes.png\"\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\nQuick Description: \n- Compatible with SOFA v21.12, v22.06 on Windows only. \n- Support multiple tools\n- Multiple demo scenes for 1 and 2 devices in XML and python\n- Full documentation in [./doc](https://github.com/sofa-framework/SofaHapticAvatar/blob/master/doc/SofaHapticAvatar%20plugin%20documentation.pdf)\n\n\u003cimg align=\"center\" width=\"60%\" height=\"auto\" src=\"./doc/HapticAvatar_dual_tool.gif\"\u003e\n\n\n## Installation\nThis plugin should be added as an external plugin of SOFA using the CMAKE_EXTERNAL_DIRECTORIES CMake variable of SOFA. \nSee SOFA documentation for more information\n\n## License\nThis work is dual-licensed under either [LGPL](https://github.com/sofa-framework/SofaHapticAvatar/blob/main/LICENSE.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofa-framework%2Fsofahapticavatar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsofa-framework%2Fsofahapticavatar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofa-framework%2Fsofahapticavatar/lists"}