Commit Graph

364 Commits

Author SHA1 Message Date
Sébastien Crozet
49fba6cd54 feat: rename AxisMask to AxesMask + enable LIN_Z only in 3D (#805) 2025-03-05 18:07:19 +01:00
Sébastien Crozet
108a2a18d6 feat: add PD and PID controller implementations (#804)
* feat: add a PID controller implementation

* feat: add small rigid-body utilities + test interpolation test

* fix: make scrolling weaker on macos

* feat: add the option to use the PID controller in the character controller demo.

* feat: add a stateless PD controller

* feat(rapier_testbed): cleanup & support PidController in 2D too

* chore: add comments for the PD and PID controllers

* chore: update changelog

* feat: rename PidErrors to PdErrors which is more accurate

* fix cargo doc

* chore: remove dead code

* chore: make test module non-pub
2025-03-05 14:06:49 +01:00
Thierry Berger
65f87d597b use hashset from parry (#716 follow up) (#788) 2025-01-17 16:06:06 +01:00
Chris Bacon
564f7b7348 Fix Nans from RevoluteJoint::angle() (#736)
Fixes #735
2025-01-08 17:47:13 +01:00
Thierry Berger
cf77b5bf57 Remove instant dependency in favor of web-time (#767) 2024-12-06 12:54:00 +01:00
Thierry Berger
93bd37d814 fix clippy needless lifetimes (#769)
+ ignore them for bevy where we often want explicitness
2024-12-05 15:55:12 +01:00
Thierry Berger
510237cc29 Profiling support (#743) 2024-11-19 16:33:26 +01:00
Bruce Mitchener
e7e196d9f9 Improve capacity handling for ColliderSet, RigidBodySet. (#726)
These allow an application to reduce the cost of reallocation when
they know that a large number of colliders or rigid bodies will
be created.
2024-09-16 16:45:14 +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
ed133e1ea9 Fix more typos. (#712)
These are ones not found by `typos` for various reasons.
2024-08-09 14:31:08 +02:00
Thierry Berger
7ff92b1cf5 Fix CI (#707)
Removes dead code + other rust 1.80 related fixes
2024-08-05 11:32:43 +02:00
Bruce Mitchener
35ac662371 Fix spelling of below and orthogonalization. (#700) 2024-07-26 14:17:33 +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
Thierry Berger
0ff55411a4 More Debug derives. (#686) 2024-07-19 16:13:25 +02:00
Thierry Berger
01dd200152 ci: cargo doc step (#671) 2024-07-12 16:29:22 +02:00
Sébastien Crozet
40ee5367d8 chore: add one more test for the multibody insertion out-of-bounds issue 2024-07-07 15:22:55 +02:00
Sébastien Crozet
9e699e0315 Fix broken multibody joint removal. 2024-07-07 15:22:55 +02:00
Sébastien Crozet
f34152e78b Fix out-of-bounds crash when merging two multibodies 2024-07-07 15:22:55 +02:00
Sébastien Crozet
3004a7d38d chore: update to nalgebra 0.33 and parry 0.16 (#664) 2024-06-23 22:57:51 +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
Bruce Mitchener
8a592e458e Fix typos. (#658) 2024-06-20 21:03:12 +02:00
Thierry Berger
9367198282 feat: rework QueryPipeline update API to take less parameters (#647)
* chore: rework QueryPipeline API to take a generic qbvh updater

This allows to pass less parameters depending on the updating mode.

* chore: rework struct and functions names, and docs

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2024-06-09 14:16:03 +02:00
Sébastien Crozet
a8a0f297f5 feat: add RevoluteJoint::angle to compute the revolute joint’s angle 2024-06-09 13:20:09 +02:00
Sébastien Crozet
a5a4152815 fix warning in tests 2024-06-09 12:09:58 +02:00
Sébastien Crozet
ad960bf245 chore: clippy fixes 2024-06-09 12:09:58 +02:00
Sébastien Crozet
edaa36ac7e chore: add more comments 2024-06-09 12:09:58 +02:00
Sébastien Crozet
0bdc620207 feat: add suport for kinematic multibody links 2024-06-09 12:09:58 +02:00
Sébastien Crozet
d9585de20b feat: add the ability to disable all contacts between two links belonging to the same multibody 2024-06-09 12:09:58 +02:00
Sébastien Crozet
2041c9549d feat: let user specify joints that cannot move for IK 2024-06-09 12:09:58 +02:00
Sébastien Crozet
d127af7816 feat: make RigidBody::add_collider private
Colliders must only be added through the `ColliderSet`.
2024-06-09 12:09:58 +02:00
Sébastien Crozet
5922612ef3 feat: impl Default for RigidBodyBuilder and ColliderBuilder 2024-06-09 12:09:58 +02:00
Sébastien Crozet
c785ea4996 feat: rename JointAxesMask::X/Y/Z by ::LIN_X/LIN_Y/LIN_Z and JointAxis::X/Y/Z by ::LinX/LinY/LinZ 2024-06-09 12:09:58 +02:00
Sébastien Crozet
cdec395d09 feat: rename cfm_factor, damping_ratio to contact_cfm_factor and contact_damping_ratio 2024-05-25 12:00:15 +02:00
Sébastien Crozet
ed8645e34c feat: remove the "fast constraint" special case 2024-05-25 12:00:15 +02:00
Sébastien Crozet
fdd935dbf1 feat: make the constraints regularization coefficients configurable with angular frequency instead of explicit ERP 2024-05-25 12:00:15 +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
0d76a55d80 chore: don’t return &mut Self with GenericJoint::flip 2024-05-05 16:34:55 +02:00
Fun Maker
4332818e02 Fix joint limits not being flipped in one body constrains. (#549) 2024-05-05 16:34:55 +02:00
Sébastien Crozet
425b2fc83d chore: misc typo fixes 2024-05-05 16:17:39 +02:00
Sébastien Crozet
7565e5e4ef chore: update to the latest parry api 2024-05-05 16:17:39 +02:00
Bruce Mitchener
7375a691e2 Fix some typos. (#620) 2024-05-05 12:11:38 +02:00
Sébastien Crozet
0a9153e273 chore: clippy fixes 2024-04-30 23:10:46 +02:00
Sébastien Crozet
5867d2e78d fix: include the 0.5 factor in pseudo (mass-normalized) kinetic energy calculation 2024-04-30 23:10:46 +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
6635d49c8b feat: add configurable distance cap to soft-ccd 2024-04-30 23:10:46 +02:00
Sébastien Crozet
f58b4f7c19 feat: add warmstarting to contact constraints resolution 2024-04-30 23:10:46 +02:00
Sébastien Crozet
de5e871cd1 chore: rework vertical stacks demo 2024-04-30 23:10:46 +02:00
Sébastien Crozet
9c5c14070d feat: add variable constraints stabilization iteration number 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
3ddf2441ea feat: add exact mlcp solver for pais of 2 constraints 2024-04-30 23:10:46 +02:00