Box2D, the popular open source 2D physics engine, just released version 2.4.0. 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 details from the release notes:
Infrastructure
- Documentation in Doxygen format
- CMake build system
- Unit test support
- Continuous integration testing using Travis CI
- Limited use of C++11 (nullptr and override)
- Restructured folders and renamed files to better match open-source standards
- MIT License
- Removed float32 and float64
- Linked the Box2D project to GitHub Sponsors
Collision
- Chain and edge shape must now be one-sided to eliminate ghost collisions
- Broad-phase optimizations
- Added b2ShapeCast for linear shape casting
Dynamics
- Joint limits are now predictive and not stateful
- Experimental 2D cloth (rope)
- b2Body::SetActive -> b2Body::SetEnabled
- Better support for running multiple worlds
- Handle zero density better
- The body behaves like a static body
- The body is drawn with a red color
- Added translation limit to wheel joint
- World dump now writes to box2d_dump.inl
- Static bodies are never awake
- All joints with spring-dampers now use stiffness and damping
- Added utility functions to convert frequency and damping ratio to stiffness and damping
Testbed
- Testbed uses dear imgui
- glad OpenGL loader
- OpenGL 3.3 required
Box2D is available in source form on GitHub. You can learn more about the release in the video below.