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
This commit is contained in:
Sébastien Crozet
2025-07-11 22:36:40 +02:00
committed by GitHub
parent 86a257d4f1
commit 95bd6fcfeb
212 changed files with 2140 additions and 3953 deletions

View File

@@ -16,7 +16,8 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
rust-version = "1.86"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }
@@ -68,7 +69,7 @@ vec_map = { version = "0.8", optional = true }
web-time = { version = "1.1", optional = true }
num-traits = "0.2"
nalgebra = "0.33"
parry2d-f64 = "0.21.1"
parry2d-f64 = "0.22.0-beta.1"
simba = "0.9"
approx = "0.5"
rayon = { version = "1", optional = true }

View File

@@ -16,7 +16,8 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
rust-version = "1.86"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }
@@ -69,7 +70,7 @@ vec_map = { version = "0.8", optional = true }
web-time = { version = "1.1", optional = true }
num-traits = "0.2"
nalgebra = "0.33"
parry2d = "0.21.1"
parry2d = "0.22.0-beta.1"
simba = "0.9"
approx = "0.5"
rayon = { version = "1", optional = true }

View File

@@ -16,7 +16,8 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
rust-version = "1.86"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }
@@ -71,7 +72,7 @@ vec_map = { version = "0.8", optional = true }
web-time = { version = "1.1", optional = true }
num-traits = "0.2"
nalgebra = "0.33"
parry3d-f64 = "0.21.1"
parry3d-f64 = "0.22.0-beta.1"
simba = "0.9"
approx = "0.5"
rayon = { version = "1", optional = true }

View File

@@ -16,7 +16,7 @@ categories = [
]
keywords = ["physics", "joints", "multibody", "robotics", "urdf"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[features]
default = ["stl", "collada", "wavefront"]

View File

@@ -16,7 +16,7 @@ categories = [
]
keywords = ["physics", "joints", "multibody", "robotics", "urdf"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[features]
stl = ["dep:rapier3d-meshloader", "rapier3d-meshloader/stl", "__meshloader_is_enabled"]

View File

@@ -497,7 +497,9 @@ fn urdf_to_colliders(
}
#[cfg(not(feature = "__meshloader_is_enabled"))]
Geometry::Mesh { .. } => {
log::error!("Mesh loading is disabled by default. Enable one of the format features (`stl`, `collada`, `wavefront`) of `rapier3d-urdf` for mesh support.");
log::error!(
"Mesh loading is disabled by default. Enable one of the format features (`stl`, `collada`, `wavefront`) of `rapier3d-urdf` for mesh support."
);
}
#[cfg(feature = "__meshloader_is_enabled")]
Geometry::Mesh { filename, scale } => {

View File

@@ -16,7 +16,8 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
rust-version = "1.86"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }
@@ -41,7 +42,7 @@ simd-nightly = [
]
# Do not enable this feature directly. It is automatically
# enabled with the "simd-stable" or "simd-nightly" feature.
simd-is-enabled = ["dep:vec_map"]
simd-is-enabled = []
serde-serialize = [
"nalgebra/serde-serialize",
"parry3d/serde-serialize",
@@ -69,11 +70,11 @@ required-features = ["dim3", "f32"]
[dependencies]
vec_map = { version = "0.8", optional = true }
vec_map = "0.8"
web-time = { version = "1.1", optional = true }
num-traits = "0.2"
nalgebra = "0.33"
parry3d = "0.21.1"
parry3d = "0.22.0-beta.1"
simba = "0.9"
approx = "0.5"
rayon = { version = "1", optional = true }
@@ -89,6 +90,11 @@ log = "0.4"
ordered-float = "5"
thiserror = "2"
profiling = "1.0"
smallvec = "1"
# TODO: remove this, just for experiment.
wide = "0.7"
petgraph = "0.8"
[dev-dependencies]
bincode = "1"

View File

@@ -14,7 +14,7 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }

View File

@@ -14,7 +14,7 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }

View File

@@ -14,7 +14,7 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }

View File

@@ -14,7 +14,7 @@ categories = [
]
keywords = ["physics", "dynamics", "rigid", "real-time", "impulse_joints"]
license = "Apache-2.0"
edition = "2021"
edition = "2024"
[badges]
maintenance = { status = "actively-developed" }