{"id":50770677,"url":"https://github.com/notgiven688/jitterphysics2cpp","last_synced_at":"2026-06-11T18:01:40.158Z","repository":{"id":363287266,"uuid":"1262641184","full_name":"notgiven688/jitterphysics2cpp","owner":"notgiven688","description":"C++ Port of Jitter Physics 2","archived":false,"fork":false,"pushed_at":"2026-06-08T07:54:00.000Z","size":4817,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T09:25:20.880Z","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":"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-08T07:18:57.000Z","updated_at":"2026-06-08T07:54:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/notgiven688/jitterphysics2cpp","commit_stats":null,"previous_names":["notgiven688/jitterphysics2cpp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/notgiven688/jitterphysics2cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Fjitterphysics2cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Fjitterphysics2cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Fjitterphysics2cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Fjitterphysics2cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notgiven688","download_url":"https://codeload.github.com/notgiven688/jitterphysics2cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notgiven688%2Fjitterphysics2cpp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34211067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":[],"created_at":"2026-06-11T18:01:38.321Z","updated_at":"2026-06-11T18:01:40.153Z","avatar_url":"https://github.com/notgiven688.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jitter2 C++\n\nThis repository is an automatic AI port by OpenAI Codex of\n[Jitter Physics 2](https://github.com/notgiven688/jitterphysics2) version 2.8.8\nfrom C# to C++.\n\nThe purpose of this port is performance comparison against the original managed\nimplementation. It is not a hand-written rewrite; the C# version remains the\nreference implementation.\n\n\u003cimg src=\"./media/screenshot0.png\" alt=\"screenshot\" width=\"400\"/\u003e\n\n## Projects\n\nThis repository contains three main projects:\n\n| Project | Description |\n| --- | --- |\n| `Jitter2` | C++ physics engine library. |\n| `JitterDemo` | ImGui/OpenGL demo application. |\n| `JitterTests` | C++ tests for engine behavior and parity checks. |\n\n`JitterBenchmark` is also included for performance experiments.\nMatching C++ and C# benchmark programs live under `Benchmarks`.\n\n## Build\n\n```sh\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build -j\n```\n\nRun tests:\n\n```sh\nctest --test-dir build --output-on-failure\n```\n\nRun the demo:\n\n```sh\n./build/JitterDemo/JitterDemo\n```\n\nRun benchmarks:\n\n```sh\n./build/Benchmarks/Cpp/JitterBenchmark\ndotnet run -c Release --project Benchmarks/CSharp/JitterBenchmark.CSharp.csproj\n```\n\nUse double precision:\n\n```sh\ncmake -S . -B build-double -DCMAKE_BUILD_TYPE=Release -DJITTER_DOUBLE_PRECISION=ON\ncmake --build build-double -j\n```\n\n## Benchmarks\n\nLocal snapshot, single precision, two demo-derived scenes, default `dt = 0.01`.\nEach entry is the median of 3 runs using `--warmup 300 --frames 1000`; values\nin parentheses show min-max.\n\nEnvironment:\n\n- CPU: AMD Ryzen 9 7950X, 16 cores / 32 threads\n- OS: Ubuntu 24.04\n- C++: GCC 13.3.0\n- C#: Jitter2 NuGet 2.8.8, .NET 10.0 runtime via `net8.0` roll-forward\n\nLower frame time is better.\n\n### Colosseum\n\nLarge stacked colosseum scene, deactivation disabled, 8818 dynamic bodies plus\nstatic floor.\n\n#### Multithreaded\n\n| Implementation | Build | Threads reported | Wall avg | FPS | DebugTimings avg | Relative to C# |\n| --- | --- | ---: | ---: | ---: | ---: | ---: |\n| C# | Release | 28 | 3.846 ms (3.775-3.928) | 260 | 3.845 ms (3.774-3.926) | 1.00x |\n| C++ | `-O2` | 28 | 4.462 ms (4.439-4.524) | 224 | 4.455 ms (4.431-4.517) | 0.86x |\n| C++ | `-O3` | 28 | 4.419 ms (4.407-4.444) | 226 | 4.411 ms (4.399-4.436) | 0.87x |\n| C++ | `-O3 -march=native` | 28 | 4.096 ms (4.017-4.138) | 244 | 4.089 ms (4.009-4.130) | 0.94x |\n\n#### Single-Threaded\n\n| Implementation | Build | Wall avg | FPS | DebugTimings avg | Relative to C# |\n| --- | --- | ---: | ---: | ---: | ---: |\n| C# | Release | 46.706 ms (45.642-46.867) | 21 | 46.703 ms (45.640-46.864) | 1.00x |\n| C++ | `-O2` | 54.680 ms (54.479-55.037) | 18 | 54.679 ms (54.478-55.036) | 0.85x |\n| C++ | `-O3` | 54.222 ms (54.067-54.604) | 18 | 54.221 ms (54.066-54.604) | 0.86x |\n| C++ | `-O3 -march=native` | 47.701 ms (47.434-48.115) | 21 | 47.701 ms (47.433-48.115) | 0.98x |\n\n### Rotating Cube\n\nRotating hollow cube scene, deactivation enabled, 8001 dynamic bodies plus\none kinematic compound cube body.\n\n#### Multithreaded\n\n| Implementation | Build | Threads reported | Wall avg | FPS | DebugTimings avg | Relative to C# |\n| --- | --- | ---: | ---: | ---: | ---: | ---: |\n| C# | Release | 28 | 5.820 ms (5.702-6.073) | 172 | 5.819 ms (5.701-6.071) | 1.00x |\n| C++ | `-O2` | 28 | 6.320 ms (6.317-6.435) | 158 | 6.312 ms (6.309-6.427) | 0.92x |\n| C++ | `-O3` | 28 | 6.402 ms (6.322-6.405) | 156 | 6.394 ms (6.314-6.397) | 0.91x |\n| C++ | `-O3 -march=native` | 28 | 6.225 ms (6.135-6.370) | 161 | 6.217 ms (6.127-6.362) | 0.94x |\n\n#### Single-Threaded\n\n| Implementation | Build | Wall avg | FPS | DebugTimings avg | Relative to C# |\n| --- | --- | ---: | ---: | ---: | ---: |\n| C# | Release | 51.930 ms (50.430-52.053) | 19 | 51.927 ms (50.428-52.051) | 1.00x |\n| C++ | `-O2` | 75.449 ms (73.929-75.551) | 13 | 75.448 ms (73.928-75.550) | 0.69x |\n| C++ | `-O3` | 70.847 ms (70.762-75.992) | 14 | 70.846 ms (70.761-75.992) | 0.73x |\n| C++ | `-O3 -march=native` | 66.435 ms (66.364-68.108) | 15 | 66.435 ms (66.364-68.107) | 0.78x |\n\n## License\n\nThis project follows the license of the original Jitter Physics 2 project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotgiven688%2Fjitterphysics2cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotgiven688%2Fjitterphysics2cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotgiven688%2Fjitterphysics2cpp/lists"}