I used to work at Rovio (the creator of Angry Birds). Everyone was telling the story of a talk given by Peter Vesterbacka, the head of marketing. When it was time for questions, a man from the audience asked what physics engine the game uses. Vesterbacka gives the correct answer, Box2D, to which the person replied with another question. "Why isn't it mentioned in the credits? And by the way, I'm Erin Catto, the creator of Box2D." To this Vesterbacka replied "Come talk to me after the show". Maybe that's when Erin was given the hoodie? Also, his name was soon added to the credits.
But one thing amazed us all. It was impressive that the marketing guy knew which physics engine was used!
gregsadetsky 4 hours ago [-]
To the larger point, do you know if Rovio did support/pay Eric in any other way than that hoodie?
Angry Birds generated $500M [0], supposedly.
I would also not be surprised if the Rovio developers, designers, testers, etc. who worked on this game did not get a share of that $500M pie - I actually assume they didn't.
But still, you know. Dare I say it - what about "fairness"? :-)
I find it odd how we frame fairness in regards to open source software. He licensed his software as MIT. It says anyone can you use it without owing the author anything. So how is it unfair?
To be clear, I think that open source maintainers deserve much more, but I don't understand why we rarely inspect the licenses as the source of the problem.
nananana9 3 hours ago [-]
Well there's this little pesky thing in the MIT license:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
That's what he was asking for, a mention in the credits.
sosodev 2 hours ago [-]
He got his name in the credits. The question was if he is owed anything else. The contract he created says he was not. I’m simply suggesting he might need a different contract.
singpolyma3 1 hours ago [-]
Only if he wants to force something different. Which it seems he does not.
SiempreViernes 2 hours ago [-]
Since he eventually got the credit, your unfairness argument better build entirely on the damage the creator suffered by the delay of his credit.
LeBit 3 hours ago [-]
If I made 500M$ using an Open Source library and didn’t send at least 1M$ to the author, I would be an objectively bad person.
sosodev 2 hours ago [-]
That’s a fine perspective, but the whole point of law is to guarantee outcomes. The license could easily say “if you make more than $500M, you must pay me $1M”. Why is that not an acceptable solution here?
guyomes 2 hours ago [-]
An interesting approach is the dual GPL and commercial license. This is used for example by the CGAL geometry library [1]. In this case, a user of the library has the choice of either paying for the library, or open sourcing the code of their software.
I find this whole conversation baffling. Licenses and contracts are not a replacement for being a decent person.
SiempreViernes 2 hours ago [-]
Sure, but contracts is the remedy society has developed to the problem that there are lots of indecent people around (not to mention that reasonable persons can disagree without being unreasonable).
singpolyma3 1 hours ago [-]
Only if you can afford to sue
gafferongames 1 hours ago [-]
You can't have a good contract with bad people.
CooCooCaCha 3 hours ago [-]
Because there’s a clear mismatch between the value generated from Box2d vs the value the creator receives, and that’s common for open-source in general.
It would be common decency to donate even a small portion of that $500 million, even if the license technically doesn’t require it.
SiempreViernes 2 hours ago [-]
But if this expectation really were very common, what would be the harm of putting it in a licence?
CooCooCaCha 2 hours ago [-]
MIT is simple, open, and common which is a big benefit for indie projects, small studios, and anyone with limited legal resources.
It means there’s lots of info on the internet explaining how to use the license and they can be relatively certain they won’t accidentally fall into some legal trap or misinterpret the license. It also means there’s legal precedent around the license.
All that to say, custom licenses are actually a big issue for small players.
mvdtnz 2 hours ago [-]
You seem to be confusing what is legally/contractually required with what is fair. Fairness, in general, isn't defined by law or contracts, although some laws try to codify it.
Yeask 1 hours ago [-]
[dead]
tikotus 1 hours ago [-]
I don't know enough to give an answer. But I also wonder if Unity, using Box2D to empower games generating billions, paid him anything.
maccard 2 hours ago [-]
Box2d is open source. For better or for worse, Rovio are entitled to use it.
RobLach 7 hours ago [-]
Box2D was a foundation for a lot of interesting physics oriented indie games in my day.
I wonder if the landscape is empty enough for a resurgence.
flohofwoe 7 hours ago [-]
There weren't many free and open source 3D physics engines to begin with. The ancient forefathers are ODE, Bullet and Newton Dynamics (all first released in the early 2000s), then nothing(?) for nearly two decades until Jolt in 2021 and now Box3D.
Any addition to this small and exclusive list is very welcome :)
badsectoracula 6 hours ago [-]
> ancient forefathers are ODE
I remember trying this back in 2004 or so when i was making my first real 3D game engine, but i ended up abandoning it because i was trying to use it on 64bit Linux and the source code had typecasts between pointers and (32bit) ints all over the place :-P.
That was fixed later and apparently the engine was used in a few commercial games during the 2000s and early 2010s.
mikulas_florek 6 hours ago [-]
NVidia made PhysX open source in 2018, and it was free to use before.
bee_rider 6 hours ago [-]
There’s some ODE/more dimensions/PDE pun in here, for somebody better than me in physics or at least funnier.
This is so cool! I also tried replicating Incredibots during the pandemic, but abandoned it in favor of 3d stuff.
I remember every day as a kid logging on to find new vehicles, challenges, rube-goldberg machines. Some content archives are still online, but don't scratch that itch as an adult. For its time, Incredibots really nailed the sweet spot between expressiveness and ease to create content.
adamrezich 7 hours ago [-]
Box2D is still pretty darn good! Definitely recommended for 2D physics game projects. The C APIs for Box2D and now Box3D are just so nice to work with.
actionfromafar 7 hours ago [-]
I used Chipmunk2D a little back in the day, found it easier to use for whatever arcane thing I was doing.
turkeyboi 5 hours ago [-]
Box2d was somewhat recently rewritten in c and the api is improved, fwiw.
Jeaye 4 hours ago [-]
Yes! This is exciting to see. Erin Catto is such a cool hacker. Thank you, Erin, for sharing your code with the open source community.
There wasn't anything about determinism in the announcement, but I'd really love to see some more about that, too. Trying to use Unity's built-in physics to make a networked billiards game is quite troubling, when none of the clients can happily agree on what happened.
tikotus 4 hours ago [-]
I was looking for the same thing. There is a replay mechanism, so it seems to be deterministic. But with floating point physics, not across platforms. Though -ffast-math is unsupported according to the documentation, so maybe it is intended to be deterministic across platforms? https://box2d.org/documentation3d/recording.html
As an ML researcher, I know box2d because it underpins many of the standard reinforcement learning environments (in OpenAI Gym) that we use to benchmark methods, like Lunar Lander or Car Racing: https://gymnasium.farama.org/environments/box2d/car_racing/
Thanks to Erin for such a useful piece of software!
adalacelove 5 hours ago [-]
Physics simulation is a dangerous rabbit hole. Even if you focus just on rigid bodies and just physical plausibility there are plenty of open problems related to collision detection and collision resolution. Convex approximations and/or decompositions for geometry and hand tuning of solvers are the norm, balancing robustness and precision against speed.
MomsAVoxell 6 hours ago [-]
Oh I'm so ready for this.. I've had some success with Box2D in the past, it's well and truly one of the top bits of F/OSS out there.
Box3D-based Spectre VR? It's so happening. (Shades of Tanarus ..)
EDIT: holy smokes, the transition to recording and playback in the Legend of California demo (Unreal Engine-based) is quite a jarring leap. If you at first get the impression things are quite basic, be sure to get into at least 18:00 into the demo video, it gets pretty wild .. recording and playback is awesome.
RubberSpoon 57 minutes ago [-]
I think of Tanarus all the time, I rarely see anybody mention it.
utopiah 6 hours ago [-]
I'm a bit familiar with Rapier (and before that Cannon and Ammo) so how does it compare?
PS: FWIW made my own physics engine in 3D space just few weeks ago (and shared it here). OK ok ... it's just a 1-liner that brings an object down at regular interval but it's surprising how well it works already! I recommend you give it a go as from a learning perspective it's really fun.
dom96 6 hours ago [-]
Funny to see this just a few days after I’ve started building a Tron-like 3D game for the browser using Jolt[1]. So far Jolt is working pretty well but I’ll certainly be taking a look at this.
I do wonder how it compares against Jolt. Both seem to have a good pedigree, one from Valve and Eric Catto, and another used in Horizon games.
7 hours ago [-]
tikotus 4 hours ago [-]
Oh, nice! What a wonderful surprise!
Very easy to build, and quite small. A release build of the library is 916K (on macos at least). I have a game engine that compiles to WASM for web, and having 3D physics has been a challenge. 3D physics libraries tend to be large and hard to compile. I didn't try yet, but compiling this into a WASM library with emscripten should be easy, and it's likely small enough to be justifiable for a simple web game.
nasso_dev 7 hours ago [-]
> On the Valve side, Rubikon continues to evolve and Dirk has developed optimizations (similar to those in Box3D) in a new engine called Ragnarok. Look for that in future Valve games.
wait....
maplant 7 hours ago [-]
Don't get your hopes up, it'll be used in deadlock's volleyball game mode
dom96 6 hours ago [-]
It’s hilarious that I can’t tell if you’re being serious or not here
nitwit005 4 hours ago [-]
They do have a bouncing ball of about the right size in the beta. I was thinking basketball though.
tapoxi 5 hours ago [-]
Valve is working on a game codenamed HLX that apparently uses a ton of physics features. No idea what "HLX" means though.
rf15 3 hours ago [-]
Considering the years, that X must mean we're skipping straight to ten! Gabe is a former MS employee, so of course counting problems are cropping up occasionally.
cr125rider 7 hours ago [-]
Valve
Box3D
3D
3
Hope!
InsideOutSanta 4 hours ago [-]
Confirmed.
7 hours ago [-]
jayd16 7 hours ago [-]
Halflife 2D confirmed?
dude250711 7 hours ago [-]
Confirmed, released, and already forgotten. It was called "Codename: Gordon".
6SixTy 5 hours ago [-]
Day of Defeat Source 2.1 just a week away!
kidfiji 5 hours ago [-]
I remember reading about it in S&Box's (Source-2-based game engine) blog a while back - glad to see it released out to the public!
hdjrudni 3 hours ago [-]
Love to see this! I got started with Box2D back in probably 2006ish. Great to see Erin is still working on this stuff. Thank you Erin for the great libraries!
alex_suzuki 7 hours ago [-]
Some years ago, I used Box2D from Python to get a couple of bodies moving naturally in a 2D plane, lightly disturbed by random impulses (like water lilies in a pond when it's raining). It was a fun project and working with Box2D was pleasant. Looking forward to using Box3D!
jnurmine 2 hours ago [-]
It was delightful to see the Dzhanibekov effect in the "gyroscopic torque" part of the video.
999900000999 7 hours ago [-]
I went ahead and wishlisted his legend of California game. Probably won’t use Box3D, I’m not a fan of low level programming. I will look forward to the abstraction layers above it
minraws 7 hours ago [-]
I feel like Box2D, was pretty good for the time, I didn't feel like it aged quite as well, mostly because where the solutions built internally went, but hoping box3d is great for it's time as well, would love lots of fun physics engines.
a1o 7 hours ago [-]
Have you tried the latest Box2D (it started as the experimental Box2c)? It’s pretty good afaict. It may not be what you want specifically in your 2D game, as often people prefer more arcade-like mechanics than the physics it tries to deliver.
minraws 6 hours ago [-]
I have been using an in-house/handrolled physics engine for the last few years so not sure if something has changed, but being able to modify the physics engine for arcade or other non-realistic style games was a big let down over time as well.
Basically optimizing your game for feel was quite hard with Box2D in general.
For a long time there wasn't deformers in Box2D (not sure if it's in there now), I hacked by own but I was a dumb 17yo and it was a horrid mess back in the day. Maybe AI could do better than the old me, but I gave up pretty quickly after not getting good results.
So basically lack of support for non-rigid bodies and lack of easy customisability made it not age well for someone like me.
But I know people who have had performance issues with it when building large maps/worlds as well so there are other issues.
Again all of these could have been fixed if they paid more attention to it, more dev time, but it was free so I couldn't really ask for more as a broke student.
And best part was you could run it on any hardware, I remember cooking up a small 2d demo on a rpi back in the day. Fun times.
a1o 27 minutes ago [-]
ok, so you haven’t tried box2c, there are some posts about it in the blog
It became the current box2d implementation, now after version 3.0, it was entirely rewritten in C, it works differently.
plopz 7 hours ago [-]
The dev got scooped up by Blizzard right? Maybe thats part of why it feels like it didn't age as well, more attention to Domino and less to Box2D.
minraws 7 hours ago [-]
I believe so. Box2D was one of the first good physics engines back in the day, well I learnt a lot tinkering with it.
shevy-java 1 hours ago [-]
> Chaos spinning rifle physics
Well - simply see it as a feature. A horror game
where poltergeists infiltrate objects. Stephen
King even wrote some book about that, and that got
a B movie too.
Also shame on the Unreal engine to have such huge
bugs and nobody fixing it. Still, I like the idea
of horror movies more. Finally poltergeist makes
a come back - it was a really scary movie when I
was young.
neals 6 hours ago [-]
Made look up some of my game stuff from back in the day, but the apps are not in the store (after 15 years, to be expected) oh well...
tancop 7 hours ago [-]
i love that we went from bullet being the only real option for open source 3D physics to jolt, rapier, avian, nvidia physx and now box3d.
dude250711 7 hours ago [-]
> ...native physics engine (called Chaos)...
I have to say, based on those videos, that is one accurately-named engine.
jackling 5 hours ago [-]
Glad to see the release, Box2D has some of the best code I've ever read.
It's interesting to see that Box3D was originally a fork of a physics engine made by Dirk. Dirk is one of the best presenters in GDC, and so influential in Physics Engine space, nice to see how he's continuing to push the latest and greatest forward.
gafferongames 6 hours ago [-]
Yeah this library is great. Use it!!!
ajdoingnothing 4 hours ago [-]
I love your articles. Used some techniques almost 10 years ago for hobby projects.
Box2D/3D would make physics synchronisation a lot easier.
gafferongames 4 hours ago [-]
Thank you. I agree, Box3D is great! Maybe Erin will even add rollback determinism at some point. That would be a huge step forward for network physics rollback!
gafferongames 5 hours ago [-]
Who the fuck is so petty to downvote this. Shame on you. This is a great library and Erin deserves your support. https://github.com/erincatto/box3d
LoganDark 6 hours ago [-]
I first heard of Box3D when s&box loudly ripped out the Source 2 physics engine in favor of it (along with ripping out all cross-platform rendering code, etc). Nice to see it really is open-source now.
https://kotaku.com/this-guy-created-angry-birds-physics-and-...
But one thing amazed us all. It was impressive that the marketing guy knew which physics engine was used!
Angry Birds generated $500M [0], supposedly.
I would also not be surprised if the Rovio developers, designers, testers, etc. who worked on this game did not get a share of that $500M pie - I actually assume they didn't.
But still, you know. Dare I say it - what about "fairness"? :-)
[0] https://gameworldobserver.com/2023/02/28/angry-birds-2-reven...
To be clear, I think that open source maintainers deserve much more, but I don't understand why we rarely inspect the licenses as the source of the problem.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
That's what he was asking for, a mention in the credits.
[1]: https://doc.cgal.org/latest/Manual/license.html
It would be common decency to donate even a small portion of that $500 million, even if the license technically doesn’t require it.
It means there’s lots of info on the internet explaining how to use the license and they can be relatively certain they won’t accidentally fall into some legal trap or misinterpret the license. It also means there’s legal precedent around the license.
All that to say, custom licenses are actually a big issue for small players.
I wonder if the landscape is empty enough for a resurgence.
Any addition to this small and exclusive list is very welcome :)
I remember trying this back in 2004 or so when i was making my first real 3D game engine, but i ended up abandoning it because i was trying to use it on 64bit Linux and the source code had typecasts between pointers and (32bit) ints all over the place :-P.
That was fixed later and apparently the engine was used in a few commercial games during the 2000s and early 2010s.
I spent many of my teenage and early adult years trying to replicate it in HTML5. Finally got the Open Source version of IB2 largely ported during COVID: https://github.com/JoshTheDerf/Incredibots-2-HTML5-Open-Sour...
I remember every day as a kid logging on to find new vehicles, challenges, rube-goldberg machines. Some content archives are still online, but don't scratch that itch as an adult. For its time, Incredibots really nailed the sweet spot between expressiveness and ease to create content.
There wasn't anything about determinism in the announcement, but I'd really love to see some more about that, too. Trying to use Unity's built-in physics to make a networked billiards game is quite troubling, when none of the clients can happily agree on what happened.
EDIT: Clarified meaning about ffast-math
This is absolutely fantastic!
Thanks to Erin for such a useful piece of software!
Box3D-based Spectre VR? It's so happening. (Shades of Tanarus ..)
EDIT: holy smokes, the transition to recording and playback in the Legend of California demo (Unreal Engine-based) is quite a jarring leap. If you at first get the impression things are quite basic, be sure to get into at least 18:00 into the demo video, it gets pretty wild .. recording and playback is awesome.
PS: FWIW made my own physics engine in 3D space just few weeks ago (and shared it here). OK ok ... it's just a 1-liner that brings an object down at regular interval but it's surprising how well it works already! I recommend you give it a go as from a learning perspective it's really fun.
1 - I’ve been sitting on this domain for years: https://lightcycles.io
Very easy to build, and quite small. A release build of the library is 916K (on macos at least). I have a game engine that compiles to WASM for web, and having 3D physics has been a challenge. 3D physics libraries tend to be large and hard to compile. I didn't try yet, but compiling this into a WASM library with emscripten should be easy, and it's likely small enough to be justifiable for a simple web game.
wait....
Box3D
3D
3
Hope!
For a long time there wasn't deformers in Box2D (not sure if it's in there now), I hacked by own but I was a dumb 17yo and it was a horrid mess back in the day. Maybe AI could do better than the old me, but I gave up pretty quickly after not getting good results.
So basically lack of support for non-rigid bodies and lack of easy customisability made it not age well for someone like me.
But I know people who have had performance issues with it when building large maps/worlds as well so there are other issues.
Again all of these could have been fixed if they paid more attention to it, more dev time, but it was free so I couldn't really ask for more as a broke student.
And best part was you could run it on any hardware, I remember cooking up a small 2d demo on a rpi back in the day. Fun times.
https://box2d.org/posts/2025/04/box2d-3.1/
It became the current box2d implementation, now after version 3.0, it was entirely rewritten in C, it works differently.
Well - simply see it as a feature. A horror game where poltergeists infiltrate objects. Stephen King even wrote some book about that, and that got a B movie too.
Also shame on the Unreal engine to have such huge bugs and nobody fixing it. Still, I like the idea of horror movies more. Finally poltergeist makes a come back - it was a really scary movie when I was young.
I have to say, based on those videos, that is one accurately-named engine.
It's interesting to see that Box3D was originally a fork of a physics engine made by Dirk. Dirk is one of the best presenters in GDC, and so influential in Physics Engine space, nice to see how he's continuing to push the latest and greatest forward.