aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md20
1 files changed, 19 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 53e04f9..74f0497 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-## Unreleased
+## v0.19.0 (05 May 2024)
### Fix
@@ -8,14 +8,32 @@
- 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 warmstarting. Significantly improves stacking capabilities. Generally reduces
+ the "pop" effect that can happen due to penetration corrections.
+- Add `RigidBodyBuilder::soft_ccd_prediction` and `RigidBody::set_soft_ccd_prediction` to enable `soft-ccd`: a form of
+ CCD 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.
+- Add a `ColliderBuilder::contact_skin`, `Collider::set_contact_skin`, and `Collider::contact_skin`. This forces the
+ solver 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).
+- Internal edges were reworked to avoid dropping contacts that would help with stability, and improve stability of
+ collisions between two triangle meshes. The `TriMeshFlags::FIX_INTERNAL_EDGES` and
+ `HeightFieldFlags::FIX_INTERNAL_EDGES` flags were added to enable internal edges handling.
+- Add `IntegrationParameters::length_units` to automatically adjust internal thresholds when the user relies on custom
+ length units (e.g. pixels in 2D).
### Modified