{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/myosuite-a-contact-rich-simulation-suite-for","title":"MyoSuite -- A contact-rich simulation suite for musculoskeletal motor control","arxiv_id":"2205.13600","date":"2022-05-26","proceeding":null,"authors":["Vittorio Caggiano","Huawei Wang","Guillaume Durandau","Massimo Sartori","Vikash Kumar"],"abstract":"Embodied agents in continuous control domains have had limited exposure to tasks allowing to explore musculoskeletal properties that enable agile and nimble behaviors in biological beings. The sophistication behind neuro-musculoskeletal control can pose new challenges for the motor learning community. At the same time, agents solving complex neural control problems allow impact in fields such as neuro-rehabilitation, as well as collaborative-robotics. Human biomechanics underlies complex multi-joint-multi-actuator musculoskeletal systems. The sensory-motor system relies on a range of sensory-contact rich and proprioceptive inputs that define and condition muscle actuation required to exhibit intelligent behaviors in the physical world. Current frameworks for musculoskeletal control do not support physiological sophistication of the musculoskeletal systems along with physical world interaction capabilities. In addition, they are neither embedded in complex and skillful motor tasks nor are computationally effective and scalable to study large-scale learning paradigms. Here, we present MyoSuite -- a suite of physiologically accurate biomechanical models of elbow, wrist, and hand, with physical contact capabilities, which allow learning of complex and skillful contact-rich real-world tasks. We provide diverse motor-control challenges: from simple postural control to skilled hand-object interactions such as turning a key, twirling a pen, rotating two balls in one hand, etc. By supporting physiological alterations in musculoskeletal geometry (tendon transfer), assistive devices (exoskeleton assistance), and muscle contraction dynamics (muscle fatigue, sarcopenia), we present real-life tasks with temporal changes, thereby exposing realistic non-stationary conditions in our tasks which most continuous control benchmarks lack.","url_abs":"https://arxiv.org/abs/2205.13600v1","url_pdf":"https://arxiv.org/pdf/2205.13600v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"myosuite-a-contact-rich-simulation-suite-for","repo_url":"https://github.com/facebookresearch/myosuite","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"myosuite-a-contact-rich-simulation-suite-for","repo_url":"https://github.com/myo-manipulation/spasticmyoelbow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"myosuite-a-contact-rich-simulation-suite-for","repo_url":"https://github.com/myohub/myosuite","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"continuous-control","task_name":"Continuous Control"},{"task_slug":"continuous-control","task_name":"continuous-control"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2205.13600","atlas_url":"https://app.syntology.ai/?focus=2205.13600","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.13600"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/facebookresearch/myosuite","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/myo-manipulation/spasticmyoelbow","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/myohub/myosuite","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":1,"ran_violates":1,"ran_honours":3,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":5,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"ffeb08a58aa54e37","entry":"gaussian_smoothing","repo":"facebookresearch/myosuite","repo_kind":"official","path":"myosuite/envs/heightfields.py","file_url":"https://github.com/facebookresearch/myosuite/blob/HEAD/myosuite/envs/heightfields.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ffeb08a58aa54e37"}},{"code_sha256_prefix":"a110880086c35bb4","entry":"inverse_sigmoid","repo":"myo-manipulation/spasticmyoelbow","repo_kind":"listed","path":"dev/model_validation_experiment.py","file_url":"https://github.com/myo-manipulation/spasticmyoelbow/blob/HEAD/dev/model_validation_experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a110880086c35bb4"}},{"code_sha256_prefix":"0cfbee645724de8a","entry":"muscle_spasticity","repo":"myo-manipulation/spasticmyoelbow","repo_kind":"listed","path":"dev/model_validation_experiment.py","file_url":"https://github.com/myo-manipulation/spasticmyoelbow/blob/HEAD/dev/model_validation_experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0cfbee645724de8a"}},{"code_sha256_prefix":"18663bc021073324","entry":"muscle_spasticity","repo":"myo-manipulation/spasticmyoelbow","repo_kind":"listed","path":"dev/new_model_fitting.py","file_url":"https://github.com/myo-manipulation/spasticmyoelbow/blob/HEAD/dev/new_model_fitting.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"18663bc021073324"}},{"code_sha256_prefix":"77c384b08c049d5f","entry":"muscle_spasticity","repo":"myo-manipulation/spasticmyoelbow","repo_kind":"listed","path":"dev/test_spasticity_model.py","file_url":"https://github.com/myo-manipulation/spasticmyoelbow/blob/HEAD/dev/test_spasticity_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"77c384b08c049d5f"}},{"code_sha256_prefix":"8716af66856e8e15","entry":"sigmoid","repo":"myo-manipulation/spasticmyoelbow","repo_kind":"listed","path":"dev/model_validation_experiment.py","file_url":"https://github.com/myo-manipulation/spasticmyoelbow/blob/HEAD/dev/model_validation_experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8716af66856e8e15"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}