Skip to content

feat(rapier): modernize to rapier3d 0.33 (glam), redis 0.32, axum 0.8#18

Merged
chrishayuk merged 1 commit into
mainfrom
fix/rapier-modern-crates
Jun 6, 2026
Merged

feat(rapier): modernize to rapier3d 0.33 (glam), redis 0.32, axum 0.8#18
chrishayuk merged 1 commit into
mainfrom
fix/rapier-modern-crates

Conversation

@chrishayuk

Copy link
Copy Markdown
Collaborator

Ports rapier-service to current crate APIs (the deliberate follow-up to the earlier pin/revert).

Changes

  • rapier3d 0.18 → 0.33: the big one — migrate the math layer from nalgebra to rapier's new glam-based types (Vec3/Pose3/Rot3). Also: BroadPhaseBroadPhaseBvh; query_pipeline dropped (no longer a step() param); gravity passed by value; halfspace via SharedShape; joints take a Vector axis; has_any_active_contact() is now a method; linvel() returns by value.
  • redis 0.24 → 0.32: query_async now takes a single type parameter.
  • axum 0.7 → 0.8: route params :id{id}.
  • nalgebra 0.35, tower 0.5, tower-http 0.6.

Validation (new Rust tests)

Added #[cfg(test)] coverage — all green locally:

  • free-fall: a dynamic sphere drops ~4.5 m in ~1 s (gravity math ✓)
  • resting on floor: a ball settles on a static box and registers the contact (broad/narrow phase + collisions ✓)
  • revolute joint: adds and steps without panic ✓
  • orientation round-trip: quaternion in == quaternion out ✓

Re-enables cargo renovate now that rust.yml gates Rust changes (this is why the earlier auto-merged major bumps slipped through — they predated that CI).

Modernize the rapier-service to current crate APIs:
- rapier3d 0.18 -> 0.33: migrate math from nalgebra to the new glam-based
  layer (Vec3/Pose3/Rot3); BroadPhase -> BroadPhaseBvh; drop the query_pipeline
  (no longer a step() param); gravity by value; halfspace via SharedShape;
  joints take Vector axes; has_any_active_contact() is now a method; linvel()
  returns by value.
- redis 0.24 -> 0.32: query_async now takes a single type parameter.
- axum 0.7 -> 0.8: route params :id -> {id}.
- nalgebra 0.35, tower 0.5, tower-http 0.6.

Add Rust tests (free-fall, resting-on-floor collision, revolute joint,
orientation round-trip) validating the math port. Re-enable cargo renovate
now that rust.yml gates Rust changes.
@chrishayuk chrishayuk merged commit 0c50005 into main Jun 6, 2026
13 of 14 checks passed
@chrishayuk chrishayuk deleted the fix/rapier-modern-crates branch June 6, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant