Releases: erincatto/box2d
Releases · erincatto/box2d
v3.1.1
This is a bug fix release. There are a few minor API changes. Making way for 3.2.0 work.
There are no documentation updates with this releases.
What's Changed
- Warning as error off by default by @erincatto in #914
- functions to get and set surface material by @erincatto in #921
- Fixed another shape distance assert by @erincatto in #926
- Revolute and prismatic targets by @erincatto in #929
- Cast initial overlap by @erincatto in #933
- Tunable joint stiffness by @erincatto in #934
- _aligned_free for mingw by @erincatto in #939
- Removed MSVC static library setting by @erincatto in #940
Full Changelog: v3.1.0...v3.1.1
v3.1.0
v3.1 Release Notes
API Changes
- 64-bit filter categories and masks
- 64-bit dynamic tree user data
- Renamed
b2SmoothSegmenttob2ChainSegment - Cast and overlap functions modified for argument consistency
- Contact begin events now provide the manifold
- More consistent functions to make polygons
- Contact events are now disabled by default
- Replaced
b2Timerwithuint64_t - Shape material properties now use
b2SurfaceMaterial
New Features
- New character mover features and sample
- Revised sensor system is now independent of body type and sleep
- Rolling resistance and tangent speed
- Friction and restitution mixing callbacks
- World explosions
- World access to the maximum linear speed
- More control over body mass updates
- Filter joint to disable collision between specific bodies
- Bodies can now have names for debugging
- Added
b2Body_SetTargetTransformfor kinematic bodies
Improvements
- Cross-platform determinism
- Custom SSE2 and Neon for significantly improved performance
- SSE2 is the default instead of AVX2
- Removed SIMDE library dependency
- Faster ray and shape casts
- Faster continuous collision
- Each segment of a chain shape may have a different surface material
- Reduced overhead of restitution when not used
- Implemented atomic platform wrappers eliminating the
experimental:c11atomicsflag
Bugs Fixes
- Many bug fixes based on user testing
- Fixed missing hit events
- Capsule and polygon manifold fixes
- Fixed missing contact end events
- PreSolve is now called in continuous collision
- Reduced clipping into chain shapes by fast bodies
- Friction and restitution are now remixed in the contact solver every time step
- Body move events are now correctly adjusted for time of impact
Infrastructure
- Unit test for API coverage
- macOS and Windows samples built in GitHub actions
- CMake install
- imgui and glfw versions are now pinned in FetchContent
- Initial Emscripten support
v3.0.0
Version 3.0 is a massive update to Box2D.
Blog post:
https://box2d.org/posts/2024/08/releasing-box2d-3.0/
Migration guide:
https://github.com/erincatto/box2d/blob/main/docs/migration.md
What's Changed
- Update to Version 3 by @erincatto in #769
Full Changelog: v2.4.2...v3.0.0
Final release of version 2
This is the final release of version 2. The next commit with be version 3.0.
This has a few bug fixes, but is mainly being created for people who want to stay on version 2.
What's Changed
- Remove unnecessary function by @erincatto in #659
- Typo fix by @gittem01 in #684
- Update box2d's version of Doctest to latest version by @PatrickHoward in #682
- Create cmake.yml by @erincatto in #707
- Added macos and windows actions by @erincatto in #708
- Issue Fixes by @erincatto in #709
- Making hull builder more robust by @erincatto in #735
- Miscellaneous fixes by @erincatto in #736
- Adjust mouse joint damping with time step by @erincatto in #737
- Add benchmark test by @erincatto in #744
New Contributors
- @gittem01 made their first contribution in #684
- @PatrickHoward made their first contribution in #682
Full Changelog: v2.4.1...v2.4.2
v2.4.1
Changes for version 2.4.1
API Changes
- Extended distance joint to have a minimum and maximum limit.
- Removed rope joint. Use the distance joint instead.
- B2_USER_SETTINGS and b2_user_settings.h can control user data, length units, and maximum polygon vertices.
- Default user data is now uintptr_t instead of void*
- b2FixtureDef::restitutionThreshold lets you set the restitution velocity threshold per fixture.
BREAKING Changes
- BREAKING: distance joint 0 stiffness now means the spring is turned off rather than making the joint rigid.
- BREAKING: distance joint minimum and maximum must be set correctly to get old behavior.
Infrastructure
- Library installation function available in CMake.
- Shared library (DLL) option available.
- Bug fixes
v2.4.0
Changes for version 2.4.0
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