Release 0.36.0 - #1017
Merged
Merged
Release 0.36.0#1017
Conversation
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.36.0 (24 September 2026)
Added
SoftBodySet,SoftBodyandSoftBodyBuilder(ropes, cloth, trimeshes, volumes…),simulated together with rigid bodies, contacts and joints; also on
PhysicsWorld.SoftBodySet::tear/cut); torn-offpieces become soft bodies and report a
SoftBodyTearEvent.SoftBodySet::add_cluster): rigid proxies that joints and colliders attach to.ColliderSet::insert_deformablebinds aDEFORMABLEtrimesh (3D) orpolyline (2D) to a soft body through a
SoftMeshBinding.femfeature (SoftBodySolver::Fem).IntegrationParameters::soft_bodies, soft-body debug-render modes, and soft bodies in snapshots.RigidBody(Builder)::additional_pgs_iterations: extra PGS iterations per substep for a body's island.DebugRenderMode::PSEUDO_NORMALSdraws the pseudo-normals of trimeshes and polylines.ColliderBuilder::polyline_with_flags,RigidBodyHandle::is_invalid, and a publicCoefficientCombineRule::combine.PhysicsWorld::detect_collisions(collision detection without stepping) andPhysicsWorld::remove_body_with_colliders.CCDSolver::invalidate_fixed_targets_cache, for users callingCCDSolver::solve_continuousdirectly.Multibody::remove_dof_coupling,retain_dof_couplingsandclear_dof_couplings.rapier3d-urdf:UrdfLink::urdf_link_indexandUrdfJoint::urdf_joint_index(andmerged_urdf_joint_indices) map loaded links and joints to their URDF counterparts.rapier3d-mjcf:MjcfContactHooks::is_excludedandpair_overridequery a model's contact rules."Smooth mesh colliders" option (3D).
bindings/c): 2D/3D, f32/f64, a C11 header with C++ helpers, and a CMake package.Modified
PhysicsPipeline::step,RigidBodySet::remove,ColliderSet::remove,DebugRenderPipeline::renderand
CCDSolver::solve_continuoustake theSoftBodySet.EventHandlerhas a new required methodhandle_soft_body_tear_event, andChannelEventCollector::newtakes a sender for these events.ContactPair::manifoldsandsolver_clustersmoved toContactPair::contacts: usepair.manifolds()orpair.rigid().ContactModificationContextmoved behindctx.rigid_mut().SolverFlags::COMPUTE_IMPULSESis renamedCOMPUTE_RIGID_IMPULSES.RigidBodyType::SoftFrame: the rigid proxies of soft bodies, counted as dynamic byis_dynamic.DebugRenderObject::SoftBodyvariant, and new fields inIntegrationParameters,DebugRenderStyleandPhysicsWorld(soft_bodies,collision_pipeline).CCDSolver::solve_continuousno longer takesscene_changed, andRigidBodyCcd::is_moving_fastalso takes the body's mass properties.stdfeature ofrapier2dandrapier2d-f64now enablesparry2d/spade.bindings/directory.bevy_rapier2dandbevy_rapier3dplugins now live in this repository, inbindings/bevy_rapier.Fixed
moved during a step where no body needed CCD.
KinematicCharacterController::solve_character_collision_impulsesnow pushes every dynamic bodytouched by a compound character, not only the last one.
dt == 0no longer produces NaNs: it only applies user changes and detects collisions.CollisionPipeline::stepno longer trips a debug assertion when a moving body touches a collider.self-contacts are no longer re-enabled when they merge.
PhysicsPipeline::countersnow fills the contact pair, contact and constraint counts.max_ccd_substeps > 1: end-of-step AABBs cover the full next step, the step splitter usesthe current velocity, and heavy bodies under gravity are no longer flagged as fast.
SpringCoefficientsno longer divides by zero whendamping_ratiois zero.rapier3d-urdf:<origin rpy>angles are now composed as fixed-axis roll-pitch-yaw, as specified.rapier3d-urdf: the fixed children of a squeezed empty link stay rigidly attached, and the jointtaking over the removed link's joint keeps its pivot.
camera_rotationandcamera_fwd_dirreturn the actual camera orientation.