Fact-checked by Grok 2 weeks ago

Box2D

Box2D is a free and open-source 2D designed for , enabling realistic simulation of object movements, collisions, and interactions within game worlds. Developed by Erin Catto, a physics programmer who has worked at studios including and , Box2D originated from Catto's presentations at the Game Developers Conference (GDC). It began with the 2005 GDC tutorial on "Iterative Dynamics" and evolved into the first public release, Box2D Lite, accompanying the 2006 GDC session on "Sequential Impulses." The full Box2D library expanded on these foundations, becoming a feature-rich tool for simulation, and is now maintained under the with its hosted on . The engine is implemented in portable C17, supporting platforms such as Windows, , and macOS, and is optimized for real-time performance in games using (meters-kilograms-seconds) for scales typically between 0.1 and 10 meters for dynamic objects. Key features include continuous , a robust solver for constraints and (such as revolute, prismatic, and distance joints), support for multiple shapes per body, , sensors, and the ability to manage independent simulation worlds. It also incorporates advanced techniques like multithreading and SIMD optimizations for efficiency, while providing tools for contact events, joint limits, and motors to facilitate complex procedural animations and physics-based . Box2D has been integrated into numerous game engines and titles, powering physics in acclaimed games such as Crayon Physics Deluxe and serving as the core engine for the series, where it handles projectile trajectories, destruction, and environmental interactions. Its popularity stems from its balance of accuracy, stability, and ease of use, making it a staple for game development across and commercial projects, with ongoing updates as of version 3.1.1 (June 2025) to support modern hardware and programming practices.

History and Development

Origins and Initial Release

Box2D's development began with Erin Catto's presentation at the 2005 Game Developers Conference (GDC) on "Iterative Dynamics," which introduced foundational concepts for constraint-based physics simulations. Box2D was created by Catto, a software engineer at Crystal Dynamics who specialized in physics simulation for video games, including the engine for Tomb Raider: Legend. In 2006, Catto presented at the Game Developers Conference (GDC) on rigid body dynamics, introducing key concepts in constraint-based physics solvers to help game developers implement efficient simulations. Accompanying this GDC 2006 tutorial, Catto released Box2D Lite, a simplified designed as a demonstration tool to illustrate sequential impulses for handling collisions, , stacking, and joints. The engine emphasized fast and robust physics with minimal code, allowing developers to experiment with realistic object interactions in a environment without the overhead of full . The initial goals of Box2D centered on providing an accessible simulation framework for game developers, prioritizing stability in scenarios like object stacking and constraints over complex numerical methods, to enable realistic physics in resource-constrained game environments. As an educational resource, Box2D Lite quickly saw early adoption in game prototypes, transitioning from a tutorial demo into a more comprehensive library by to support broader development needs. On September 10, 2007, Catto open-sourced the full Box2D project on under the zlib/libpng license, marking its evolution into a freely available tool for the game development community.

Version History and Major Updates

Box2D's version history reflects iterative enhancements in stability, performance, and usability, with major releases building on the foundational v2.0 introduced in as a full engine expansion from the earlier Lite demonstration. Version 2.3, released in November 2013, delivered key stability improvements, including refined and solver robustness to reduce simulation artifacts in complex scenarios. In 2010, v2.1 facilitated the project's migration to Code for improved collaboration and distribution. A significant licensing shift occurred with v2.4.0 in July 2020, transitioning from the to the more permissive , which broadened adoption by simplifying integration into diverse projects. This was followed by v2.4.1 in October 2020, which included bug fixes. The final v2 release, v2.4.2 in August 2024, incorporated minor optimizations while marking the end of the v2 lineage to pave the way for a comprehensive overhaul. The transition to v3.0 in August 2024 represented a complete rewrite, shifting from C++ to C for better portability and maintainability, alongside a simplified API that streamlined body and fixture management. This version improved solver efficiency through algorithmic refinements and overhauled continuous collision detection, replacing legacy methods with a hybrid speculative and time-of-impact approach for more reliable fast-moving object handling. Subsequent updates refined v3, with v3.1 in April 2025 addressing from the initial rewrite, introducing enhanced joint types such as improved and wheel constraints, and adding support for custom SIMD instructions (/) to boost performance on modern hardware. Version 3.1.1, released in June 2025, included further bug fixes and minor adjustments for stability. These v3 updates yielded measurable performance gains, including a 20% in the core GJK collision , contributing to 20-30% faster overall simulations on average hardware in benchmark tests.

Technical Overview

Core Architecture

Box2D's core architecture centers on a rigid body simulation model that treats physical objects as with fixed shapes and constant mass distribution. Each body is defined by its , linear and , , and , and can be classified as dynamic (affected by forces and collisions), static (immovable), or kinematic (position-controlled). The simulation world serves as the central container, managing a collection of bodies, handling time advancement, and orchestrating broad-phase to identify potential interactions efficiently. The constraint solver forms the heart of Box2D's dynamics, employing the Soft Step solver in version 3, which uses sub-stepping and soft constraints to resolve and constraints arising from contacts and joints. This approach improves stability for high mass ratios, long chains, and large stacks compared to earlier versions. The solver operates in time where N is the number of constraints, enabling stable simulations of complex interactions. Version 3 also introduces multithreading for broad-phase and contact solving, along with SIMD optimizations ( by default, optional AVX2) for enhanced performance on modern hardware. Time advancement in Box2D follows a time-stepping with a fixed time step, commonly set to 1/60 seconds for 60 Hz simulations, to maintain and stability. It employs semi-implicit Euler , first updating velocities from accelerations (including and applied forces) and then positions from the new velocities, as expressed by the equations: \vec{v}_{n+1} = \vec{v}_n + \Delta t \cdot \vec{a}_n \vec{x}_{n+1} = \vec{x}_n + \Delta t \cdot \vec{v}_{n+1} where \vec{v} is linear velocity, \vec{x} is position, \Delta t is the time step, and \vec{a} is total acceleration. This approach, combined with sub-stepping for variable frame rates, prevents instability in high-speed scenarios. Broad-phase collision detection utilizes a dynamic tree, a balanced structure where each node represents an axis-aligned bounding box () enclosing child nodes or leaf shapes. This hierarchy enables efficient pairwise overlap queries by traversing the tree, achieving near O(n \log n) complexity for n objects instead of O(n^2), thus scaling well for large scenes with thousands of bodies. Updates to the tree occur incrementally as bodies move, minimizing rebuild costs. In version 3, the broad-phase supports multithreading for better scalability. Memory management in Box2D emphasizes through a stack allocator for temporary workspace during each simulation step, allocating a fixed-size (e.g., 100 KB) to avoid heap allocations and deallocations per . Persistent objects like and shapes use a allocator for larger, long-lived , while opaque IDs facilitate safe, cache-friendly access without direct pointers. This reduces fragmentation and latency in applications. The version 3 rewrite adopts a in portable , hiding internal data structures for better optimization.

Key Features and Capabilities

Box2D provides robust mechanisms, supporting both discrete and continuous methods to handle interactions between rigid bodies in 2D simulations. Discrete collision detection resolves overlaps at fixed time steps, while continuous detection in version 3 employs a hybrid speculative and time-of-impact (TOI) approach to prevent tunneling, particularly for fast-moving objects, with improved for worlds up to ~20 km. Supported shapes include circles, polygons limited to a maximum of 8 vertices, edges (segments), chains of edges, capsules, and rounded polygons (new in v3.0), allowing multiple shapes per body with collision filtering to selectively enable or disable interactions. Contact manifolds are generated to represent collision points and normals, facilitating impulse-based resolution for realistic responses. The engine offers a variety of joints and constraints to model mechanical connections between bodies, including revolute joints for rotational pivots, prismatic joints for sliding motion, distance joints to maintain a fixed separation, motor joints for applying drive forces (with motor added to distance joint in v3), and mouse joints. Additional joint types encompass weld and wheel joints, each supporting optional limits, motors with target velocities and maximum forces/torques, springs (added to many joints in v3, characterized by stiffness in Hertz and damping ratio), and friction. For the distance joint, the constraint enforces |\vec{r}_A - \vec{r}_B| = d, where \vec{r}_A and \vec{r}_B are anchor points on the connected bodies and d is the target distance; this is solved using the constraint solver to compute corrective impulses. Forces and effects in Box2D simulate realistic , with built-in support for global applied uniformly to dynamic bodies, as well as user-applied linear forces, torques, and impulses for precise control. is modeled using a single coefficient, with the solver simulating both static (sticking) and dynamic (sliding) behavior at contacts, while restitution coefficients ranging from 0 (perfectly inelastic) to 1 (perfectly ) determine bounciness during collisions. To optimize performance, the engine implements island-based sleeping, where inactive bodies—those with near-zero velocity and no external forces—are deactivated to reduce computational load until awakened by interactions. Sensors and queries enable efficient spatial testing without full simulation overhead. Ray casting traces lines through the world to detect intersections, useful for line-of-sight checks or targeting, returning hit points, normals, and fractions along the ray. Shape queries test for overlaps with existing bodies or fixtures, supporting broad-phase via a dynamic for . Sensor fixtures, which report overlaps without generating impulses, trigger begin/end events for proximity detection in logic. Version 3.1 introduces an improved system that operates independently of body type or sleep status, running at the end of updates for reliable, multithreaded, and deterministic touch events. Advanced capabilities extend Box2D's utility for complex simulations. Destructible can be achieved via fracturing algorithms that break polygons into shapes upon , maintaining physical by reattaching fragments with joints or discarding . These techniques leverage the core solver's velocity and position constraints for emergent behaviors like shattering objects. Version 3.1 adds an experimental mover using a geometric solver for precise control outside the main , useful for requiring custom character physics.

Implementation and Platforms

Programming Languages and Bindings

Box2D's native implementation is provided as a portable library since version 3.0, requiring a that supports or later, with header-only options available for easier integration. The core revolves around opaque handles such as b2WorldId for managing the physics , b2BodyId for representing rigid bodies, and shape creation functions like b2CreateCircleShape or b2CreatePolygonShape, replacing the earlier b2Fixture class from version 2.x. Bodies are defined using structures like b2BodyDef, which specify properties such as position, type, and linear velocity, before being created via factory functions like b2CreateBody. There are no official bindings beyond the native C , as the project maintainer focuses solely on the C implementation without support for wrappers in other languages. Community-driven ports extend Box2D's accessibility, including the binding box2d-python which supports core features of version 3.0 and is under active , while the older PyBox2D (version 2.3.x) targets version 2.x but has seen updates for partial v3 compatibility. For , the framework provides bindings via its gdx-box2d extension, which wraps the C library and supports version 3.1.1 as of recent updates. In C#, community efforts like Box2D-dotnet-bindings offer bindings for .NET languages (C#, F#, VB.NET) compatible with Box2D 3.x, building on earlier projects such as Box2DX for version 2.x. The API structure emphasizes a functional, handle-based design for advancing the simulation and object management. Developers advance the physics world using the b2World_Step function, typically called as b2World_Step(worldId, timeStep, subStepCount), where timeStep is the delta time in seconds, and subStepCount (recommended at 4) controls internal solver iterations for balancing accuracy and performance—a shift from version 2.x's explicit velocityIterations (10–20) and positionIterations (3–8) parameters. Object creation follows a definition-factory pattern, such as initializing a b2BodyDef, setting its fields (e.g., def.type = e_dynamicBody), and passing it to b2CreateBody(worldId, &def) to obtain a b2BodyId. Version 3.0 introduced significant API simplifications, including a full rewrite from C++ to C for better portability and ease of binding, while removing polymorphism in shapes (e.g., eliminating the b2Shape base class hierarchy) in favor of direct primitive creation functions and variant-like handling via unions or specific APIs for efficiency. This reduces overhead and callback complexity, with shapes now attached directly to bodies without intermediate fixtures, streamlining code for common use cases like polygon or circle colliders. Best practices for using the include adhering to units—meters for length, kilograms for mass, and seconds for time—to ensure consistent behavior, with typical object scales between 0.1 and 10 and world extents under 12 kilometers to avoid precision issues. For the solver, developers should tune the sub-step count based on the application's performance needs, starting with 4 sub-steps per frame to maintain stability without excessive computation, echoing the v2.x trade-off between velocity/position iterations for contact resolution accuracy versus .

Cross-Platform Support and Integration

Box2D, implemented in , provides native support for desktop platforms including Windows, , and macOS, where it can be built and run directly using standard C compilers compliant with C17. The library's core is designed for portability across these operating systems without requiring platform-specific modifications, enabling seamless compilation and execution in diverse development environments. For mobile development, Box2D extends compatibility to and primarily through community-maintained bindings and ports, allowing integration into cross-platform frameworks that target these ecosystems. Additionally, the library can be compiled to using for browser-based applications, though this is not officially supported in version 3.1. The build process leverages as the primary system for cross-compilation, facilitating straightforward configuration across supported platforms with options for shared or static libraries. Dependencies are kept minimal, with no external libraries required beyond a standard toolchain, which contributes to its footprint and ease of integration into various projects. Box2D's emphasizes self-containment, avoiding reliance on third-party components to ensure broad compatibility and reduce potential conflicts during deployment. Version 3.1.0, released in April 2025, includes enhancements such as a new sensor system and improvements like doubled continuous collision speed. Integration with popular game engines enhances Box2D's utility in cross-platform workflows. For , a low-level 2D physics API incorporating Box2D v3.1 is available in Unity 6.3 beta (as of September 2025), supporting Data-Oriented Technology Stack (DOTS) for high-performance simulations independent of GameObjects. In , GDExtension plugins provide direct access to Box2D features as a drop-in physics server replacement. Experimental integration exists in since version 4.3, enabling 2D physics capabilities though marked as unsupported for production use and based on Box2D 2.3.1. For Java-based development, includes a native wrapper around Box2D, supporting cross-platform deployment to desktop, mobile, and web targets. Performance optimizations in Box2D v3 further bolster its cross-platform viability, including SIMD instructions via custom implementations for x86 architectures and for processors, yielding significant speedups in vector operations. The engine also incorporates multithreading via , allowing simulations to leverage multiple cores for faster processing when integrated with a compatible task system, while adhering to guidelines that restrict concurrent writes to the world state to maintain stability. Under the , Box2D permits static or dynamic linking in commercial applications, requiring only the inclusion of the standard copyright and permission notice in distributions.

Applications and Impact

Notable Uses in Games and Software

Box2D has been instrumental in powering physics simulations for numerous mobile games, particularly those relying on dynamic interactions between objects. The 2009 release Angry Birds by utilized Box2D version 2 to handle projectile trajectories from the slingshot mechanic and the destructible structures of blocks and pig enclosures, enabling realistic collisions and fragmentation effects that became central to the game's puzzle-based gameplay. Similarly, the Badland series by Frogmind, starting with its 2013 mobile debut, employed Box2D for platforming elements, including character flight controls, environmental hazards, and multi-body interactions that simulate fluid-like movement through scrolling levels. On console and PC platforms, Box2D facilitated innovative puzzle mechanics in early titles. Crayon Physics Deluxe, released in 2009 by Petri Purho, integrated Box2D to simulate drawing-based interactions, where player-sketched lines acted as physical objects subject to and , allowing balls to reach goals through emergent physics behaviors. In Limbo (2010) by , Box2D governed environmental puzzles, such as swinging pendulums, collapsing structures, and character during climbs and falls, contributing to the game's eerie, physics-driven atmosphere without relying on scripted animations. Beyond games, Box2D supports prototyping in web-based tools, exemplified by the Box2D plugin released in December 2024, which integrates Box2D v3 into the HTML5 framework for rapid development of browser physics simulations in indie projects. Earlier browser games from , such as the Rubble Trouble series, leveraged Box2D for handling complex destruction and stacking mechanics in Flash-based physics puzzles. Box2D version 3, released in August 2024, saw early integrations in 2025 titles through frameworks like and , particularly for enhanced simulations. A key example of Box2D's impact is its role in enabling realistic effects, where connected rigid bodies and joints simulate limp, reactive character deaths without requiring developers to implement custom physics solvers. In presentations like Erin Catto's 2012 GDC talk, Box2D's joint system—using revolute and distance constraints—was demonstrated to create stable, variable animations that respond naturally to impacts, reducing workload while providing procedural variety in games. This approach, supported by Box2D's core features like sleeping bodies for performance, allowed developers to achieve high-fidelity simulations efficiently.

Community and Ecosystem

The Box2D project maintains an active official presence through its repository at erincatto/box2d, which serves as the primary hub for , releases, and community engagement. The repository has garnered significant popularity, exceeding 20,000 stars by 2025, reflecting its widespread adoption among developers. Comprehensive documentation is hosted at box2d.org, offering detailed manuals on core concepts like and simulation, interactive samples for experimentation, and migration guides to assist users transitioning between versions such as from v2.4 to v3.0. Community interaction occurs across multiple platforms, fostering discussion, troubleshooting, and feedback. The original Box2D Google Group, once a central , has been archived, with users directed to newer channels. The subreddit r/box2d provides a dedicated space for sharing projects, seeking advice, and discussing implementations. Additionally, an official server facilitates real-time collaboration, particularly for testing and feedback on version 3 developments. Contributions to Box2D emphasize quality and collaboration, with the project encouraging input through issues, discussions, and targeted pull requests during development cycles. The v3 release involved significant development efforts by the lead developer and community input. Lead developer Erin Catto sustains engagement through annual (GDC) talks and blog posts, such as the 2024 exploration of experimental Solver2D implementations for constraint solving. The ecosystem extends beyond the core library with educational and productivity tools that enhance usability. The integrated Testbed framework provides a suite of sample simulations, allowing developers to explore scenarios like and joint behaviors interactively, which is invaluable for learning and prototyping. Third-party extensions, such as the R.U.B.E (Really Useful Box2D Editor), enable visual world editing, joint configuration, and scene export directly compatible with Box2D, streamlining setup for complex simulations without manual coding. Looking ahead, Box2D remains vibrant, with version 3.1 released in April 2025 to refine and add features like enhanced character movement. As of June 2025, the latest version is 3.1.1. Originally launched in 2006, the engine continues to receive sustained updates, ensuring relevance in development through 2025 and beyond.

Derivatives and Forks

Box2D Lite, developed by Erin Catto in 2006 as a simplified demonstration for the Game Developers Conference (GDC) Physics Tutorial, served as the foundational prototype for the full Box2D library but is now deprecated in favor of subsequent versions. In 2024, Catto introduced Solver2D as an experimental project focused on prototyping and researching constraint solvers, emphasizing position constraint resolution after velocity constraints for improved stability; it remains non-production oriented. Among language ports, Google's LiquidFun extended Box2D version 2 with particle-based fluid and soft body simulations starting in 2013, enabling procedural animations and realistic until its maintenance concluded around 2019. JBox2D provides a direct port of Box2D, including LiquidFun features, and was actively maintained until around for applications like game development. Notable historical forks include Box2D-XNA, a C# adaptation from the 2010s tailored for Microsoft's XNA framework, which was used in MonoGame environments but is no longer actively maintained. More recently, Phaser Box2D integrates Box2D version 3 into JavaScript for the Phaser game framework, released in December 2024 to deliver high-performance web-based physics simulations. Older ports like Box2D.js (Emscripten-compiled from Box2D v2) enable JavaScript execution in browser environments, while newer WebAssembly adaptations such as box2d-wasm support v3 for modern browsers, enabling direct WebAssembly execution of the core engine. While engines like Chipmunk2D draw conceptual influences from Box2D's rigid body dynamics, they remain distinct implementations without direct forking. Recent derivatives include box2d3-wasm, a port of Box2D v3 for browser use, and integrations in engines like and , which updated to v3 in early 2025. By 2025, following the August 2024 release of Box2D version 3, numerous version 2 forks have begun migrating to the v3 codebase, resulting in over 15 active repositories across languages such as Go, , and C#, alongside adaptations.

Alternative 2D Physics Engines

Chipmunk2D is a lightweight, fast, and portable 2D rigid body physics library written in C, with strong bindings that make it particularly suitable for and macOS development. It serves as the official physics engine for the game framework, offering a simpler compared to Box2D, which facilitates quicker integration for games where overhead must be minimized. While Chipmunk2D supports essential features like , constraints, and basic s, it provides fewer advanced joint types than Box2D, such as limited options for complex mechanisms like pulleys or gears. Developers often note its edge in speed for resource-constrained environments, making it ideal for simpler 2D simulations over Box2D's more robust but computationally intensive solver. Matter.js is a fully JavaScript-based rigid body physics engine designed primarily for web browsers, eliminating the need for compilation or external dependencies and enabling seamless use in applications. Its and modular constraints system prioritize ease of use for interactive demos and , with built-in support for composites, composites, and interactions without requiring additional setup. In comparison to Box2D, Matter.js offers lower precision due to its constraint solver's approximations, which can lead to less stable stacking or high-velocity interactions, and benchmarks show it achieving only about 40% of Box2D.js's performance in stress tests involving numerous . This makes Matter.js better suited for browser-first prototypes or educational projects where rapid development trumps numerical accuracy. Bump.lua is a minimalistic Lua library focused on axis-aligned bounding box (AABB) collision detection and resolution, tailored for lightweight 2D games built in scripting environments like LÖVE2D. It excels in simplicity and scriptability, handling tunneling prevention and basic response without the need for a full simulation loop, making it ideal for tile-based or top-down games where rotation is limited. Unlike comprehensive engines such as , Bump.lua lacks , advanced joints, or shape variety beyond rectangles, positioning it as a collision-only tool rather than a complete physics solution for scenarios demanding realistic momentum or forces. In broader comparisons, Box2D stands out for its superior accuracy and in constraint solving, particularly in tests involving stacked objects or continuous , where alternatives like Chipmunk2D may sacrifice some precision for speed and Matter.js trades for . Chipmunk2D and Bump.lua emphasize performance and integration— the former for mobile efficiency and the latter for scripting—while Matter.js prioritizes developer ease in ecosystems, often at the expense of Box2D's rigorous numerical fidelity. These differences guide selection based on project scale, with Box2D favored for demanding simulations requiring long-term .

References

  1. [1]
    Overview - Box2D
    Box2D is a 2D rigid body simulation library for games. Programmers can use it in their games to make objects move in realistic ways and make the game world ...Reference · Hello Box2D · Samples · Collision
  2. [2]
    Publications :: Box2D
    ### Summary of Box2D Creation and Development
  3. [3]
    Erin Catto (Box2D) Interview - YouTube
    May 18, 2025 · Erin got his start in the game industry at Crystal Dynamics where he wrote the physics engine for Tomb Raider: Legend.Missing: history GDC<|control11|><|separator|>
  4. [4]
    [PDF] Iterative Dynamics with Temporal Coherence - Box2D
    Jun 5, 2005 · The constraint solver needs to handle redundant constraints. For example, in our engine, each box is often supported by four points. 20. Page ...
  5. [5]
    [PDF] Fast and Simple Physics using Sequential Impulses - Box2D
    Erin Catto. Crystal Dynamics. Page 2. Physics Engine Checklist. ☢ Collision and contact. ☢ Friction: static and dynamic. ☢ Stacking. ☢ Joints. ☢ Fast, simple ...Missing: origins | Show results with:origins
  6. [6]
    erincatto/box2d-lite: A small 2D physics engine - GitHub
    Box2D-Lite is a small 2D physics engine. It was developed for the 2006 GDC Physics Tutorial. This is the original version of the larger Box2D library.
  7. [7]
    Box2D is a 2D physics engine for games - GitHub
    The Box2D library and samples build and run on Windows, Linux, and Mac. You will need a compiler that supports C17 to build the Box2D library.
  8. [8]
    FAQ - Box2D
    What is Box2D? Box2D is a feature rich 2D rigid body physics engine, written in C17 by Erin Catto. It has been used in many games and in many game engines.
  9. [9]
    Physics with Box2D - Impact - ImpactJS
    Box2D is a physics engine, originally written in C++, ported to ActionScript and used in hundreds of games, including the incredibly popular Angry Birds.<|control11|><|separator|>
  10. [10]
    Blog Archive » Erin Catto's Box2D Updated - Kloonigames
    Sep 11, 2007 · Originally Box2D was a demo for Erin's GDC presentation about doing game physics using sequential impulses. ... December 2006 · November 2006 ...Missing: origins | Show results with:origins
  11. [11]
    Box2D download | SourceForge.net
    Rating 3.7 (6) · Free · GameDownload Box2D for free. Box2D is no longer developed on SF. However, I'm now using SF for downloads.Missing: Erin Catto
  12. [12]
    Releases for Box2D : Erin Catto - Internet Archive
    Feb 16, 2021 · Box2D is a physics engine developed by Erin Catto, available under the MIT License since the 2.4.0 version (previous versions available ...Missing: GDC 2006
  13. [13]
    box2d - Archive - Google Code
    box2d ; Box2D_v2.2.1.zip, Box2D Release 2.2.1 Type-Source, Sep 17, 2011 ; Box2D_v2.2.0.zip, Box2D Release 2.2.0 Type-Archive, Aug 28, 2011 ...Missing: history | Show results with:history
  14. [14]
    Box2D 2.4.0 Released - GameFromScratch.com
    Aug 10, 2020 · Among other changes the 2.4.0 release saw a change from the ZLib open source license to the very similar MIT open source license. Other ...
  15. [15]
    Releasing Box2D 3.0
    Aug 9, 2024 · Version 3.0 completely overhauls continuous collision and response. It uses a hybrid speculative and time of impact approach.Speculative Collision · Performance · Other Improvements
  16. [16]
    Box2D 3.1
    Apr 19, 2025 · Version 3.0 was released about 8 months ago. It was a huge update and it needed some refinement. Version 3.1 addresses most of the bugs and ...Missing: history | Show results with:history
  17. [17]
    Box2D Benchmarks
    The AMD Ryzen 9 7950x is locked at 4.42GHz and threads are given affinity to the first CCD. The M2 is allowed to boost so it appears faster than the AMD CPU.Missing: v3 20-30%
  18. [18]
    Hello Box2D
    Box2D is a Hello World unit test written in C. The test creates a large ground box and a small dynamic box.
  19. [19]
    [PDF] Modeling and Solving Constraints - Box2D
    ○ Building a Constraint Solver. ○ Sequential Impulses. Page 4 ... We use a constraint solver to compute lambda. ○ More on this later. Page 17 ...
  20. [20]
    Simulation - Box2D
    If contacts were computed at the end of the time step then new contact points would not be known to the constraint solver and shapes would sink into each other.
  21. [21]
  22. [22]
    Dynamic Tree - Box2D
    The dynamic tree is a binary AABB tree to organize and query large numbers of geometric objects. Box2D uses the dynamic tree internally to sort collision shapes ...
  23. [23]
    [PDF] Dynamic AABB Trees - Box2D
    Suppose the shapes are complex. Then it might be worth checking whether the ray intersects the AABB before testing the more complex object.Missing: broad- | Show results with:broad-
  24. [24]
    Common Module - Box2D
    While executing a time step, Box2D needs some temporary workspace memory. For this, it uses a stack allocator called b2StackAllocator to avoid per-step heap ...
  25. [25]
    Classical mechanics in C++ - overview of the Box2D engine - C++95
    Aug 9, 2022 · 💾 Stack allocator (b2StackAllocator) - the stack holds 100kb of memory, objects are constructed in this chunk of memory. It allows to avoid ...
  26. [26]
    Migration Guide - Box2D
    Box2D version 3.0 is a full rewrite. You can read some background information here. Here are the highlights that affect the API: moved from C++ to C.
  27. [27]
    box2d-python - PyPI
    Mar 9, 2025 · Currently supports some of the Box2D v3.0 functionality with active development ongoing. Full API Documentation | Box2D Project ...Missing: PyBox2D | Show results with:PyBox2D
  28. [28]
    libgdx/gdx-box2d - GitHub
    This project contains java bindings for the v3.1.1 release of Box2D. The project is build from commit 8c661469c9507d3ad6fbd2fea3f1aa71669c2fe3.
  29. [29]
  30. [30]
    v3.1 Release Notes - Box2D
    Cross-platform determinism; Custom SSE2 and Neon for significantly improved ... Initial Emscripten support. Generated by doxygen 1.13.2.
  31. [31]
    Low-level 2D Physics in Unity 6.3 Beta
    Sep 12, 2025 · Box2D has cross-platform determinism as of version 3.1. I integrated Box2D into Unity, I'm very familiar with what it provides. :wink: Please:.
  32. [32]
    C++ Godot Extension that integrates the Box2D physics engine.
    Jun 29, 2024 · A Box2D physics server for Godot Engine, implemented as a GDExtension. Table of Contents. Limitations; Differences; Supported Platforms ...
  33. [33]
    Unreal Engine 4.3 Release!
    New: Added initial experimental integration of Box2D 2.3.1, and various associated changes to enable 2D physics in the engine. This is a totally unsupported ...
  34. [34]
    Box2d - libGDX
    The Box2D implementation in libGDX is a thin Java wrapper around the C++ engine. Therefore, their documentation may come in handy. Box2D is an extension and not ...
  35. [35]
    Foundations - Box2D
    Box2D provides minimal base functionality for allocation hooks and vector math. The C interface allows most runtime data and types to be defined internally.Missing: stack | Show results with:stack
  36. [36]
    Box2D - Rovio
    Box2D. Copyright (c) 2006-2010 Erin Catto http://www.gphysics.com. This software is provided 'as-is', without any express or implied warranty.
  37. [37]
    Creator Of Angry Birds' Physics Engine Calls Out Rovio For Not ...
    Feb 28, 2011 · Box2D is a great piece of software. Erin, in the Box2d forums: Just to be clear, I did not declare that Angry Birds uses Box2D or demand that ...
  38. [38]
    Badland: Game of the Year Edition - PCGamingWiki
    Aug 25, 2025 · Linux. Middleware • Link. Middleware, Notes. Physics, Box2D. Audio, FMOD. Input, SDL2. Multiplayer, Steamworks, Used for leaderboards. System ...
  39. [39]
    Badland series - MobyGames
    Physics Engine: Box2D · Rugrats licensees · Wild Thornberrys licensees. 5 Games ... Badland: Game of the Year Edition, 2015, Windows, PlayStation 4 (+9 more) ...
  40. [40]
    Blog Archive » Crayon Physics - Kloonigames
    Jun 1, 2007 · The goal of the game is to move the red ball so that it collects the stars. You can cause the red ball to move by drawing physical objects. With ...Missing: early | Show results with:early
  41. [41]
    Crayon Physics Deluxe - PCGamingWiki
    Aug 26, 2025 · January 7, 2009. macOS (OS X), July 26, 2011. Linux, July 26, 2011 ... "The game uses Erin Catto's Box2D physics engine and for the rest of ...
  42. [42]
    Visual Effects in “Limbo” by Playdead - Adam Kehl
    Mar 25, 2017 · Limbo uses Box2D and OpenGL for the in-game effects. This system works in real time, but I've replicated it in Photoshop and uploaded the ...
  43. [43]
    Limbo | Yogscast Wiki - Fandom
    Limbo is a 2D side scroller, incorporating the physics system Box2D to govern environmental objects and the player character. The player guides an unnamed ...
  44. [44]
    Phaser Box2D Released
    Dec 23, 2024 · Phaser Box2D Released. A free, high-performance, industry-standard 2D physics engine built on Box2D v3. Published on 23 Dec 2024 ...Packed With Features You'll... · Hands-On Fun With 50+... · Made For Phaser, Open To...
  45. [45]
    Flash Games Programmer Jobs at Nitrome
    Play free online Flash games, retro games, arcade games ... Also use of tools such Box 2d, Papervision/Away 3D would be desirable but not required.
  46. [46]
    Is mutiny made using Box2d Engine? : r/Nitrome - Reddit
    Jul 7, 2024 · To my knowledge no. Checking the code will usually show that but Mutiny didn't bring anything up for that. All the Rubble Trouble's do though, ...Is Box2D a good solution for platformer style game physics? - RedditDo you know any 2D games with nice rope physics? - RedditMore results from www.reddit.com
  47. [47]
    box2d v2.3.0 vs box2d v3.1 in Solar2d Game Engine - Physics
    Box2D 3.1 has significant performance improvements over the older v2.3.0 in Solar2D, but may not be seamlessly compatible in behavior.Missing: 2012 | Show results with:2012
  48. [48]
    [PDF] Diablo 3 Ragdolls - Box2D
    From an artistic point of view, ragdolls allow for lots of death variation and reduce the animator workload.
  49. [49]
    Box2D Discord Server
    Jun 24, 2018 · Hi All! I created a Box2D server on Discord. Discord On a related note, I'm considering locking the forums because I'd rather spend my ...Missing: Google Group Reddit
  50. [50]
    r/box2d - Reddit
    This is going to be asking for a lot, but would someone be willing to meet in a discord call to help me get things up and running? I'm trying to integrate Box2d ...Missing: forums Google Group
  51. [51]
    Solver2D - Box2D
    Feb 5, 2024 · I presented soft constraints at the GDC here. I view soft constraints as an evolution of Baumgarte Stabilization ... © 2025 Erin Catto.
  52. [52]
    Samples - Box2D
    GUI for selecting samples, parameter tuning, and debug drawing options; Pause and single step simulation; Multithreading and performance data. Box2D Samples.
  53. [53]
    R.U.B.E Box2D editor - iforce2d
    This editor allows you to graphically manipulate a Box2D world and save it to a file. You can then load the saved file in your game/app and run the world.Missing: ecosystem | Show results with:ecosystem
  54. [54]
    About - Box2D
    I'm Erin Catto. I work in the video game industry. I also created Box2D, a 2D physics engine for games. I use this blog to give updates on Box2D and write about ...Missing: history GDC
  55. [55]
  56. [56]
    Welcome to LiquidFun! - 2D physics engine for games - GitHub
    LiquidFun is an extension of Box2D. It adds a particle based fluid and soft body simulation to the rigid body functionality of Box2D. LiquidFun can be built ...
  57. [57]
    jbox2d/jbox2d: a 2d Java physics engine, native java port of ... - GitHub
    JBox2d is a Java port of the C++ physics engines LiquidFun and Box2d. If you're looking for help, see the wiki or come visit us at the Java Box2d subforum.
  58. [58]
    JBox2D: A Java Physics Engine
    For documentation, you can always refer to the included Javadocs, but JBox2D is very closely related to the C++ Box2D, so please see the C++ documentation at ...
  59. [59]
    Box2D.XNA : a great 2D physics engine - Frozax Games
    Feb 5, 2010 · Box2D is a 2D physics engine created by Erin Catto. On Win/Mac, I used a very early version of Box2D (it was released nearly two years ago!)
  60. [60]
    phaserjs/phaser-box2d - GitHub
    The main reason is because on August 12th 2024 Box2D version 3.0 was released. This is was a brand-new version and is the one that we converted. The others ...
  61. [61]
  62. [62]
    oliverbestmann/box2d-go: Golang port of erin catto's great ... - GitHub
    This is a mainly automated Golang port of Box2D v3. The original C code is transpiled into Go using modernc.org/ccgo/v4. Some post-processing creates a ...
  63. [63]
  64. [64]
    slembcke/Chipmunk2D: A fast and lightweight 2D game ... - GitHub
    Chipmunk2D is a simple, lightweight, fast and portable 2D rigid body physics library written in C. It's licensed under the unrestrictive, OSI approved MIT ...
  65. [65]
    Chipmunk2D Physics
    Chipmunk2D is the official physics engine of Cocos2d, featuring full. Objective-C integration! We have many Cocos2d tutorials both for free and Pro Chipmunk2D.Documentation · Downloads · Bindings and Ports · About Chipmunk
  66. [66]
    Chipmunk Physics or Box2D for C++ 2D GameEngine?
    Apr 25, 2010 · I personally use Box2D and my experience has been fantastic so far. Also, I think Box2D has a different (possibly larger) set of joint types, so ...For collision detection only, is Chipmunk or Box2d the better tool?Does Chipmunk support continuous collision detection yet?More results from stackoverflow.comMissing: comparison | Show results with:comparison
  67. [67]
    Top 9 Open Source 2D Physics Engines Compared - Daily.dev
    Sep 7, 2024 · Bindings for many programming languages. Documentation and Examples ... Familiarize yourself with Box2D documentation, as it can help understand ...
  68. [68]
    The performance is worse than box2d.js · Issue #608 · liabru/matter-js
    Apr 26, 2018 · I found the performance of matter.js is worse than box2d.js (only 40%). There is a test I created: http://fatidol.com/phy-benchmark/.
  69. [69]
    PhysX SDK - Latest Features & Libraries - NVIDIA Developer
    NVIDIA PhysX is a powerful, open-source multi-physics SDK that provides scalable simulation and modeling capabilities for robotics and autonomous vehicle ...
  70. [70]
    Unity's physx a lot slower than box2D it seems....
    Sep 24, 2011 · Comparing the two is not exactly fair cause physx as any 3D physics is doomed to lose, the overhead of 3D spatial tree management is on a whole ...Missing: alternative | Show results with:alternative
  71. [71]
    kikito/bump.lua: A collision detection library for Lua - GitHub
    Lua collision-detection library for axis-aligned rectangles. Its main features are: bump.lua only does axis-aligned bounding-box (AABB) collisions.
  72. [72]
    bump - LuaRocks
    Bump is a library for for resolving collisions between axis-aligned bounding boxes (AABBs). It is ideal for simple games that require non-realistic physics.
  73. [73]
    Bump in Defold - Questions
    Apr 13, 2018 · Box2D deals with a full simulation for any shape, whereas Bump deals with collisions and basic physics for non-rotated rectangles only. Box2D ...