Skip to content

Commit 4f2e09e

Browse files
committed
feat: bump dependencies
1 parent 90ab055 commit 4f2e09e

11 files changed

Lines changed: 100 additions & 48 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ package-lock.json
88
**/*.csv
99
.history
1010
.vscode/
11-
*.autosave.json
11+
*.autosave.json
12+
.claude

CHANGELOG.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,67 @@
11
## Unreleased
22

3+
### Added
4+
5+
- New `PhysicsWorld` convenience wrapper bundling `RigidBodySet`, `ColliderSet`, the broad/narrow
6+
phases, islands, joints, the CCD solver, gravity, and integration parameters in a single struct,
7+
for simpler setup of basic simulations. It also exposes helpers for waking bodies (`wake_up`,
8+
`wake_up_all`), iterating only active bodies (`active_bodies`), and iterating joints — including
9+
those attached to a given body (`impulse_joints`, `impulse_joints_with`, `multibody_joints`,
10+
`multibody_joints_with`).
11+
- `std`/`alloc` feature gating: `no_std` builds are now supported, and a subset of the library
12+
compiles without `alloc` as well (e.g. for `spirv` targets)
13+
([#928](https://github.com/dimforge/rapier/pull/928)).
14+
- `InteractionGroups` and `Group` now derive `bytemuck::NoUninit` under the `bytemuck` feature,
15+
and `InteractionTestMode` is `#[repr(u32)]`, making them GPU-uploadable.
16+
- `MultibodyJoint::joint_rot()` and `MultibodyJoint::coords()` expose the joint’s rotation and
17+
generalized coordinates publicly.
18+
- `ImpulseJointSet::set_bodies` rewires an existing impulse joint to a new pair of bodies while
19+
preserving its handle, configuration, and warm-started impulses.
20+
- `rapier3d-urdf`:
21+
- New `UrdfLoaderOptions::mesh_converter` lets the loader replace the original mesh with a
22+
cheap proxy shape (e.g. `MeshConverter::Obb`) while keeping the source mesh available for
23+
rendering via the new `UrdfCollider::visual` / `UrdfVisual` types.
24+
- New `UrdfLoaderOptions::scale` applies a uniform scale to link positions, joint anchors,
25+
mesh sizes, primitive shape sizes, inertial offsets, and prismatic joint limits.
26+
- New `UrdfLoaderOptions::squeeze_empty_fixed_links` (default `true`) removes empty links
27+
connected by fixed joints, splicing the kinematic chain so bodyless “frame-only” links
28+
(e.g. `world`, `*_tcp`) no longer create mass-less rigid-bodies.
29+
- URDF files with empty `<geometry></geometry>` blocks are now accepted (sanitized before
30+
parsing, then skipped when building colliders).
31+
- The `urdf_rs` crate is re-exported.
32+
333
### Fixed
434

35+
- `QueryPipeline::project_point` now honors its `max_dist` argument (it was previously ignored).
36+
- Several multibody-related crashes ([#906](https://github.com/dimforge/rapier/issues/906),
37+
[#907](https://github.com/dimforge/rapier/issues/907),
38+
[#908](https://github.com/dimforge/rapier/issues/908),
39+
[#927](https://github.com/dimforge/rapier/issues/927)).
540
- Continuous Collision Detection now consults the user's `PhysicsHooks::filter_contact_pair`
641
hook, matching narrow-phase semantics. Previously, CCD would clamp a fast-moving body's
7-
motion at a predicted impact with a pair the user had filtered out. Closes #754.
42+
motion at a predicted impact with a pair the user had filtered out
43+
([#929](https://github.com/dimforge/rapier/pull/929), closes
44+
[#754](https://github.com/dimforge/rapier/issues/754)).
45+
- Corrected the documentation of `RigidBody::add_force` / `add_torque` / `reset_forces` /
46+
`reset_torques`: user-defined forces and torques are **not** cleared automatically between
47+
steps and persist until explicitly reset
48+
([#903](https://github.com/dimforge/rapier/issues/903)).
849

950
### Modified
1051

1152
- **Breaking (CCD solver direct callers only):** `CCDSolver::find_first_impact` and
1253
`CCDSolver::predict_impacts_at_next_positions` now take an extra `hooks: &dyn PhysicsHooks`
1354
argument. `PhysicsPipeline::step` callers are unaffected.
55+
- **Breaking:** `QueryPipeline::project_point_and_get_feature` now takes an additional
56+
`max_dist: Real` argument.
57+
- **Breaking (`rapier3d-urdf`):** `UrdfLink::colliders` and `UrdfLinkHandle::colliders` changed
58+
from `Vec<Collider>` / `Vec<ColliderHandle>` to `Vec<UrdfCollider>` / `Vec<UrdfColliderHandle>`
59+
to carry the optional visual mesh override.
60+
- **Behavior change (`rapier3d-urdf`):** with `squeeze_empty_fixed_links` defaulting to `true`,
61+
empty links bridged by fixed joints are now collapsed by default. Set it to `false` to keep
62+
the previous behavior.
63+
- Update `glamx` to 0.3.
64+
- Updated `wide` version to `1` ([#902](https://github.com/dimforge/rapier/issues/902)).
1465

1566
## v0.31.0 (09 Jan. 2026)
1667

Cargo.toml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,17 @@ needless_lifetimes = "allow"
3737

3838
[workspace.dependencies]
3939
# Core math
40-
nalgebra = { version = "0.34", default-features = false, features = ["macros"] }
41-
glamx = { version = "0.2", default-features = false }
42-
simba = { version = "0.9.1", default-features = false }
40+
nalgebra = { version = "0.35", default-features = false, features = ["macros"] }
41+
glamx = { version = "0.3", default-features = false }
42+
simba = { version = "0.10", default-features = false }
4343
num-traits = { version = "0.2", default-features = false }
4444
approx = { version = "0.5", default-features = false }
4545

4646
# Parry (each crate picks its own variant)
47-
parry2d = { version = "0.26.0", default-features = false, features = ["required-features"] }
48-
parry3d = { version = "0.26.0", default-features = false, features = ["required-features"] }
49-
parry2d-f64 = { version = "0.26.0", default-features = false, features = ["required-features"] }
50-
parry3d-f64 = { version = "0.26.0", default-features = false, features = ["required-features"] }
47+
parry2d = { version = "0.28", default-features = false, features = ["required-features"] }
48+
parry3d = { version = "0.28", default-features = false, features = ["required-features"] }
49+
parry2d-f64 = { version = "0.28", default-features = false, features = ["required-features"] }
50+
parry3d-f64 = { version = "0.28", default-features = false, features = ["required-features"] }
5151

5252
# Utilities
5353
bitflags = "2"
@@ -56,7 +56,7 @@ log = "0.4"
5656
thiserror = { version = "2", default-features = false }
5757
profiling = "1.0"
5858
static_assertions = "1"
59-
wide = { version = "0.7.33", default-features = false }
59+
wide = { version = "1", default-features = false }
6060

6161
# Optional (optional = true must be set per-crate, not here)
6262
web-time = "1.1"
@@ -74,10 +74,10 @@ oorandom = { version = "11", default-features = false }
7474

7575
#simba = { path = "../simba" }
7676
#kiss3d = { path = "../kiss3d" }
77-
parry2d = { path = "../parry/crates/parry2d" }
78-
parry3d = { path = "../parry/crates/parry3d" }
79-
parry2d-f64 = { path = "../parry/crates/parry2d-f64" }
80-
parry3d-f64 = { path = "../parry/crates/parry3d-f64" }
77+
#parry2d = { path = "../parry/crates/parry2d" }
78+
#parry3d = { path = "../parry/crates/parry3d" }
79+
#parry2d-f64 = { path = "../parry/crates/parry2d-f64" }
80+
#parry3d-f64 = { path = "../parry/crates/parry3d-f64" }
8181
#nalgebra = { path = "../nalgebra" }
8282
#simba = { path = "../simba" }
8383
#wide = { path = "../wide" }
@@ -98,7 +98,7 @@ puffin_egui = { git = "https://github.com/tedsteen/puffin.git", rev = "11771ebe0
9898
# # See https://github.com/dimforge/rapier/issues/760.
9999
# puffin_egui = { version = "0.29", optional = true, git = "https://github.com/Vrixyz/puffin.git", branch = "expose_ui_options" }
100100
# puffin = { version = "0.19", optional = true, git = "https://github.com/Vrixyz/puffin.git", branch = "expose_ui_options" }
101-
# #
101+
102102

103103
[profile.release]
104104
#debug = true

crates/rapier_testbed2d-f64/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ unstable-puffin-pr-235 = []
4343
features = ["parallel", "profiler_ui"]
4444

4545
[dependencies]
46-
nalgebra = { version = "0.34", features = ["rand", "glam029"] }
47-
glamx = "0.2"
48-
rand = "0.9"
49-
rand_pcg = "0.9"
46+
nalgebra = { version = "0.35", features = ["rand"] }
47+
glamx = "0.3"
48+
rand = "0.10"
49+
rand_pcg = "0.10"
5050
web-time = { version = "1.1" }
5151
bitflags = "2"
5252
num_cpus = { version = "1", optional = true }
@@ -60,7 +60,7 @@ puffin_egui = { version = "0.29", optional = true }
6060
serde = { version = "1", features = ["derive"] }
6161
serde_json = "1"
6262
indexmap = { version = "2", features = ["serde"] }
63-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
63+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
6464

6565
[dependencies.rapier]
6666
package = "rapier2d-f64"

crates/rapier_testbed2d/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ unstable-puffin-pr-235 = []
4343
features = ["parallel", "other-backends", "profiler_ui"]
4444

4545
[dependencies]
46-
nalgebra = { version = "0.34", features = ["rand", "glam029"] }
47-
glamx = "0.2"
48-
rand = "0.9"
49-
rand_pcg = "0.9"
46+
nalgebra = { version = "0.35", features = ["rand"] }
47+
glamx = "0.3"
48+
rand = "0.10"
49+
rand_pcg = "0.10"
5050
web-time = { version = "1.1" }
5151
bitflags = "2"
5252
num_cpus = { version = "1", optional = true }
@@ -60,7 +60,7 @@ puffin_egui = { version = "0.29", optional = true }
6060
serde = { version = "1", features = ["derive"] }
6161
serde_json = "1"
6262
indexmap = { version = "2", features = ["serde"] }
63-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
63+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
6464

6565
[dependencies.rapier]
6666
package = "rapier2d"

crates/rapier_testbed3d-f64/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ unstable-puffin-pr-235 = []
4545
features = ["parallel", "profiler_ui"]
4646

4747
[dependencies]
48-
nalgebra = { version = "0.34", features = ["rand", "glam029"] }
49-
glamx = "0.2"
50-
rand = "0.9"
51-
rand_pcg = "0.9"
48+
nalgebra = { version = "0.35", features = ["rand"] }
49+
glamx = "0.3"
50+
rand = "0.10"
51+
rand_pcg = "0.10"
5252
web-time = { version = "1.1" }
5353
bitflags = "2"
5454
num_cpus = { version = "1", optional = true }
@@ -61,7 +61,7 @@ serde_json = "1"
6161
profiling = "1.0"
6262
puffin_egui = { version = "0.29", optional = true }
6363
indexmap = { version = "2", features = ["serde"] }
64-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
64+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
6565

6666
[dependencies.rapier]
6767
package = "rapier3d-f64"

crates/rapier_testbed3d/Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ unstable-puffin-pr-235 = []
4343
features = ["parallel", "other-backends", "profiler_ui"]
4444

4545
[dependencies]
46-
nalgebra = { version = "0.34", features = ["rand", "glam029"] }
47-
glamx = "0.2"
48-
rand = "0.9"
49-
rand_pcg = "0.9"
46+
nalgebra = { version = "0.35", features = ["rand"] }
47+
glamx = "0.3"
48+
rand = "0.10"
49+
rand_pcg = "0.10"
5050
web-time = { version = "1.1" }
5151
bitflags = "2"
52-
glam = { version = "0.27", optional = true } # For Physx
52+
glam = { version = "0.33", optional = true } # For Physx
5353
num_cpus = { version = "1", optional = true }
5454
physx = { version = "0.19", features = ["glam"], optional = true }
5555
physx-sys = { version = "0.11", optional = true }
@@ -62,7 +62,7 @@ egui = "0.34"
6262
profiling = "1.0"
6363
puffin_egui = { version = "0.29", optional = true }
6464
indexmap = { version = "2", features = ["serde"] }
65-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
65+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
6666

6767
[dependencies.rapier]
6868
package = "rapier3d"

examples2d/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ other-backends = ["rapier_testbed2d/other-backends"]
1313
enhanced-determinism = ["rapier2d/enhanced-determinism"]
1414

1515
[dependencies]
16-
rand = "0.9"
16+
rand = "0.10"
1717
lyon = "0.17"
1818
dot_vox = "5"
19-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
19+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
2020

2121
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
2222
usvg = "0.14"

examples3d-f64/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ parallel = ["rapier3d-f64/parallel", "rapier_testbed3d-f64/parallel"]
1212
enhanced-determinism = ["rapier3d-f64/enhanced-determinism"]
1313

1414
[dependencies]
15-
rand = "0.9"
15+
rand = "0.10"
1616
getrandom = { version = "0.2", features = ["js"] }
1717
wasm-bindgen = "0.2"
1818
obj-rs = { version = "0.7", default-features = false }
1919
bincode = "1"
2020
serde = "1"
21-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
21+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
2222

2323
[dependencies.rapier_testbed3d-f64]
2424
path = "../crates/rapier_testbed3d-f64"

examples3d/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ other-backends = ["rapier_testbed3d/other-backends"]
1313
enhanced-determinism = ["rapier3d/enhanced-determinism"]
1414

1515
[dependencies]
16-
rand = "0.9"
16+
rand = "0.10"
1717
getrandom = { version = "0.2", features = ["js"] }
1818
wasm-bindgen = "0.2"
1919
obj-rs = { version = "0.7", default-features = false }
2020
serde = "1"
2121
bincode = "1"
2222
serde_json = "1"
2323
dot_vox = "5"
24-
glam = { version = "0.32.1", features = ["fast-math"] }
25-
kiss3d = { version = "0.41.0", features = ["egui", "serde"] }
24+
glam = { version = "0.33", features = ["fast-math"] }
25+
kiss3d = { version = "0.42.0", features = ["egui", "serde"] }
2626

2727
[dependencies.rapier_testbed3d]
2828
path = "../crates/rapier_testbed3d"

0 commit comments

Comments
 (0)