erincatto/box3d

Box3D is a 3D physics engine for games

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 15 minutes ago
Added to GitGenius on July 31st, 2026
Created on May 10th, 2026
Open Issues & Pull Requests: 16 (+0)
GitHub issues: Enabled
Number of forks: 341
Total Stargazers: 6,420 (+0)
Total Subscribers: 50 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 39.4 hours
Mean response time: 6.0 days
90th percentile: 15.8 days
Tracked items: 69

How this project is maintained

About 10% of issues opened in the past year have never received a reply. 82% of issues opened in the past year have been closed, leaving a working backlog. Three people close 95% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 14
New in 7 days: 3
Closed in 7 days: 7
Avg open age: 10 days
Stale 30+ days: 10
Stale 90+ days: 0

Recent activity

Opened in 7 days: 2
Closed in 7 days: 7
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • LLM (10)
  • bug (1)
  • enhancement (1)
  • wontfix (1)

Most active issues this week

Sign in to see which issues are moving.

Detailed Description

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 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.

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.