From aef873f20e7a1ee66b9d4c066884fa794048587b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crozet?= Date: Wed, 24 Jan 2024 23:28:04 +0100 Subject: [PATCH] Release v0.18.0 --- CHANGELOG.md | 22 ++++++++++++++++++++-- crates/rapier2d-f64/Cargo.toml | 2 +- crates/rapier2d/Cargo.toml | 2 +- crates/rapier3d-f64/Cargo.toml | 2 +- crates/rapier3d/Cargo.toml | 2 +- crates/rapier_testbed2d-f64/Cargo.toml | 4 ++-- crates/rapier_testbed2d/Cargo.toml | 4 ++-- crates/rapier_testbed3d-f64/Cargo.toml | 4 ++-- crates/rapier_testbed3d/Cargo.toml | 4 ++-- 9 files changed, 32 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71576cd23..9f578698c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,20 +1,38 @@ -## Unlereased +## v0.18.0 (24 Jan. 2024) +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](https://github.com/dimforge/rapier/pull/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_iterations` and +`RigidBodyBuilder::set_additional_solver_iterations`. This allows for higher-accuracy on subsets of the physics scene +without affecting performance of the other parts of the simulation. + ### Fix - Fix bug causing angular joint limits and motor to sometimes only take into account half of the angles specified by the user. +- Fix bug where collisions would not be re-computed after a collider was re-enabled. ### Added +- Add a `SpringJoint` and `SpringJointBuilder` for simulating springs with customizable stiffness and damping coefficients. - Add `SphericalJoint::local_frame1/2`, `::set_local_frame1/2`, and `SphericalJointBuilder::local_frame1/2` to set both the joint’s anchor and reference orientation. - Add `EffectiveCharacterMovement::is_sliding_down_slope` to indicate if the character controlled by the kinematic character controller is sliding on a slope that is too steep. - Add `Wheel::side_friction_stiffness` to customize the side friction applied to the vehicle controller’s wheel. +- Add `Wheel::raycast_info` to access more wheel information relative to the ground. - Add `DebugRenderStyle::disabled_color_multiplier` to make the debug-renderer color disabled object differently. +- Fix incorrect update of angular degrees-of-freedoms on spherical multibody joints. +- Fix debug-renderer showing moved kinematic rigid-bodies only at their initial position. ### Modified - Make `Wheel::friction_slip` public to customize the front friction applied to the vehicle controller’s wheels. - Add the `DebugRenderBackend::filter_object` predicate that can be implemented to apply custom filtering rules on the objects being rendered. -- Switch the testbed to `bevy 0.11` and use its new Gizmos API for rendering lines. +- Switch the testbed to `bevy 0.12` and use its new Gizmos API for rendering lines. +- Rename `NarrowPhase::contacts_with` to `NarrowPhase::contact_pairs_with`. +- Rename `NarrowPhase::intersections_with` to `NarrowPhase::intersection_pairs_with`. ## v0.17.2 (26 Feb. 2023) ### Fix diff --git a/crates/rapier2d-f64/Cargo.toml b/crates/rapier2d-f64/Cargo.toml index 3d88ee8a0..90ee6b5ed 100644 --- a/crates/rapier2d-f64/Cargo.toml +++ b/crates/rapier2d-f64/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier2d-f64" -version = "0.17.2" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "2-dimensional physics engine in Rust." documentation = "https://docs.rs/rapier2d" diff --git a/crates/rapier2d/Cargo.toml b/crates/rapier2d/Cargo.toml index 9d51771a6..0d8bc24a1 100644 --- a/crates/rapier2d/Cargo.toml +++ b/crates/rapier2d/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier2d" -version = "0.17.2" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "2-dimensional physics engine in Rust." documentation = "https://docs.rs/rapier2d" diff --git a/crates/rapier3d-f64/Cargo.toml b/crates/rapier3d-f64/Cargo.toml index bf8c984d6..12c71b749 100644 --- a/crates/rapier3d-f64/Cargo.toml +++ b/crates/rapier3d-f64/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier3d-f64" -version = "0.17.2" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "3-dimensional physics engine in Rust." documentation = "https://docs.rs/rapier3d" diff --git a/crates/rapier3d/Cargo.toml b/crates/rapier3d/Cargo.toml index 72903ffe7..1d3605bcc 100644 --- a/crates/rapier3d/Cargo.toml +++ b/crates/rapier3d/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier3d" -version = "0.17.2" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "3-dimensional physics engine in Rust." documentation = "https://docs.rs/rapier3d" diff --git a/crates/rapier_testbed2d-f64/Cargo.toml b/crates/rapier_testbed2d-f64/Cargo.toml index 03390f34d..2212a0312 100644 --- a/crates/rapier_testbed2d-f64/Cargo.toml +++ b/crates/rapier_testbed2d-f64/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier_testbed2d-f64" -version = "0.17.0" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "Testbed for the Rapier 2-dimensional physics engine in Rust." homepage = "http://rapier.org" @@ -59,5 +59,5 @@ bevy = {version = "0.12", default-features = false, features = ["bevy_asset", "b [dependencies.rapier] package = "rapier2d-f64" path = "../rapier2d-f64" -version = "0.17.2" +version = "0.18.0" features = [ "serde-serialize", "debug-render", "profiler" ] diff --git a/crates/rapier_testbed2d/Cargo.toml b/crates/rapier_testbed2d/Cargo.toml index 84687719e..06c32e3fa 100644 --- a/crates/rapier_testbed2d/Cargo.toml +++ b/crates/rapier_testbed2d/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier_testbed2d" -version = "0.17.0" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "Testbed for the Rapier 2-dimensional physics engine in Rust." homepage = "http://rapier.org" @@ -59,5 +59,5 @@ bevy = {version = "0.12", default-features = false, features = ["bevy_sprite", " [dependencies.rapier] package = "rapier2d" path = "../rapier2d" -version = "0.17.2" +version = "0.18.0" features = [ "serde-serialize", "debug-render", "profiler" ] diff --git a/crates/rapier_testbed3d-f64/Cargo.toml b/crates/rapier_testbed3d-f64/Cargo.toml index 5d86ae8cc..ca3c95c8a 100644 --- a/crates/rapier_testbed3d-f64/Cargo.toml +++ b/crates/rapier_testbed3d-f64/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier_testbed3d-f64" -version = "0.17.0" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "Testbed for the Rapier 3-dimensional physics engine in Rust." homepage = "http://rapier.org" @@ -58,5 +58,5 @@ bevy = {version = "0.12", default-features = false, features = ["bevy_winit", "t [dependencies.rapier] package = "rapier3d-f64" path = "../rapier3d-f64" -version = "0.17.2" +version = "0.18.0" features = [ "serde-serialize", "debug-render", "profiler" ] diff --git a/crates/rapier_testbed3d/Cargo.toml b/crates/rapier_testbed3d/Cargo.toml index d86975f05..3b3bdeb5d 100644 --- a/crates/rapier_testbed3d/Cargo.toml +++ b/crates/rapier_testbed3d/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rapier_testbed3d" -version = "0.17.0" +version = "0.18.0" authors = [ "Sébastien Crozet " ] description = "Testbed for the Rapier 3-dimensional physics engine in Rust." homepage = "http://rapier.org" @@ -62,5 +62,5 @@ bevy = {version = "0.12", default-features = false, features = ["bevy_winit", "t [dependencies.rapier] package = "rapier3d" path = "../rapier3d" -version = "0.17.2" +version = "0.18.0" features = [ "serde-serialize", "debug-render", "profiler" ]