{"id":51616227,"url":"https://github.com/erincatto/box3d","last_synced_at":"2026-07-15T05:01:02.043Z","repository":{"id":368700124,"uuid":"1234928623","full_name":"erincatto/box3d","owner":"erincatto","description":"Box3D is a 3D physics engine for games","archived":false,"fork":false,"pushed_at":"2026-07-10T18:36:59.000Z","size":2931,"stargazers_count":4932,"open_issues_count":12,"forks_count":214,"subscribers_count":36,"default_branch":"main","last_synced_at":"2026-07-10T20:13:43.157Z","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/erincatto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["erincatto"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2026-05-10T20:26:19.000Z","updated_at":"2026-07-10T20:08:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/erincatto/box3d","commit_stats":null,"previous_names":["erincatto/box3d"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/erincatto/box3d","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erincatto%2Fbox3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erincatto%2Fbox3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erincatto%2Fbox3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erincatto%2Fbox3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erincatto","download_url":"https://codeload.github.com/erincatto/box3d/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erincatto%2Fbox3d/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35491351,"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-07-15T02:00:06.706Z","response_time":131,"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-07-12T14:00:20.661Z","updated_at":"2026-07-15T05:01:02.028Z","avatar_url":"https://github.com/erincatto.png","language":"C","funding_links":["https://github.com/sponsors/erincatto"],"categories":["Libraries","C"],"sub_categories":["C++"],"readme":"# Box3D\n\n[![Build Status](https://github.com/erincatto/box3d/actions/workflows/build.yml/badge.svg)](https://github.com/erincatto/box3d/actions)\n[![CLA assistant](https://cla-assistant.io/readme/badge/erincatto/box3d)](https://cla-assistant.io/erincatto/box3d)\n\n![Box3D Logo](https://box2d.org/images/logo.svg)\n\nBox3D is a 3D physics engine for games.\n\n[![Introducing Box3D](https://img.youtube.com/vi/jr_Fzl2XwKU/maxresdefault.jpg)](https://www.youtube.com/watch?v=jr_Fzl2XwKU)\n\n## Features\n\n### Collision\n\n- Continuous collision detection\n- Contact events\n- Convex hulls, capsules, spheres, triangle meshes, and height fields\n- Multiple shapes per body\n- Collision filtering\n- Ray casts, shape casts, and overlap queries\n- Sensor system\n- Character mover\n\n### Physics\n\n- Robust _Soft Step_ rigid body solver\n- Continuous physics for fast translations and rotations\n- Island based sleep\n- Revolute, prismatic, distance, motor, weld, and wheel joints\n- Joint limits, motors, springs, and friction\n- Joint and contact forces\n- Body movement events and sleep notification\n\n### System\n\n- Data-oriented design\n- Written in portable C17\n- Extensive multithreading and SIMD\n- Optimized for large piles of bodies\n- Cross platform determinism\n- Recording and replay\n\n### Samples\n\n- Uses sokol to run with D3D11 on Windows, Metal on macOS, and OpenGL 4.5 on Linux.\n- Graphical user interface with imgui.\n- Many samples to demonstrate features and performance.\n\n## Building all platforms\n\n- Install [CMake](https://cmake.org/)\n- Install [git](https://git-scm.com/)\n- Ensure these run from the command line\n\n## Building with CMake presets (recommended)\n\nThis uses the presets in `CMakePresets.json`.\n\n- Windows: `cmake --preset windows` then `cmake --build --preset windows-release`\n- Linux: `cmake --preset linux-release` then `cmake --build --preset linux-release`\n- macOS: `cmake --preset macos` then `cmake --build --preset macos-release`\n\nRun the samples app (must be in the Box3D directory).\n\n- Windows: `.\\build\\bin\\Release\\samples.exe`\n- Linux: `./build/bin/samples`\n- macOS: `./build/bin/Release/samples`\n\n## Building for Visual Studio\n\n- Install [Visual Studio](https://visualstudio.microsoft.com/)\n- Run `build_vs2026.bat`\n- Open and build `build/box3d.slnx`\n\n## Building for Linux\n\n- Run `build.sh` from a bash shell\n- Results are in the build sub-folder\n\n## Building for Xcode\n\n- mkdir build\n- cd build\n- cmake -G Xcode ..\n- Open `box3d.xcodeproj`\n- Select the samples scheme\n- Build and run the samples\n\n## Building for Web\n\n- [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html)\n- `emcmake cmake -B build -DBOX3D_SAMPLES=OFF`\n- `cmake --build build`\n\nBox3D uses SSE2 with WebAssembly. Define `BOX3D_DISABLE_SIMD` to disable SSE2.\n\n## Building and installing\n\n- mkdir build\n- cd build\n- cmake ..\n- cmake --build . --config Release\n- cmake --install . (might need sudo)\n\n## Using Box3D in your project\n\nThe core library has no dependencies beyond the C runtime (and `libm` on Unix). Linking it\ngives you the `box3d::box3d` target.\n\nI recommend to use FetchContent:\n\n```cmake\ninclude(FetchContent)\nFetchContent_Declare(box3d\n  GIT_REPOSITORY https://github.com/erincatto/box3d.git\n  GIT_TAG v0.1.0)\nFetchContent_MakeAvailable(box3d)\n\ntarget_link_libraries(my_app PRIVATE box3d::box3d)\n```\n\nFor a vendored copy or git submodule, point `add_subdirectory` at it:\n\n```cmake\nadd_subdirectory(extern/box3d)\n\ntarget_link_libraries(my_app PRIVATE box3d::box3d)\n```\n\nTo use a copy installed with `cmake --install`, find the package:\n\n```cmake\nfind_package(box3d 0.1 REQUIRED)\n\ntarget_link_libraries(my_app PRIVATE box3d::box3d)\n```\n\nSee [`docs/hello.md`](docs/hello.md) for a minimal first program.\n\n## Compatibility\n\nThe Box3D library and samples build and run on Windows, Linux, and Mac.\n\nYou will need a compiler that supports C17 to build the Box3D library.\n\nYou will need a compiler that supports C++20 to build the samples.\n\nBox3D uses SSE2 and Neon SIMD math to improve performance. SIMD can be disabled by defining `BOX3D_DISABLE_SIMD`.\n\n## Documentation\n\nThe user manual lives in [`docs/`](docs/) and is built with Doxygen. Enable the `BOX3D_DOCS` CMake option and build the `doc` target.\n\n## Community\n\n- [Discord](https://discord.gg/NKYgCBP)\n\n## Contributing\n\nPull requests are currently disabled. Instead, please file an issue for bugs or feature requests. For support, please visit the Discord server.\n\n## Giving feedback\n\nPlease file an issue or start a chat on discord. You can also use [GitHub Discussions](https://github.com/erincatto/box3d/discussions).\n\n## License\n\nBox3D is developed by Erin Catto and uses the [MIT license](https://en.wikipedia.org/wiki/MIT_License).\n\n## Sponsorship\n\nSupport development of Box3D through [Github Sponsors](https://github.com/sponsors/erincatto).\n\nPlease consider starring this repository and subscribing to my [YouTube channel](https://www.youtube.com/@erin_catto).\n\n## LLM Usage\n\nLLMs are used in the following areas:\n\n- unit tests\n- samples app\n- migrating code between Box2D and Box3D\n- build configuration\n- code reviews\n- benchmarking\n\nElsewhere all code is developed and written by me. I take responsibility for every line of code in Box2D/3D.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferincatto%2Fbox3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferincatto%2Fbox3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferincatto%2Fbox3d/lists"}