{"id":29538785,"url":"https://github.com/augustocesarperin/chaos-engine","last_synced_at":"2025-10-29T13:14:44.315Z","repository":{"id":303358167,"uuid":"983184682","full_name":"augustocesarperin/chaos-engine","owner":"augustocesarperin","description":" An optimized 2D physics engine built with C++ and SFML","archived":false,"fork":false,"pushed_at":"2025-07-07T06:56:04.000Z","size":34952,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T07:46:22.739Z","etag":null,"topics":["c-plus-plus","cpp","game-development","particle-physics","particle-system","physics-2d","physics-engine","sfml"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/augustocesarperin.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}},"created_at":"2025-05-14T02:30:55.000Z","updated_at":"2025-07-07T07:08:09.000Z","dependencies_parsed_at":"2025-07-17T11:14:46.044Z","dependency_job_id":null,"html_url":"https://github.com/augustocesarperin/chaos-engine","commit_stats":null,"previous_names":["augustocesarperin/chaos-engine"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/augustocesarperin/chaos-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustocesarperin%2Fchaos-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustocesarperin%2Fchaos-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustocesarperin%2Fchaos-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustocesarperin%2Fchaos-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/augustocesarperin","download_url":"https://codeload.github.com/augustocesarperin/chaos-engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augustocesarperin%2Fchaos-engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278716040,"owners_count":26033394,"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-10-07T02:00:06.786Z","response_time":59,"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":["c-plus-plus","cpp","game-development","particle-physics","particle-system","physics-2d","physics-engine","sfml"],"created_at":"2025-07-17T05:15:39.797Z","updated_at":"2025-10-07T03:33:21.359Z","avatar_url":"https://github.com/augustocesarperin.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"right\"\u003e🇧🇷 \u003ca href=\"README_pt-br.md\"\u003eLer em Português\u003c/a\u003e\u003c/div\u003e\n\nAn engine with some physics and a lot of optimizations. Made for educational and procrastinatory purposes in C++ \u0026 SFML.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"gifs/v09.gif\" alt=\"Demonstration of the Final Version\" width=\"650\"/\u003e\n\u003c/p\u003e\n\n## Verlet Integration\n\nThis program uses Verlet integration for motion calculations. Unlike the Euler method (used in early versions), the Verlet method prevents particles from tunneling through each other at high speeds or when the FPS drops significantly. The system also simulates energy loss in collisions, preventing them from bouncing around ad infinitum.\n\n## Main Optimizations\n\n-   Spatial Grid\n-   Object Pooling\n-   Structure of Arrays (SoA)\n\n## Controls\n\n**Mouse:**\n- Left-click: creates a normal particle\n- Right-click: creates a large particle\n\n**Keyboard:**\n- `G`: toggles gravity\n- `R`: toggles repulsion\n- `M`: toggles mouse force\n- `N`: switches between attract and repel\n- `F`: changes the mouse force style\n- `+/-`: adjusts force intensity\n- `C`: clears all particles\n- `Space`: creates random particles\n- `ESC`: bye\n\n\n## How to Compile\n\n### Windows\nRun the file:\n```\ncompile.bat\n```\n\u003e You need to have [MSYS2](https://www.msys2.org/) with MinGW tools (g++, make, cmake) and SFML installed and in the system's PATH.\n\n### Linux\n```sh\nsudo apt update \u0026\u0026 sudo apt install build-essential git cmake libsfml-dev\n\ngit clone https://github.com/augustocesarperin/chaos-engine.git\ncd chaos-engine\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n./Chaos\n```\n\nDespite being optimized, performance may vary with many particles/interactions. Use at your own risk.\n\n(~Works on my machine~)\n\n### Previous Versions\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003ev0.5\u003c/b\u003e\u003cbr\u003e\n  \u003cimg src=\"gifs/gifrec.gif\" alt=\"Demonstration of Version 0.5\" width=\"580\"/\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003ev0.1\u003c/b\u003e\u003cbr\u003e\n  \u003cimg src=\"gifs/v01.gif\" alt=\"Demonstration of Version 0.1\" width=\"580\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"right\"\u003e\n  \u003csub\u003e\u003ca href=\"https://github.com/augustocesarperin\"\u003eAugusto Cesar Perin\u003c/a\u003e | 2018-2019\u003c/sub\u003e\n\u003c/div\u003e ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustocesarperin%2Fchaos-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugustocesarperin%2Fchaos-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustocesarperin%2Fchaos-engine/lists"}