fix(deps): update dependency @dimforge/rapier3d-compat to ^0.19.0 - #497
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update dependency @dimforge/rapier3d-compat to ^0.19.0#497renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
15 times, most recently
from
November 18, 2025 15:24
be06789 to
9a2ba2c
Compare
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
2 times, most recently
from
December 4, 2025 17:00
115c476 to
04ddf6d
Compare
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
from
January 12, 2026 13:10
04ddf6d to
8a97310
Compare
| @@ -7,7 +7,7 @@ | |||
| "three": "^0.181.0" | |||
| }, | |||
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
7 times, most recently
from
January 12, 2026 15:04
7c38b71 to
85f7aaa
Compare
| @@ -7,7 +7,7 @@ | |||
| "three": "^0.181.0" | |||
| }, | |||
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
3 times, most recently
from
January 12, 2026 15:38
f842a2c to
667e84c
Compare
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
9 times, most recently
from
January 18, 2026 16:30
fe41ee4 to
af61d45
Compare
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
2 times, most recently
from
February 4, 2026 09:14
12c5f66 to
ae17086
Compare
| @@ -7,7 +7,7 @@ | |||
| "three": "^0.181.0" | |||
| }, | |||
There was a problem hiding this comment.
Bug: The code accesses result.toi, which was renamed to result.timeOfImpact in the upgraded rapier library, causing distance to be undefined at runtime.
Severity: CRITICAL
Suggested Fix
In src/bundles/robot_simulation/src/engine/Physics.ts, replace the property access result.toi with result.timeOfImpact. The corresponding test mock in src/bundles/robot_simulation/src/engine/__tests__/Physics.test.ts should also be updated to use timeOfImpact to reflect the new API.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: src/bundles/robot_simulation/package.json#L8
Potential issue: The upgrade of the rapier physics library to v0.19.3 introduces a
breaking change where the `toi` property on ray casting results was renamed to
`timeOfImpact`. The code in `src/bundles/robot_simulation/src/engine/Physics.ts`
accesses `result.toi` when processing a ray cast result. At runtime, this will evaluate
to `undefined`, causing the `distance` field in the function's return value to be
`undefined`. This will lead to incorrect physics calculations or errors in downstream
code expecting a number. The issue is not caught by tests because the rapier library is
fully mocked.
Did we get this right? 👍 / 👎 to inform future reviews.
renovate
Bot
force-pushed
the
renovate/dimforge-rapier3d-compat-0.x
branch
17 times, most recently
from
February 7, 2026 17:51
113fad6 to
816c2b7
Compare
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.
This PR contains the following updates:
^0.11.2→^0.19.0Release Notes
dimforge/rapier (@dimforge/rapier3d-compat)
v0.19.3Compare Source
v0.19.2Compare Source
v0.19.1Compare Source
v0.19.0Compare Source
Fix
rigid-bodies is fixed.
Added
Many stability improvements were added as part of this release. To see illustrations of some of these
changes, see #625.
RigidBody::predict_position_using_velocityto predict the next position of the rigid-bodybased only on its current velocity.
Collider::copy_fromto copy most collider attributes to an existing collider.RigidBody::copy_fromto copy most rigid-body attributes to an existing rigid-body.BroadPhasetrait and expect an implementor of this trait as input toPhysicsPipeline::step.the "pop" effect that can happen due to penetration corrections.
RigidBodyBuilder::soft_ccd_predictionandRigidBody::set_soft_ccd_predictionto enablesoft-ccd: a form ofCCD based on predictive contacts. This is helpful for objects moving moderately fast. This form of CCD is generally
cheaper than the normal (time-dropping) CCD implemented so far. It is possible to combine both soft-ccd and
time-dropping ccd.
ColliderBuilder::contact_skin,Collider::set_contact_skin, andCollider::contact_skin. This forces thesolver te maintain a gap between colliders with non-zero contact skin, as if they had a slight margin around them.
This helps performance and stability for thin objects (like triangle meshes).
collisions between two triangle meshes. The
TriMeshFlags::FIX_INTERNAL_EDGESandHeightFieldFlags::FIX_INTERNAL_EDGESflags were added to enable internal edges handling.IntegrationParameters::length_unitsto automatically adjust internal thresholds when the user relies on customlength units (e.g. pixels in 2D).
Modified
Many shape-casting related functions/structs were renamed. Check out the CHANGELOG for parry 0.15.0 for
additional details.
BroadPhasetoBroadPhaseMultiSap. TheBroadPhaseis now a trait that can beimplemented for providing a custom broad-phase to rapier. Equivalently, the
DefaultBroadPhasetypealias can be used in place of
BroadPhaseMultiSap.KinematicCharacterController::normal_nudge_factorused to help getting the character unstuckdue to rounding errors.
TOItoShapeCastHit.toitotime_of_impact.QueryPipeline::cast_shapemethod now takes aShapeCastOptionsinstead of themax_toiand
stop_at_penetrationparameters. This allows a couple of extra configurations, including theability to have the shape-cast target a specific distance instead of actual shape overlap.
v0.18.2Compare Source
v0.18.1Compare Source
v0.18.0Compare Source
The main highlight of this release is the implementation of a new non-linear constraints solver for better stability
and increased convergence rates. See #579 for additional information.
In order to adjust the number of iterations of the new solver, simply
adjust
IntegrationParameters::num_solver_iterations.If recovering the old solver behavior is useful to you, call
IntegrationParameters::switch_to_standard_pgs_solver().It is now possible to specify some additional solver iteration for specific rigid-bodies (and everything interacting
with it directly or indirectly through contacts and joints):
RigidBodyBuilder::additional_solver_iterationsandRigidBodyBuilder::set_additional_solver_iterations. This allows for higher-accuracy on subsets of the physics scenewithout affecting performance of the other parts of the simulation.
Fix
user.
Added
SpringJointandSpringJointBuilderfor simulating springs with customizable stiffness and dampingcoefficients.
SphericalJoint::local_frame1/2,::set_local_frame1/2, andSphericalJointBuilder::local_frame1/2to set boththe joint’s anchor and reference orientation.
EffectiveCharacterMovement::is_sliding_down_slopeto indicate if the character controlled by the kinematiccharacter controller is sliding on a slope that is too steep.
Wheel::side_friction_stiffnessto customize the side friction applied to the vehicle controller’s wheel.Wheel::raycast_infoto access more wheel information relative to the ground.DebugRenderStyle::disabled_color_multiplierto make the debug-renderer color disabled object differently.Modified
Wheel::friction_slippublic to customize the front friction applied to the vehicle controller’s wheels.DebugRenderBackend::filter_objectpredicate that can be implemented to apply custom filtering ruleson the objects being rendered.
bevy 0.12and use its new Gizmos API for rendering lines.NarrowPhase::contacts_withtoNarrowPhase::contact_pairs_with.NarrowPhase::intersections_withtoNarrowPhase::intersection_pairs_with.v0.17.3Compare Source
v0.17.2Compare Source
Fix
v0.17.1Compare Source
Fix
v0.17.0Compare Source
Added
RigidBody::set_enabled,RigidBody::is_enabled,RigidBodyBuilder::enabledto enable/disable a rigid-bodywithout having to delete it. Disabling a rigid-body attached to a multibody joint isn’t supported yet.
Collider::set_enabled,Collider::is_enabled,ColliderBuilder::enabledto enable/disable a colliderwithout having to delete it.
GenericJoint::set_enabled,GenericJoint::is_enabledto enable/disable a joint without having to delete it.Disabling a multibody joint isn’t supported yet.
DynamicRayCastVehicleController, a vehicle controller based on ray-casting and dynamic rigid-bodies (mostlya port of the vehicle controller from Bullet physics).
RigidBody::user_forceandRigidBody::user_torqueto read the forces or torques added by the user to adynamic rigid-body.
RigidBody::locked_axesto get the rigid-body axes that were locked by the user.Modified
QueryPipelineas an optional argument toPhysicsPipeline::stepandCollisionPipeline::step. If thisargument is specified, then the query pipeline will be incrementally (i.e. more efficiently) update at the same time
as
these other pipelines. In that case, calling
QueryPipeline::updateaPhysicsPipeline::stepisn’t needed.RigidBody::set_body_typenow takes an extra boolean argument indicating if the rigid-body should be woken-up(if it becomes dynamic).
RigidBody::mass_propertiesnow also returns the world-space mass-properties of the rigid-body.Fix
v0.16.2Compare Source
v0.16.1Compare Source
Fix
docs.rs.v0.16.0Compare Source
Added
CopyforCharacterCollision.Fromtrait) betweenGroupandu32.ColliderBuilder::trimesh_with_flagsto build a triangle mesh with specific flags controllingits initialization.
Modified
AABBtoAabbto comply with Rust’s style guide.parry 0.11.Fix
balls from moving straight.
v0.15.1Compare Source
v0.15.0Compare Source
Added
controlmodule. The character controller currentlysupports the following features:
serdeserialization/deserialization forCollisionEventswhen theserde-serializefeature is enabledModified
Collider::set_rotation,RigidBody::set_rotation, andRigidBody::set_next_kinematic_rotationnowtake a rotation (
UnitQuaternionorUnitComplex) instead of a vector/angle.QueryFilter::exclude_dynamicis now a static method (theselfargument was removed).QueryPipeline::cast_shapemethod has a new argumentstop_at_penertation. If set tofalse, the linearshape-cast won’t immediately stop if the shape is penetrating another shape at its starting point and its
trajectory is such that it’s on a path to exit that penetration state.
InteractionGroupsis now a set of explicit bit flags instead of a rawu32.position.
v0.14.0Compare Source
Fixed
contact manifolds (like triangle meshes).
CollisionPipelineif a collider is both added and removed before a callto
CollisionPipeline::step.Modified
RigidBodyBuilder::additional_massmethod will now result in the additional angular inertiabeing automatically computed based on the shapes of the colliders attached to the rigid-body.
RigidBodyBuilder::mass,::principal_angular_inertia,::principal_inertia.RigidBodyBuilder::additional_principal_angular_inertia. UseRigidBodyBuilder::additional_mass_propertiesinstead.Collider::densitymethod now always returns aReal(instead of anOption<Real>).RigidBody::restrict_rotationsandRigidBody::restrict_translationstoRigidBody::set_enabled_rotationsandRigidBody::set_enabled_translations.RigidBodyBuilder::restrict_rotationsandRigidBodyBuilder::restrict_translationstoRigidBodyBuilder::enabled_rotationsandRigidBodyBuilder::enabled_translations.Added
RigidBody::recompute_mass_properties_from_collidersto force the immediate computationof a rigid-body’s mass properties (instead of waiting for them to be recomputed during the next
timestep). This is useful to be able to read immediately the result of a change of a rigid-body
additional mass-properties or a change of one of its collider’s mass-properties.
RigidBody::set_additional_massto set the additional mass for the collider. The additionalangular inertia is automatically computed based on the attached colliders shapes.
Collider::set_density,::set_mass,set_mass_properties, to alter a collider’s massproperties. Note that
::set_masswill result in the collider’s angular inertia being automaticallycomputed based on this mass and on its shape.
ColliderBuilder::massto set the mass of the collider instead of its density. Its angularinertia tensor will be automatically computed based on this mass and its shape.
Collider::massandCollider::volumeto retrieve the mass or volume of a collider.QueryFilterthat is now used by all the scene queries instead of theCollisionGroupsand
Fn(ColliderHandle) -> boolclosure. This
QueryFilterprovides easy access to most common filtering strategies (e.g. dynamic bodies only,excluding one particular collider, etc.) for scene queries.
EventHandlertrait has been modified to includethe method
EventHandler::handle_contact_force_event. Contact force events are generated whenever the sum of themagnitudes of all the forces between two colliders is greater than any of their
Collider::contact_force_event_thresholdvalues (only the colliders wit theActiveEvents::CONTACT_FORCE_EVENTflagset are taken into account for this threshold).
ContactForceEventstruct that is generated by theChannelEventCollectorto reportcontact force events.
v0.13.1Compare Source
v0.13.0Compare Source
Fixed
Modified
wake_up: boolargument to theImpulseJointSet::insertandMultibodyJointSet::inserttoautomatically wake-up the rigid-bodies attached to the inserted joint.
ImpulseJointSet::remove/remove_joints_attached_to_rigid_body,MultibodyJointSet::remove/remove_joints_attached_to_rigid_bodyandMultibodyjointSet::remove_multibody_articulationsno longer require thebodiesand
islandsarguments.instantdependency optional, behind aprofilercargo feature.ActiveCollisionTypesflags.ImpulseJointSet::joints_withto::attached_joints. Add the joint’s handle to the closure arguments.by default.
Added
MultibodyJointSet::attached_jointsto return all the multibody joints attached to a given rigid-body.v0.12.0Compare Source
Fixed
parallelfeature is enabled.rigid-body, or would not have any effect on pre-existing contacts.
Modified
nalgebra0.31.parry0.9.JointHandletoImpulseJointHandle.RigidBodyMassPropsFlagstoLockedAxes.RigidBody::apply_force,::apply_torque,::apply_force_at_pointto::add_force,::add_torque, and::add_force_at_pointto better reflect the fact that they are not cleared at the endof the timestep.
RigidBodyType::StatictoRigidBodyType::Fixedto avoid confusion with thestatickeyword.staticrigid-bodies now usefixedinstead ofstatic.RigidBodyBuilder::new_static, new_kinematic_velocity_based, new_kinematic_velocity_basedtoRigidBodyBuilder::fixed, kinematic_velocity_based, kinematic_velocity_based.ContactEventandIntersectionEventhave been replaced by a single enumCollisionEventin orderto simplify the user’s event handling.
ActiveEvents::CONTACT_EVENTSandActiveEvents::INTERSECTION_EVENTSflags have been replaced by a singleflag
ActiveEvents::COLLISION_EVENTS.VelocityBasedmodel. The new choices areAccelerationBasedandForceBasedwhich are more stable.
.build()function from builders (RigidBodyBuilder,ColliderBuilder, etc.) is no longer necessarywhen adding them to sets. It is automatically called thanks to
Into<_>implementations.ComponentSetabstractions (and related_genericmethods likePhysicsPipeline::step_generic) have beenremoved. Custom storage for colliders and rigid-bodies are no longer possible: use the built-in
RigidBodySetandColliderSetinstead.Semantic modifications
These are changes in the behavior of the physics engine that are not necessarily
reflected by an API change. See #304 for extensive details.
RigidBody::set_linvelandRigidBody::set_angvelno longer modify the velocity of static bodies.RigidBody::set_body_typewill reset the velocity of a rigid-body to zero if it is static.CollisionEvent::Stoppedare now generated after a collider is removed.Added
GenericJointto one of the more specific joint type.boolargument toRigidBodySet::remove. If set tofalse, the colliders attached to the rigid-bodywon’t be automatically deleted (they will only be detached from the deleted rigid-body instead).
RigidBody::reset_forcesandRigidBody::reset_torquesto reset all the forces and torques added to therigid-body by the user.
debug-rendercargo feature that enables theDebugRenderPipeline: a line-based backend-agnosticrenderer to debug the state of the physics engine.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.