<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq" -->

---
title: Releasing Box2D 3.0 :: Box2D | daily.dev
description: Box2D 3.0 has shipped after 18 months of development, rewritten entirely in C from C++. The release overhauls continuous collision with a new...
canonical: https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Releasing Box2D 3.0 :: Box2D | daily.dev
og:description: Box2D 3.0 has shipped after 18 months of development, rewritten entirely in C from C++. The release overhauls continuous collision with a new...
og:url: https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq
og:image: https://api.daily.dev/og/posts/cMZnyZ3QQ.png
og:image:alt: Releasing Box2D 3.0 :: Box2D
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Releasing Box2D 3.0 :: Box2D

**[
        
            Box2D 
        
    ](https://daily.dev/sources/box2d)** · 6 min read · 0 upvotes · 0 comments

## Summary

Box2D 3.0 has shipped after 18 months of development, rewritten entirely in C from C++. The release overhauls continuous collision with a new speculative/time-of-impact hybrid approach, introduces a new ID-based API replacing pointers, adds capsule shapes and rounded polygons, and includes a new 'Soft Step' solver based on soft constraints and sub-stepping. Performance work focused on multithreading via graph coloring and AVX2 SIMD for the contact solver, making v3 more than twice as fast single-threaded as v2.4. Pulley and gear joints were removed for future rework, and precision improvements now support simulation worlds up to roughly 20 kilometers.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://box2d.org/posts/2024/08/releasing-box2d-3.0>

## Questions this post answers

### What changed in Box2D 3.0 compared to version 2.4?

Box2D 3.0 was rewritten entirely in C instead of C++, replacing the old class-based API with an ID-based API of enums, structs, and functions. It overhauls continuous collision with a hybrid speculative and time-of-impact approach, adds capsule shapes and rounded polygons, introduces a new solver called Soft Step, and removes the pulley and gear joints for future rework.

_Track major library rewrites like this one before planning a Box2D upgrade, with daily.dev._

### How much faster is Box2D 3.0 than Box2D 2.4?

Box2D 3.0 is more than twice as fast single-threaded compared to version 2.4, mainly due to its data-oriented design and use of SIMD. Multithreading performance also improved through graph coloring for the contact solver, with AVX2 vectorization used since 2D body state fits conveniently in 32 bytes for 256-bit AVX registers.

_Follow performance benchmarks like Box2D's when deciding on a physics engine, with daily.dev._

### Why did Box2D switch from C++ to C for version 3.0?

The switch to C was made because it fits the author's natural programming style, lets development focus on algorithms and data structures over language features, and compiles very fast. The main downside noted is that MSVC lags behind the current C standard, making things like multithreading harder than they should be.

_Weigh language trade-offs like C versus C++ for systems libraries with daily.dev._

## Similar posts on daily.dev

- [Box3D Debuts As New Open-Source 3D Physics Engine](https://daily.dev/posts/box3d-debuts-as-new-open-source-3d-physics-engine-xsk1j9ymw) · Phoronix · 0 upvotes · 0 comments
- [Announcing Box3D :: Box2D](https://daily.dev/posts/announcing-box3d-box2d-mu8ehdvki) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#c](https://daily.dev/tags/c)

[View this post on daily.dev](https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Releasing Box2D 3.0 :: Box2D","url":"https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq"},"datePublished":"2026-08-23T12:16:55.663Z","dateModified":"2026-08-23T12:17:49.133Z","description":"Box2D 3.0 has shipped after 18 months of development, rewritten entirely in C from C++. The release overhauls continuous collision with a new...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/505d15aa9524c6364509ec86697989bc?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/505d15aa9524c6364509ec86697989bc?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"\n        \n            Box2D \n        \n    ","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"\n        \n            Box2D \n        \n    ","logo":"https://media.daily.dev/image/upload/s--fmoS1AL5--/f_auto,q_auto/v1787487406/logos/box2d?_a=BAMAMicg0","url":"https://daily.dev/sources/box2d"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"\n        \n            Box2D \n        \n    ","item":"https://daily.dev/sources/box2d"},{"@type":"ListItem","position":3,"name":"Releasing Box2D 3.0 :: Box2D"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/releasing-box2d-3-0-box2d-cmznyz3qq#faq","mainEntity":[{"@type":"Question","name":"What changed in Box2D 3.0 compared to version 2.4?","acceptedAnswer":{"@type":"Answer","text":"Box2D 3.0 was rewritten entirely in C instead of C++, replacing the old class-based API with an ID-based API of enums, structs, and functions. It overhauls continuous collision with a hybrid speculative and time-of-impact approach, adds capsule shapes and rounded polygons, introduces a new solver called Soft Step, and removes the pulley and gear joints for future rework. Track major library rewrites like this one before planning a Box2D upgrade, with daily.dev."}},{"@type":"Question","name":"How much faster is Box2D 3.0 than Box2D 2.4?","acceptedAnswer":{"@type":"Answer","text":"Box2D 3.0 is more than twice as fast single-threaded compared to version 2.4, mainly due to its data-oriented design and use of SIMD. Multithreading performance also improved through graph coloring for the contact solver, with AVX2 vectorization used since 2D body state fits conveniently in 32 bytes for 256-bit AVX registers. Follow performance benchmarks like Box2D's when deciding on a physics engine, with daily.dev."}},{"@type":"Question","name":"Why did Box2D switch from C++ to C for version 3.0?","acceptedAnswer":{"@type":"Answer","text":"The switch to C was made because it fits the author's natural programming style, lets development focus on algorithms and data structures over language features, and compiles very fast. The main downside noted is that MSVC lags behind the current C standard, making things like multithreading harder than they should be. Weigh language trade-offs like C versus C++ for systems libraries with daily.dev."}}]}
```

