Commit Graph

241 Commits

Author SHA1 Message Date
Sébastien Crozet
134f433903 feat: solver improvements + release v0.29.0 (#876)
* feat: solver improvements

* feat: add function to get/set whether gyroscopic forces are enabled on a rigid-body

* chore: switch to released versions of parry and wide instead of local patches

* fix cargo doc

* chore: typo fixes

* chore: clippy fix

* Release v0.29.0

* chore: more clippy fixes
2025-09-05 19:31:58 +02:00
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
Nam Se Hyun
f4b659ed02 Replace crossbeam channel with std::sync::mpsc (#861)
* Replace crossbeam channel with std::sync::mpsc

- Replace all uses of crossbeam::channel with std::sync::mpsc
- Remove crossbeam dependency from all Cargo.toml files
- Update documentation to remove crossbeam references
- Use std::sync::mpsc::channel() instead of crossbeam::channel::unbounded()

Fixes #828

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update mod.rs

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-24 16:31:59 +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
9c9ba4570e testbed: add gravity control + character controller speed control (#822) 2025-07-11 15:31:58 +02:00
Sébastien Crozet
ef3662b3b1 chore: clippy fixes 2025-05-16 19:27:02 +02:00
Sébastien Crozet
ef47848fba feat: update to parry 0.21 2025-05-16 19:27:02 +02:00
Sébastien Crozet
0652b4592f chore: update to parry 0.20.1 2025-05-02 15:16:43 +02:00
Sébastien Crozet
e44f636249 feat: add support for Voxels collider (#823)
* feat: start adding voxels support and some additional testbed demo settings

* feat: add support for parry’s new Voxels collider shape

* fix voxels demos

* feat: support rectangular voxels and additional voxels initialization

* chore: switch to parry 0.20

* chore: fix cargo doc

* Fix testbed build
2025-04-24 12:11:53 +02: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
Sébastien Crozet
5ca6ae9106 feat(rapier_testbed): autosave testbed configuration + add support for per-example settings (#799)
* feat(rapier_testbed): autosave testbed configuration + add support for per-example parameters

* feat(rapier_testbed): also save the camera position

* feat(rapier_testbed): improve ergonomics of example-specific settings

* chore: cargo fmt

* chore(rapier_testbed): small UI ergonomics improvement

* chore(rapier_testbed): clippy fixes
2025-02-21 17:52:46 +01:00
Thierry Berger
c4c549f21f fix mesh to use 3d mesh in 3d testbed (#790) 2025-01-20 15:30:21 +01:00
legendofa
b0e72bb79d Removed hardcoded values for DebugColor in various places (#774) 2025-01-13 09:09:21 +01:00
Austin J. Garrett
552cfebab0 Fix shape modification not updating graphics in testbed (#708)
* Fix shape modification not updating graphics in testbed

* Add update collider to Testbed

* chore: lint shape_modifications3

* chore: simplify GraphicsManager::remove_collider_nodes

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2025-01-08 18:03:01 +01:00
Thierry Berger
2ed1934756 Upgrade bevy 0.15 (#758)
* upgrade bevy 0.15

* use crate dependencies

* use puffin pr dependency

* suppress needless lifetimes

* fix compiler error due to merge

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2025-01-08 17:59:56 +01:00
Thierry Berger
dc4bd24da8 Update to Parry 0.18 (#770)
* update to parry ~main

* use traverse_depth_first

* add example to test intersection

* rely on upstream PR rather than local

* re-enable profiler_ui for examples

* rely on official parry repository

* chore: switch back to the published version of parry

* chore: update changelog

* chore: remove dead code

* fix compilation of rapier3d-meshloader and rapier3d-urdf

* chore: cargo fmt

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2025-01-08 17:16:34 +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
Thierry Berger
76357e3588 Fix CharacterController max/min slope handling (#701) 2024-09-23 11:10:29 +02:00
Thierry Berger
04058a111d update testbeds to bevy 0.14 (#723) 2024-09-06 16:15:34 +02:00
Ben Harper
af3a26c99d Improve distant object panics in broad phase (#128)
Co-authored-by: Thierry Berger <contact@thierryberger.com>
2024-08-05 17:19:52 +02:00
Bruce Mitchener
617428e988 Use workspace lints to control unexpected_cfgs. (#682)
By using `workspace.lints`, we can configure lints once for
everything (and then inherit it into the various crates).

The lint configuration for `unexpected_cfgs` works in 1.80+
and warns otherwise.

Co-authored-by: Thierry Berger <contact@thierryberger.com>
2024-08-02 16:38:56 +02:00
Thierry Berger
364b5b7c37 Color visualization for grounded character controller (#705) 2024-08-02 11:49:45 +02:00
Julian Knodt
595b952c52 Update flags for testbed (#704) 2024-07-31 09:28:56 +02:00
Sébastien Crozet
cf74150763 Release v0.22.0 (#695) 2024-07-20 17:14:43 +02:00
Bruce Mitchener
55a7d8b7ad testbed: Remove use of missing log feature (#684)
This code has been here but not used for a long time. There's no
log feature (or dependency) within the testbed crates.
2024-07-19 16:35:56 +02:00
Bruce Mitchener
23c0c05a5b Use bitflags! consistently. (#680)
This removes an `extern crate` and a `use` so that we always
call it via `bitflags::bitflags!` everywhere.
2024-07-12 17:00:24 +02:00
Thierry Berger
5308a28435 fix: less invasive solve_character_collision_impulses function (#652)
* fix: less invasive `solve_character_collision_impulses` function

Taking ownership of the elements is not necessary.

It also conveys the information that elements are only read.

* Add Changelog
2024-06-23 23:01: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
8160b4ebdb feat: change the character controller’s solve_character_collision_impulses to take multiple CharacterCollision (#646)
* character controller: solve multiple collisions

* add solve multiple collisions to changelog

* chore: apply review comments

---------

Co-authored-by: Sébastien Crozet <sebcrozet@dimforge.com>
2024-06-09 13:20:58 +02:00
Thierry Berger
d687fe97b1 fix: testbed: keyD removes only dynamic bodies as intended (#648) 2024-06-07 15:16:45 +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
4737a96169 fix: allow enexpected_cfgs 2024-05-25 12:00:15 +02:00
Sébastien Crozet
174778067d feat: ui to set the number of simulation steps per frame 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
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
9ba155748e chore: clenaup testbed profiling ui 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
f58b4f7c19 feat: add warmstarting to contact constraints resolution 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
9964007269 feat: add some additional perf counters 2024-04-30 23:10:46 +02:00
Sébastien Crozet
e69e73e589 chore: clippy fixes 2024-03-24 18:06:00 +01:00
Sébastien Crozet
2df7258570 feat: update testbeds to bevy 0.13 2024-03-24 18:06:00 +01:00
Sébastien Crozet
b3a00b4123 feat: add the DefaultBroadPhase type alias 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
Sébastien Crozet
f9663f894c chore: clippy fix 2024-03-23 10:39:02 +01:00
Sébastien Crozet
6b6c349cfa Fix testbed snapshot restore system 2024-03-23 10:39:02 +01:00