Skip to content

Releases: erincatto/box2d

v3.1.1

04 Jun 01:01
8c66146

Choose a tag to compare

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

Full Changelog: v3.1.0...v3.1.1

v3.1.0

20 Apr 05:09
d5935a7

Choose a tag to compare

v3.1 Release Notes

API Changes

  • 64-bit filter categories and masks
  • 64-bit dynamic tree user data
  • Renamed b2SmoothSegment to b2ChainSegment
  • 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 b2Timer with uint64_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_SetTargetTransform for 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:c11atomics flag

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

12 Aug 06:39
8e7a17c

Choose a tag to compare

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

Full Changelog: v2.4.2...v3.0.0

Final release of version 2

09 Aug 16:54
411acc3

Choose a tag to compare

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

New Contributors

Full Changelog: v2.4.1...v2.4.2

v2.4.1

18 Oct 00:12
9ebbbcd

Choose a tag to compare

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

27 Jul 06:08
4d7757f

Choose a tag to compare

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