Commit Graph

44 Commits

Author SHA1 Message Date
Sébastien Crozet
0b7c3b34ec feat: migrate to glam whenever relevant + migrate testbed to kiss3d instead of bevy + release v0.32.0 (#909)
* feat: migrate to glam whenever relevant + migrate testbed to kiss3d instead of bevy

* chore: update changelog

* Fix warnings and tests

* Release v0.32.0
2026-01-09 17:26:36 +01:00
Sébastien Crozet
48de83817e feat: persistent islands + manifold reduction (#895)
* feat: initial implementation of contact manifold reduction

* feat: try bepu-like manifold reduction

* feat: simplification of the constraints counting and indexing logic

* feat: add concept of incremental islands with a single awake island

More islands manager fixes

* feat: start adding support for multiple awake islands

* feat: add more timings

* feat: implement incremental island split & merge

* chore: refactor islands manager into multiple files

* chore: refactor manifold reduction to its own file + add naive reduction method

* feat: add islands manager validation checks

* fix various bugs in the new islands system

* chore: remove redundant active_set_offset field
2026-01-09 17:04:02 +01:00
Hayden Flinner
da2b0a8a8a fix snapshots in 2d examples (#875) 2025-11-21 17:12:05 +01:00
Dragos Daian
e40d3a9dce Add joint softness per joint (#901) 2025-11-21 16:48:52 +01:00
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
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
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
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
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
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
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
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
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
da92e5c283 Fix clippy and enable clippy on CI 2024-01-27 17:13:08 +01:00
Sébastien Crozet
d1fc90c150 feat: rework solver parameters to make it easy to recover the old behaviors 2024-01-24 21:57:54 +01:00
Sébastien Crozet
9b87f06a85 feat: implement new "small-steps" solver + joint improvements 2024-01-21 21:02:27 +01:00
Sébastien Crozet
ab68a8386a feat: add a checkbox to enable/disable the debug renderer in the testbed 2023-11-04 18:12:38 +01:00
johnny-smitherson
780ba4a216 update bevy 0.11 - fix compile errors 2023-10-23 16:39:52 +00:00
Sébastien Crozet
5063fa4203 Testbed: switch to bevy 0.7 2022-04-28 13:19:58 +02:00
Sébastien Crozet
2b1374c596 First round deleting the component sets. 2022-04-20 19:02:49 +02:00
Sébastien Crozet
fb20d72ee2 Joint API and joint motors improvements 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
f74b8401ad Implement multibody joints and the new solver 2022-01-02 16:58:36 +01:00
Crozet Sébastien
47139323e0 Fix compilation with the parallel feature enabled. 2021-05-17 10:48:51 +02:00
Crozet Sébastien
abb4742758 Fix warnings when compiling tests. 2021-05-17 09:46:07 +02:00
Crozet Sébastien
1a84bf2af3 Replace Kiss3d by Bevy for the testbed renderer. 2021-05-16 17:49:20 +02:00
Crozet Sébastien
90db26eb50 Fix warnings in tests and testbed. 2021-01-23 13:34:03 +01:00
Crozet Sébastien
b779eb261e Fix compilation in 2D. 2021-01-22 16:43:16 +01:00
Crozet Sébastien
99c2184e13 Fix regressions introduced by the merge with master. 2021-01-22 16:33:55 +01:00
rezural
1ac2d03fea Revert "leading _ for run_state to squash warning"
This reverts commit aaf2872e5c.
2020-12-31 13:56:37 +11:00
rezural
aaf2872e5c leading _ for run_state to squash warning 2020-12-31 13:06:13 +11:00
rezural
caf9d71bc7 cargo fmt 2020-12-24 21:45:00 +11:00
rezural
5fce09cb52 rework some threading code with the ui 2020-12-24 21:42:59 +11:00
Sébastien Crozet
754a48b7ff First public release of Rapier. 2020-08-25 22:10:25 +02:00