{"id":44648835,"url":"https://github.com/notgiven688/unified_epa","last_synced_at":"2026-02-14T20:33:15.515Z","repository":{"id":48745356,"uuid":"378667288","full_name":"notgiven688/unified_epa","owner":"notgiven688","description":"Robust and simple implementation of the Expanding Polytope Algorithm (EPA)","archived":false,"fork":false,"pushed_at":"2024-12-19T23:31:02.000Z","size":417,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-20T00:26:41.181Z","etag":null,"topics":["collision-detection","epa","gjk","gjk-algorithm","physics","physics-engine"],"latest_commit_sha":null,"homepage":"","language":"C#","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/notgiven688.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":"2021-06-20T14:38:02.000Z","updated_at":"2024-12-19T23:31:05.000Z","dependencies_parsed_at":"2024-01-07T03:50:30.203Z","dependency_job_id":"580e6b5f-e368-4050-b72a-d66a146ea577","html_url":"https://github.com/notgiven688/unified_epa","commit_stats":{"total_commits":112,"total_committers":2,"mean_commits":56.0,"dds":0.1875,"last_synced_commit":"c5f8900119ddd7914d63637a35c65e0f710f73f4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/notgiven688/unified_epa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Funified_epa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Funified_epa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Funified_epa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Funified_epa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notgiven688","download_url":"https://codeload.github.com/notgiven688/unified_epa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Funified_epa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29455352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["collision-detection","epa","gjk","gjk-algorithm","physics","physics-engine"],"created_at":"2026-02-14T20:33:15.014Z","updated_at":"2026-02-14T20:33:15.508Z","avatar_url":"https://github.com/notgiven688.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unified EPA (UEPA) Demo \n[![uepa_tests](https://github.com/notgiven688/unified_epa/actions/workflows/uepa_tests.yml/badge.svg)](https://github.com/notgiven688/unified_epa/actions/workflows/uepa_tests.yml)\n\nRobust and simple implementation of the **Expanding Polytope Algorithm** (EPA).\n\nThe demo is written in C#, with [OpenTK](https://github.com/opentk/opentk) as only dependency.\n\n## Some Details\n\nThe implementation itself is contained in [UEPA.cs](src/UEPA.cs) with ~400 lines of code. The algorithm detects whether two convex objects are separated or colliding and returns the points of closest distance and deepest penetration, respectively.\n\nThe expanding polytope algorithm is used also for the separating case - simplifying\nthe algorithm for collision detection for the general case.\n\n## Run the demo\n\nThe demo should be able to run cross-platform utilizing OpenGL.\n\n1. Install the [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)\n2. git clone https://github.com/notgiven688/unified_epa.git\n3. cd unified_epa \u0026\u0026 dotnet run -c Release\n\n## Screenshots\n\n[YouTube Video](https://www.youtube.com/watch?v=NMdp7A13EAI)\n\n![alt text](screenshots/uepa.png?raw=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotgiven688%2Funified_epa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotgiven688%2Funified_epa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotgiven688%2Funified_epa/lists"}