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.
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 :)
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.
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.
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.
> 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.
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'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.
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
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!
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.
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.
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.
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.
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.
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.
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.
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 :)
There’s some ODE/more dimensions/PDE pun in here, for somebody better than me in physics or at least funnier.
https://www.tapirgames.com/blog/open-source-physics-engines
NVidia made PhysX open source in 2018, and it was free to use before.
> 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.
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.
i remember being hooked on Incredibots back when that was still a thing! that was how I heard about Box2D way back.
Well hello random IncrediBots-remembering person! Such good times with an oddly wholesome and welcoming community.
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 used Chipmunk2D a little back in the day, found it easier to use for whatever arcane thing I was doing.
Box2d was somewhat recently rewritten in c and the api is improved, fwiw.
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.
> 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....
Don't get your hopes up, it'll be used in deadlock's volleyball game mode
It’s hilarious that I can’t tell if you’re being serious or not here
Valve is working on a game codenamed HLX that apparently uses a ton of physics features. No idea what "HLX" means though.
Day of Defeat Source 2.1 just a week away!
Halflife 2D confirmed?
Confirmed, released, and already forgotten. It was called "Codename: Gordon".
Valve
Box3D
3D
3
Hope!
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.
1 - I’ve been sitting on this domain for years: https://lightcycles.io
About Jolt, do you mean https://github.com/jrouwe/JoltPhysics ?
Yep, there is a WASM build with full feature support: https://github.com/jrouwe/JoltPhysics.js
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.
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
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!
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.
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.
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.
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.
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.
I believe so. Box2D was one of the first good physics engines back in the day, well I learnt a lot tinkering with it.
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...
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.
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.
> ...native physics engine (called Chaos)...
I have to say, based on those videos, that is one accurately-named engine.
Yeah this library is great. Use it!!!
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
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.
Box>:3Drawr