{"id":38464825,"url":"https://github.com/leandrosq/cpp-physics-sandbox","last_synced_at":"2026-01-17T05:01:17.248Z","repository":{"id":219379712,"uuid":"748906436","full_name":"LeandroSQ/cpp-physics-sandbox","owner":"LeandroSQ","description":"Simple Verlet physics sandbox","archived":false,"fork":false,"pushed_at":"2024-02-20T16:06:15.000Z","size":4638,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-05T10:28:02.821Z","etag":null,"topics":["cpp","cpp23","emscripten","physics","sandbox","verlet","verlet-integration","verlet-physics","wasm"],"latest_commit_sha":null,"homepage":"https://leandrosq.github.io/cpp-physics-sandbox/","language":"C++","has_issues":false,"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/LeandroSQ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-01-27T02:13:46.000Z","updated_at":"2024-02-02T22:19:59.000Z","dependencies_parsed_at":"2024-02-19T07:52:52.147Z","dependency_job_id":null,"html_url":"https://github.com/LeandroSQ/cpp-physics-sandbox","commit_stats":null,"previous_names":["leandrosq/cpp-physics-sandbox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LeandroSQ/cpp-physics-sandbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeandroSQ%2Fcpp-physics-sandbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeandroSQ%2Fcpp-physics-sandbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeandroSQ%2Fcpp-physics-sandbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeandroSQ%2Fcpp-physics-sandbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeandroSQ","download_url":"https://codeload.github.com/LeandroSQ/cpp-physics-sandbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeandroSQ%2Fcpp-physics-sandbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28497951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"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":["cpp","cpp23","emscripten","physics","sandbox","verlet","verlet-integration","verlet-physics","wasm"],"created_at":"2026-01-17T05:00:43.969Z","updated_at":"2026-01-17T05:01:17.235Z","avatar_url":"https://github.com/LeandroSQ.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Simple physics engine\n\nImplements a simple physics engine in C++ based on [Verlet integration](https://en.wikipedia.org/wiki/Verlet_integration) and [Verlet constraints](https://en.wikipedia.org/wiki/Verlet_integration#Verlet_constraints).\n\n\u003ccenter\u003e\n    \u003cp float=\"left\" align=\"center\"\u003e\n        \u003cimg src=\".github/screenshots/screenshot01.png\" style=\"width: 48%\"/\u003e\n        \u003cimg src=\".github/screenshots/screenshot02.png\" style=\"width: 48%\"/\u003e\n    \u003c/p\u003e\n\u003c/center\u003e\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://leandrosq.github.io/cpp-physics-sandbox/\"\u003eLive demo here\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\nYou can check the WEB version [here](https://leandrosq.github.io/cpp-physics-sandbox/). It is a port using WASM generated by Emscripten using WebGL on the browser.\n\n* Restricted only to circles\n* Supports gravity\n* Supports collisions\n  * Implements a Quadtree for collision detection\n* Supports constraints\n  * Implements both a circle and a rectangle world constraint\n* Supports user interaction\n  * Dragging\n  * Spawning\n  * Explode\n\n## Controls\n\n### Desktop\n\n\u003e \u003cimg src=\".github/images/Mouse_Left_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Left click` to spawn circles\n\n\u003e \u003cimg src=\".github/images/Mouse_Right_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Right click` to drag circles\n\n\u003e \u003cimg src=\".github/images/Mouse_Middle_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Middle click` to explode circles\n\n\u003e \u003cimg src=\".github/images/Space_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Space bar` to flip the Gravity vector\n\n\u003e \u003cimg src=\".github/images/Z_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Z` to toggle Gravity ON/OFF\n\n\u003e \u003cimg src=\".github/images/Arrow_Up_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Up arrow` to increase the Gravity force\n\n\u003e \u003cimg src=\".github/images/Arrow_Down_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Down arrow` to decrease the Gravity force\n\n\u003e \u003cimg src=\".github/images/Arrow_Left_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Left arrow` to decrease the Gravity angle\n\n\u003e \u003cimg src=\".github/images/Arrow_Right_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `Right arrow` to increase the Gravity angle\n\n\u003e \u003cimg src=\".github/images/Esc_Key_Dark.png\" align=\"center\" height=\"32\"\u003e `ESC` to exit\n\n\u003cp float=\"left\" align=\"center\"\u003e\n    \u003cspan\u003eOther controls included on the GUI can be used with the mouse as demonstrated below.\u003c/span\u003e\n    \u003cimg src=\".github/screenshots/screenshot03.png\" style=\"width: 48%\"/\u003e\n\u003c/p\u003e\n\n## Project\n\n### Resources\n\n| Name | Description |\n| -- | -- |\n| [ClangD](https://clangd.llvm.org/) | Language Server for C++ |\n| [CMake](https://cmake.org/) | Cross-platform open-source make system |\n| [Clang-tidy](https://clang.llvm.org/extra/clang-tidy/) | A clang-based C++ “linter” tool |\n| [Clang-format](https://clang.llvm.org/docs/ClangFormat.html) | A tool to format C/C++/Obj-C code |\n| [Emscripten](https://emscripten.org/) | Used for the web port, generating the WASM binaries. |\n| [Raylib](https://www.raylib.com/) | A simple and easy-to-use library to enjoy videogames programming |\n| [Dear ImGui](https://www.github.com/ocornut/imgui) | Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies |\n| [Dear ImGui Raylib](https:://github.com/RobLoach/raylib-imgui) | Dear ImGui bindings for Raylib |\n| [NES CSS](https://nostalgic-css.github.io/NES.css/) | NES.css is NES-style (8bit-like) CSS Framework. |\n| Github Actions | Used for CI/CD |\n| Github Pages | Used for hosting the web version |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandrosq%2Fcpp-physics-sandbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleandrosq%2Fcpp-physics-sandbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandrosq%2Fcpp-physics-sandbox/lists"}