{"id":33003021,"url":"https://github.com/erayzesen/QuarkPhysics","last_synced_at":"2025-11-18T08:03:20.426Z","repository":{"id":159523679,"uuid":"634687604","full_name":"erayzesen/QuarkPhysics","owner":"erayzesen","description":"A 2D Soft Body and Rigid Body Physics Engine.","archived":false,"fork":false,"pushed_at":"2025-10-17T06:34:37.000Z","size":127681,"stargazers_count":262,"open_issues_count":0,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-18T09:44:36.878Z","etag":null,"topics":["2d-physics-engine","game-development","physics-engine","physics-simulation","rigid-bodies","soft-bodies"],"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/erayzesen.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-30T23:12:52.000Z","updated_at":"2025-10-17T09:01:43.000Z","dependencies_parsed_at":"2023-05-16T09:30:52.693Z","dependency_job_id":"c8348168-9d04-4485-9fef-05eb8ca7ee2c","html_url":"https://github.com/erayzesen/QuarkPhysics","commit_stats":{"total_commits":29,"total_committers":1,"mean_commits":29.0,"dds":0.0,"last_synced_commit":"a480fa10e71d1378826013a0b627755c325ebed7"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/erayzesen/QuarkPhysics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erayzesen%2FQuarkPhysics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erayzesen%2FQuarkPhysics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erayzesen%2FQuarkPhysics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erayzesen%2FQuarkPhysics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erayzesen","download_url":"https://codeload.github.com/erayzesen/QuarkPhysics/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erayzesen%2FQuarkPhysics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285028340,"owners_count":27102545,"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","status":"online","status_checked_at":"2025-11-18T02:00:05.759Z","response_time":61,"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":["2d-physics-engine","game-development","physics-engine","physics-simulation","rigid-bodies","soft-bodies"],"created_at":"2025-11-13T14:00:38.908Z","updated_at":"2025-11-18T08:03:20.412Z","avatar_url":"https://github.com/erayzesen.png","language":"C++","readme":"![Quark Physics](images/logo.png)\n\nQuarkPhysics is a 2D physics engine designed for games. Its goal is to provide a reasonable approach to simulate rigid bodies, soft bodies, and different physics models together.\n\n\n[Documentation](https://erayzesen.github.io/QuarkPhysics/documentation/) | [Examples](https://github.com/erayzesen/QuarkPhysics/tree/master/examples)\n\n\n ---\n ![Example 01](images/example_01_a.gif)\n \u003cdetails\u003e\n \u003csummary\u003e Show Examples\u003c/summary\u003e\n\n ![Example 02](images/example_02.gif)\n ![Example 02](images/example_04.gif)\n ![Example 02](images/example_05.gif)\n ![Example 03](images/example_03.gif)\n ![Example 02](images/example_06.gif)\n\n \u003c/details\u003e\n\n\n\n## Features\n* General Features\n  * Primitive shape types (circle, polygon, rectangle, etc.)\n  * Physical properties (mass, area, restitution, etc.)\n  * The API is designed specifically for 2D video games.\n  * Raycasting\n  * Collision layer masks for advanced collision filtering\n  * SAP for broadphase\n  * Supports sleeping islands to improve CPU performance.\n  * Flexible and advanced event system.\n  * Supports UV mapping with QMesh for rendering operations.\n  * It uses pixels directly as a unit without any abstractions.\n  * Unlimited shape-mesh support for bodies.\n  * Simple and consistent API\n   \n* Rigid bodies\n  * Convex polygons support.\n  * Joints to connect bodies.\n  * Reasonable stability for stacked objects.\n  * Kinematic bodies for creating controllable physics objects.\n  * Area bodies for detecting and reporting collisions.\n\n* Soft Bodies\n  * Springs to connect particles.\n  * Mass-spring model.\n  * Area-volume preserving model.\n  * Shape matching features.\n  * Self collisions.\n  * PBD dynamics.\n  * Internal springs and internal particles for adding more complexity to soft body simulations.\n  * Customizable constraints for adding more control to simulations.\n  * Advanced particle methods. \n  \n## Building Examples\nYou need to install [SFML 2.x](https://www.sfml-dev.org/) and [CMake](https://cmake.org/) on your system before. \n\nDownload project, enter the main folder, and call this:\n\n        ./build.sh -r\n\nOr you can compile the project directly via gcc if you're on linux by calling this:\n\n        ./run_linux_fast.sh -r\n\n## Using\nCopy the \"QuarkPhysics\" named subfolder in the main folder to your project and use it. \n\n## Integrated Game Engines\n* [Godot Engine](https://github.com/erayzesen/godot-quarkphysics) \n\n## Third Party \n- [nlohmann's json](https://github.com/nlohmann/json) for the json parsing. (Importing meshes via *.qmesh files)\n- [ivanfratric's polypartition](https://github.com/ivanfratric/polypartition) for the convex polygon partition operations\n- [SFML](https://www.sfml-dev.org/) library for window,input,opengl. \n- [Doxygen-Awsome](https://jothepro.github.io/doxygen-awesome-css/) for the custom themed documentation.\n\n## Roadmap\n* ~~1.0~~\n  * ~~API revisions~~ (v0.9x)\n  * ~~Optimizations~~ ( v0.9x)\n* 1.1\n  * ~~UV support to QMesh~~ (v1.0.x) \n  * Fluid dynamics\n* 1.2\n   * Destructable rigid bodies.\n* 1.3\n   * Continuous collision dedection (CCD)\n   * Multithreading\n","funding_links":[],"categories":["Physics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferayzesen%2FQuarkPhysics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferayzesen%2FQuarkPhysics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferayzesen%2FQuarkPhysics/lists"}