Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
5.4.0 source code.tar.gz | 2025-09-27 | 18.8 MB | |
5.4.0 source code.zip | 2025-09-27 | 19.6 MB | |
README.md | 2025-09-27 | 4.2 kB | |
Totals: 3 Items | 38.4 MB | 1 |
There are a few minor breaking changes, see this document.
New Functionality
- Added Cosserat rods to soft bodies. This is a stick constraint with an orientation that can be used to attach geometry. Can be used e.g. to simulate vegetation in a cheap way. See the new
SoftBodyCosseratRodConstraintTest
demo. - Added ability to drive hinge constraints with
Ragdoll::DriveToPoseUsingMotors
. This also addsHingeConstraint::SetTargetOrientationBS
which sets the target angle in body space. - Added
JPH_USE_EXTERNAL_PROFILE
cmake option that allows overriding the behavior of the profile macros. - Added
SoftBodyCreationSettings::mFacesDoubleSided
which treats the faces of the soft body as double sided. This can be used to make e.g. flags double sided. - Added functions to get the
CharacterSettings
from aCharacter
andCharacterVirtualSettings
from aCharacterVirtual
. - Added support for compound shapes as character shape in
CharacterVirtual
. - Added
BodyInterface::SetIsSensor
/IsSensor
functions.
Bug Fixes
- Fixed bug in
ManifoldBetweenTwoFaces
which would not find the correct manifold in case face 1 had 3 or more vertices and face 2 only 2. E.g. for a box resting the long edge of a cylinder this would mean that only a single contact point was found instead of 2 (the other way around would work fine). - Fixed bug in
ConvexHullShape::CollideSoftBodyVertices
where the wrong edge could be reported as the closest edge. - Fixed bug in
PhysicsSystem::OptimizeBroadPhase
. When calling this function after removing all bodies from thePhysicsSystem
, the internal nodes would not be freed until bodies are added again. This could lead to running out of internal nodes in rare cases. - Fixed bug in
MeshShape
active edge calculation which could mark edges of non-manifold meshes as inactive instead of active. - Fixed passing underestimate of penetration depth in
ContactListener::OnContactPersisted
when the contact comes from the contact cache. QuadTree
will now fall back to the heap when running out of stack space during collision queries. Previously this would trigger an assert and some collisions would not be detected.- Fixed
BodyInterface::MoveKinematic
,SetLinearVelocity
,SetAngularVelocity
,SetLinearAndAngularVelocity
,AddLinearVelocity
,AddLinearAndAngularVelocity
,SetPositionRotationAndVelocity
andSetMotionType
when body not added to the physics system yet. - Fixed UBSAN false positive error that detected a dirty trick in
SimShapeFilter
. - WheelSettingsTV and WheelSettingsWV were not serializing their base class members.
- The remap tables in
SoftBodySharedSettings::OptimizationResults
mapped from new to old index instead of from old to new as was documented. The maps now behave as documented. - Fixed an issue where soft body bend constraints could be created with identical vertices. This led to an assert triggering.
- Fixed infinite recursion when colliding a
TriangleShape
vs aTriangleShape
. - 32-bit MinGW g++ doesn't call the correct overload for the new operator when a type is 16 bytes aligned. This could cause unaligned read access violations.
- Fixed compiling in double precision and fixed issues with floating point contraction that caused unit test failures on LoongArch architecture.
- Added an epsilon to the
CastRay
/CastShape
early out condition to avoid dividing by a very small number and overflowing to INF. This can cause a float overflow exception. - Fixed Samples requiring Vulkan extension
VK_EXT_device_address_binding_report
without checking if it is available. - Fixed Vulkan warning in Samples: VkSemaphore is being signaled by VkQueue but it may still be in use by VkSwapchainKHR.
- Fixed incorrect RTTI definition of
MotorcycleControllerSettings
which led to the members ofWheeledVehicleControllerSettings
not being serialized. - Implemented missing
VehicleConstraint::GetConstraintSettings
function. - Fixed colliding a compound shape vs a regular shape ignoring
CollideShapeSettings::mMaxSeparationDistance
. This potentially led to missed collisions.