Box3D is a 3D physics engine written in C designed specifically for game development. Created by Erin Catto, the engine provides a comprehensive suite of physics simulation capabilities built on a data-oriented architecture optimized for performance at scale. The project has maintained steady interest with 5,722 stargazers as of the most recent tracking period, showing modest but consistent growth.
The collision system in Box3D supports continuous collision detection with multiple shape types including convex hulls, capsules, spheres, triangle meshes, and height fields. The engine handles multiple shapes per body, implements collision filtering, and provides ray casts, shape casts, and overlap queries. A sensor system and character mover are included to support common game development patterns. The physics simulation relies on a robust Soft Step rigid body solver with continuous physics handling for fast translations and rotations, island-based sleep optimization, and support for multiple joint types including revolute, prismatic, distance, motor, weld, and wheel joints. Joint limits, motors, springs, and friction are all configurable, with the engine tracking joint and contact forces plus body movement events and sleep notifications.
The engine is written in portable C17 and emphasizes extensive multithreading and SIMD optimization, making it particularly efficient for scenarios involving large numbers of bodies. Cross-platform determinism is maintained, and the engine supports recording and replay functionality. The samples application uses sokol for graphics rendering, supporting D3D11 on Windows, Metal on macOS, and OpenGL 4.5 on Linux, with an imgui-based graphical interface demonstrating features and performance characteristics.
Building is supported across Windows, Linux, macOS, and WebAssembly through CMake with preset configurations provided for streamlined compilation. The core library has no dependencies beyond the C runtime and libm on Unix systems. Documentation is generated with Doxygen and available in the docs directory. The project uses SSE2 and Neon SIMD instructions for performance, with an option to disable SIMD through the BOX3D_DISABLE_SIMD define.
According to GitGenius tracking data, the repository shows a median issue and pull request response latency of 19.2 hours with a mean of 79.6 hours across 53 tracked items. The primary contributor erincatto has logged 99 events, with cairnc and graeme-russell each contributing 5 events. The most active issue label is LLM with 8 occurrences, reflecting Catto's documented use of language models in unit tests, the samples application, code migration, build configuration, code reviews, and benchmarking, while maintaining that all other code is developed and written by him personally. The repository overlaps contributors with llvm/llvm-project, anuken/mindustry, and python/cpython. Pull requests are currently disabled in favor of issue-based feedback and community discussion through Discord and GitHub Discussions.