diff options
| author | Thierry Berger <contact@thierryberger.com> | 2024-06-03 15:20:24 +0200 |
|---|---|---|
| committer | Thierry Berger <contact@thierryberger.com> | 2024-06-03 15:20:24 +0200 |
| commit | e1ed90603e618e28f48916690d761e0d8213e2ad (patch) | |
| tree | 8399da9825ca9ee8edd601b1265e818fa303b541 | |
| parent | fe336b9b98d5825544ad3a153a84cb59dc9171c6 (diff) | |
| parent | 856675032e76b6eb4bc9e0be4dc87abdbcfe0421 (diff) | |
| download | rapier-e1ed90603e618e28f48916690d761e0d8213e2ad.tar.gz rapier-e1ed90603e618e28f48916690d761e0d8213e2ad.tar.bz2 rapier-e1ed90603e618e28f48916690d761e0d8213e2ad.zip | |
Merge branch 'master' into collider-builder-debug
116 files changed, 5376 insertions, 1619 deletions
diff --git a/.github/workflows/rapier-ci-build.yml b/.github/workflows/rapier-ci-build.yml index 1b29d15..c38a1a5 100644 --- a/.github/workflows/rapier-ci-build.yml +++ b/.github/workflows/rapier-ci-build.yml @@ -13,7 +13,7 @@ jobs: check-fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check formatting run: cargo fmt -- --check build-native: @@ -21,7 +21,7 @@ jobs: env: RUSTFLAGS: -D warnings steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt-get install -y cmake libxcb-composite0-dev - name: Clippy run: cargo clippy @@ -60,7 +60,7 @@ jobs: env: RUSTFLAGS: -D warnings steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: rustup target add wasm32-unknown-unknown - name: build rapier2d run: cd crates/rapier2d && cargo build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; @@ -71,7 +71,7 @@ jobs: env: RUSTFLAGS: -D warnings steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: rustup target add wasm32-unknown-emscripten - name: build rapier2d run: cd crates/rapier2d && cargo build --verbose --target wasm32-unknown-emscripten; diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f57869..f9ec4d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,96 @@ +## Unreleased + +### Added + +- Add `Multibody::inverse_kinematics`, `Multibody::inverse_kinematics_delta`, + and `::inverse_kinematics_delta_with_jacobian` + for running inverse kinematics on a multibody to align one its links pose to the given prescribed pose. +- Add `InverseKinematicsOption` to customize some behaviors of the inverse-kinematics solver. +- Add `Multibody::body_jacobian` to get the jacobian of a specific link. +- Add `Multibody::update_rigid_bodies` to update rigid-bodies based on the multibody links poses. +- Add `Multibody::forward_kinematics_single_link` to run forward-kinematics to compute the new pose and jacobian of a + single link without mutating the multibody. This can take an optional displacement on generalized coordinates that are + taken into account during transform propagation. + +### Modified + +- The contact constraints regularization parameters have been changed from `erp/damping_ratio` to + `natural_frequency/damping_ratio`. This helps define them in a timestep-length independent way. The new variables + are named `IntegrationParameters::contact_natural_frequency` and `IntegrationParameters::contact_damping_ratio`. +- The `IntegrationParameters::normalized_max_penetration_correction` has been replaced + by `::normalized_max_corrective_velocity` + to make the parameter more timestep-length independent. It is now set to a non-infinite value to eliminate aggressive + "popping effects". +- The `Multibody::forward_kinematics` method will no longer automatically update the poses of the `RigidBody` associated + to each joint. Instead `Multibody::update_rigid_bodies` has to be called explicitly. +- The `Multibody::forward_kinematics` method will automatically adjust the multibody’s degrees of freedom if the root + rigid-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). +- Remove an internal special-case for contact constraints on fast contacts. The doesn’t seem necessary with the substep + solver. + +## v0.19.0 (05 May 2024) + +### Fix + +- Fix crash when simulating a spring joint between two dynamic bodies. +- Fix kinematic bodies not being affected by gravity after being switched back to dynamic. +- Fix regression on contact force reporting from contact force events. +- Fix kinematic character controller getting stuck against vertical walls. +- Fix joint limits/motors occasionally not being applied properly when one of the attached + rigid-bodies is fixed. +- Fix an issue where contacts would be completely ignored between two convex shapes. + +### Added + +**Many stability improvements were added as part of this release. To see illustrations of some of these +changes, see [#625](https://github.com/dimforge/rapier/pull/625).** + +- Add `RigidBody::predict_position_using_velocity` to predict the next position of the rigid-body + based only on its current velocity. +- Add `Collider::copy_from` to copy most collider attributes to an existing collider. +- Add `RigidBody::copy_from` to copy most rigid-body attributes to an existing rigid-body. +- Add the `BroadPhase` trait and expect an implementor of this trait as input to `PhysicsPipeline::step`. +- Implement a 2D block-solver as well as war |
