Release Rapier 0.20.0#651
Merged
Merged
Conversation
6 tasks
This was referenced Oct 2, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v0.20.0 (9 June 2024)
This release introduces two new crates:
rapier3d-urdffor loading URDF files into rapier3d. This will load the rigid-bodies,colliders, and joints.
rapier3d-stlfor loading an STL file as a collision shape.Added
Multibody::inverse_kinematics,Multibody::inverse_kinematics_delta,and
::inverse_kinematics_delta_with_jacobianfor running inverse kinematics on a multibody to align one its links pose to the given prescribed pose.
InverseKinematicsOptionto customize some behaviors of the inverse-kinematics solver.Multibody::body_jacobianto get the jacobian of a specific link.Multibody::update_rigid_bodiesto update rigid-bodies based on the multibody links poses.Multibody::forward_kinematics_single_linkto run forward-kinematics to compute the new pose and jacobian of asingle link without mutating the multibody. This can take an optional displacement on generalized coordinates that are
taken into account during transform propagation.
DebugforColliderBuilder.Collider::converted_trimeshandMeshConverterfor building a collider with a shape computed from a mesh’sindex and vertex buffers. That computed shape can currently be a
TriMesh, aCuboid(covering the mesh’s AABB orOBB), a convex hull, or a convex decomposition.
DefaultforRigidBodyBuilder. This is equivalent toRigidBodyBuilder::dynamic().DefaultforColliderBuilder. This is equivalent toColliderBuilder::ball(0.5).RevoluteJoint::angleto compute the joint’s angle given the rotation of its attached rigid-bodies.Modified
JointAxesMask::X/Y/Zto::LIN_X/LIN_Y/LIN_Z; and renamedJointAxisMask::X/Y/Zto::LinX/LinY/LynZtomake it clear it is not to be used as angular axes (the angular axis are
JointAxesMask::ANG_X/ANG_Y/AngZandJointAxisMask::AngX/AngY/AngZ).erp/damping_ratiotonatural_frequency/damping_ratio. This helps define them in a timestep-length independent way. The new variablesare named
IntegrationParameters::contact_natural_frequencyandIntegrationParameters::contact_damping_ratio.IntegrationParameters::normalized_max_penetration_correctionhas been replacedby
::normalized_max_corrective_velocityto make the parameter more timestep-length independent. It is now set to a non-infinite value to eliminate aggressive
"popping effects".
Multibody::forward_kinematicsmethod will no longer automatically update the poses of theRigidBodyassociatedto each joint. Instead
Multibody::update_rigid_bodieshas to be called explicitly.Multibody::forward_kinematicsmethod will automatically adjust the multibody’s degrees of freedom if the rootrigid-body changed type (between dynamic and non-dynamic). It can also optionally apply the root’s rigid-body pose
instead of the root link’s pose (useful for example if you modified the root rigid-body pose externally and wanted
to propagate it to the multibody).
solver.
RigidBody::add_collider. This was an implementation detail previously needed bybevy_rapier. To attacha collider to a rigid-body, use
ColliderSet::insert_with_parentorColliderSet::set_parent.JointAxis::X/Y/Zto::LinX/LinY/LinZto avoid confusing it with::AngX/AngY/AngZ.JointAxesMask::X/Y/Zto::LIN_X/LIN_Y/LIN_Zto avoid confusing it with::ANG_X/ANG_Y/ANG_Z.RigidBody::add_collideris now private. It was only public because it was needed for some internalbevy_rapierplumbings, but it is no longer useful. Adding a collider must always go througtheColliderSet.CharacterController::solve_character_collision_impulsesnow takes multipleCharacterCollisionas parameter:this change will allow further internal optimizations.
QueryPipeline::updatenow doesn't need theRigidBodySetas parameter.QueryPipelineMode.QueryPipeline::update_with_modewas renamed to::update_with_generatorand now takesimpl QbvhDataGenerator<ColliderHandle>as parameter see [QueryPipeline::updaters] module for more information.