{"id":21601486,"url":"https://github.com/simple-robotics/contactbench","last_synced_at":"2026-02-23T22:03:11.989Z","repository":{"id":248758809,"uuid":"820506366","full_name":"Simple-Robotics/ContactBench","owner":"Simple-Robotics","description":"Benchmarking contact models and solvers from robotics simulators.","archived":false,"fork":false,"pushed_at":"2024-07-19T11:29:11.000Z","size":149,"stargazers_count":28,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T02:13:10.194Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simple-Robotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-26T15:49:24.000Z","updated_at":"2025-02-12T12:18:56.000Z","dependencies_parsed_at":"2024-07-17T00:38:48.264Z","dependency_job_id":null,"html_url":"https://github.com/Simple-Robotics/ContactBench","commit_stats":null,"previous_names":["simple-robotics/contactbench"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Robotics%2FContactBench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Robotics%2FContactBench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Robotics%2FContactBench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simple-Robotics%2FContactBench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simple-Robotics","download_url":"https://codeload.github.com/Simple-Robotics/ContactBench/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248328163,"owners_count":21085261,"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":[],"created_at":"2024-11-24T19:09:38.922Z","updated_at":"2026-02-23T22:03:11.916Z","avatar_url":"https://github.com/Simple-Robotics.png","language":"C++","readme":"# Contact Bench\n\nC++ implementation of various contact models and solvers used for robotics simulation.\n\n### The contact problem\n\nThe contact problem is formulated as a Non-linear Complementarity Problem (NCP):\n\n$$\n\\begin{align}\n\u0026c = G \\lambda + g \\\\\n\u0026\\mathcal{K} \\ni \\lambda \\perp c + {\\Phi}(c) \\in \\mathcal{K} \\\\\n\\end{align}\n$$\n\nSeveral algorithms solving this problem or a relaxation of it are implemented and empirically evaluated.\nWe also benchmark various algorithms for gradient computation: automatic and implicit differentiation.\n\n### Requirements\nWe use [Pinocchio](https://github.com/stack-of-tasks/pinocchio) for free dynamics and Delassus computation. Collision detection and its gradients are performed with [hppfcl](https://github.com/humanoid-path-planner/hpp-fcl). The QP solver [ProxSuite](https://github.com/Simple-Robotics/proxsuite) is used in some contact models and to compute derivatives. Automatic differentiation is implemented via [CppAD](https://github.com/coin-or/CppAD).\n\n\n### Citing this work\nIf you find this helpful work, please cite the related paper:\n```\n@article{lelidec2023contact,\n  title={Contact Models in Robotics: a Comparative Analysis},\n  author={Le Lidec, Quentin and Jallet, Wilson and Montaut, Louis and Laptev, Ivan and Schmid, Cordelia and Carpentier, Justin}\n}\n```\n\n### Credits\n\nThe following people have been involved in the development of **Contact Bench**:\n\n-   [Quentin Le Lidec](https://quentinll.github.io) (Inria): main developer and manager of the project\n-   [Justin Carpentier](https://jcarpent.github.io) (Inria): manager of the project\n-   [Wilson Jallet](https://github.com/ManifoldFR) (LAAS-CNRS/Inria): core developer\n-   [Fabian Schramm](https://github.com/fabinsch) (Inria): core developer\n-   [Louis Montaut](https://github.com/lmontaut) (Inria): core developper\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimple-robotics%2Fcontactbench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimple-robotics%2Fcontactbench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimple-robotics%2Fcontactbench/lists"}