Commit Graph

100 Commits

Author SHA1 Message Date
Sébastien Crozet
317322b31b feat: reduce the amount of duplicate work the broad-phase is doing for user changes and CCD + release v0.28.0 (#872)
* feat: reduce the amount of duplicate work the broad-phase is doing for user changes and CCD

* Release v0.28.0

* chore: fix warnings

* chore: clippy fixes

* chore: more clippy fixes
2025-08-08 18:15:34 +02:00
Sébastien Crozet
95bd6fcfeb feat: switch to the new Bvh from parry for the broad-phase (#853)
* feat: switch to the new Bvh from parry for the broad-phase

* chore: cargo fmt + update testbed

* chore: remove the multi-grid SAP broad-phase

* fix soft-ccd handling in broad-phase

* Fix contact cleanup in broad-phase after collider removal

* chore: clippy fixes

* fix CCD regression

* chore: update changelog

* fix build with the parallel feature enabled

* chore: remove the now useless broad-phase proxy index from colliders

* fix tests
2025-07-11 22:36:40 +02:00
Thierry Berger
176c3bae14 Fix user changes handling (#803)
* add failing test from @Johannes0021

* apply fix on update_positions

* apply fix on ColliderSet::iter_mut

* fix clippy..

* more complete test

* feat: refactor modified sets into a wrapper to avoid future mistakes

* chore: fix typos

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2025-03-28 12:48:25 +01:00
Thierry Berger
65f87d597b use hashset from parry (#716 follow up) (#788) 2025-01-17 16:06:06 +01:00
Thierry Berger
9e1113c5c7 fix compilation for feature enhanced-determinism (#739) 2024-09-23 18:15:29 +02:00
Thierry Berger
c714ff81f2 ImpulseJointSet::get_mut option to wake up connected bodies (#716) 2024-09-13 10:48:56 +02:00
Bruce Mitchener
7374653338 docs: Fix minor typos and tweaks (#696)
---------

Co-authored-by: Thierry Berger <contact@thierryberger.com>
2024-07-22 11:32:08 +02:00
Bruce Mitchener
850aa31166 clippy: Fix clippy::field_reassign_with_default lints (#690) 2024-07-18 09:45:41 +02:00
Bruce Mitchener
678a725c66 Prefer explicit features for optional deps. (#681)
Implicit features are slated to be removed in a future version
of Rust (2024 edition).

Fixing this exposed 2 instances where the wrong feature was being
checked for `serde` vs `serde-serialize`.
2024-07-12 17:05:57 +02:00
Thierry Berger
3e8650f3a7 Fix delta_time being 0 resulting in incorrect simulation (#660)
* Add failing test

* fix tests

* better fix

* add changelog

* fix propagated to `contact_cfm_factor`

* PR feedback

* more PR feedbacks
2024-06-23 18:18:54 +02:00
Sébastien Crozet
62379de9ec feat: add simple inverse-kinematics solver for multibodies (#632)
* feat: add a simple jacobian-based inverse-kinematics implementation for multibodies

* feat: add 2d inverse kinematics example

* feat: make forward_kinematics auto-fix the root’s degrees of freedom

* feat: add 3d inverse kinematics example

* chore: update changelog

* chore: clippy fixes

* chore: more clippy fixes

* fix tests
2024-05-25 10:36:34 +02:00
Sébastien Crozet
c079452a47 feat: add IntegrationParameters::length_unit to adjust internal threshold based on user-defined length units 2024-04-30 23:10:46 +02:00
Sébastien Crozet
404e032433 feat: add soft (solver-based) ccd implementation 2024-04-30 23:10:46 +02:00
Sébastien Crozet
9964007269 feat: add some additional perf counters 2024-04-30 23:10:46 +02:00
Sébastien Crozet
3d112287b9 feat: add a BroadPhaseTrait for allowing custom broad-phases 2024-03-23 15:17:47 +01:00
Sébastien Crozet
cfb2c2c93e feat!: rename BroadPhase to BroadPhaseMultiSap 2024-03-23 15:17:47 +01:00
Max Whitehead
3fd18f4da8 fix(user_changes): Fix RigidBodyType changed to Dynamic not updating
active dynamic set.
2024-03-23 10:50:02 +01:00
Sébastien Crozet
da92e5c283 Fix clippy and enable clippy on CI 2024-01-27 17:13:08 +01:00
Sébastien Crozet
bef72df32c chore: CI fixes 2024-01-22 21:06:33 +01:00
Sébastien Crozet
9b87f06a85 feat: implement new "small-steps" solver + joint improvements 2024-01-21 21:02:27 +01:00
Bruce Mitchener
b9b5b58f61 docs: Expand "wrt" to "with respect to".
This makes things more clear as this abbreviation isn't known
to everyone.

While the trailing period is common in French, it isn't in English
(one might use "w.r.t.").

Fixes #498.
2023-08-28 11:13:27 +07:00
Imbris
9168d36dd4 Delete mention of removed PhysicsPipeline::step_generic
This was removed in version 0.12.0

89e3d7650c/CHANGELOG.md (L191)
2023-05-26 15:59:14 -04:00
Sébastien Crozet
0207f8cf96 Properly take initial sleeping state set by the user when creating a rigid-body 2022-12-11 17:47:42 +01:00
Sébastien Crozet
cb9350fd80 Fix tests 2022-12-11 15:50:25 +01:00
Sébastien Crozet
683baf6bf7 Allow the PhysicsPipeline and CollisionPipeline to update the QueryPipeline incrementally 2022-12-11 15:20:33 +01:00
Sébastien Crozet
46d976d97b Allow disabling colliders, rigid-bodies and impulse joints 2022-12-11 15:20:33 +01:00
Sébastien Crozet
73788a21ab Add ActiveEvents::CONTACT_FORCE_EVENTS for consistency with ActiveEvents::COLLISION_EVENTS 2022-07-07 11:01:39 +02:00
Sébastien Crozet
ba081fb6f5 Improve the API for initializing/setting mass-properties 2022-07-05 14:59:14 +02:00
Sébastien Crozet
5063f3bb4f Add the ability to disable contacts between two rigid-bodies attached by joints 2022-07-03 13:55:41 +02:00
Sébastien Crozet
b9f76e2fda Warning fixes 2022-07-01 12:00:32 +02:00
Sébastien Crozet
c9d8277377 Add contact force events generated above a user-defined threshold 2022-07-01 12:00:32 +02:00
Sébastien Crozet
d6b6189861 Properly wake-up rigid-bodies that must be awaken because of joints 2022-07-01 12:00:18 +02:00
Sébastien Crozet
10ca3474e6 Make theinstant dependency optional, behind a profiler cargo feature 2022-05-31 11:49:36 +02:00
Sébastien Crozet
bc2ae4b512 Add a basic lines-based debug-renderer 2022-04-22 16:11:23 +02:00
Sébastien Crozet
9237bfd530 Remove the default-sets feature 2022-04-20 19:02:49 +02:00
Sébastien Crozet
f108520b5a Finalize refactoring 2022-04-20 19:02:49 +02:00
Sébastien Crozet
2b1374c596 First round deleting the component sets. 2022-04-20 19:02:49 +02:00
Sébastien Crozet
ee679427cd Fix mass-properties update after collider change 2022-04-20 17:11:06 +02:00
Sébastien Crozet
0ac35e12a7 Update tests 2022-03-20 21:49:16 +01:00
Sébastien Crozet
a9e3441ecd Rename rigid-body static to fixed 2022-03-20 21:49:16 +01:00
Sébastien Crozet
db6a8c526d Fix warnings and add comments. 2022-03-20 21:49:16 +01:00
Sébastien Crozet
8e07d8799f Rigid-body: don’t clear forces at end of timestep + don’t wake-up a rigid-body if the modified property is equal to the old value. 2022-03-20 21:49:16 +01:00
Sébastien Crozet
0703e5527f Fix some solver issues
- Fix the wrong codepath taken  by the solver for contacts involving a collider without parent.
- Properly adress the non-linear treatment of the friction direction
- Simplify the sleeping strategy
- Add an impulse resolution multiplier
2022-01-16 16:52:40 +01:00
Sébastien Crozet
4454a845e9 Merge pull request #276 from dimforge/lock-translation-axis
Allow locking individual translational axes
2022-01-16 07:52:19 -08:00
Sébastien Crozet
0ccd15c4b1 Merge pull request #270 from tjamaan/fix_RigidBodyVelocity_rotation_center
fix the parameter used for local center of mass
2022-01-10 11:38:43 -08:00
Sébastien Crozet
b631fe9193 Allow locking individual translational axes 2022-01-09 22:15:36 +01:00
Sébastien Crozet
87ec0ced40 Address issues with the genral-case for multibody joints 2022-01-08 21:09:11 +01:00
Turki Jamaan
367fc3405f remove unnecessary comment
Co-authored-by: Sébastien Crozet <sebastien@crozet.re>
2022-01-08 21:37:13 +03:00
Turki Jamaan
e41fccb9fb fix the parameter used for local center of mass 2022-01-08 20:04:22 +03:00
Sébastien Crozet
9f9d329360 Fix tests 2022-01-02 17:43:38 +01:00