Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
b989b8b
2026.8.21.21.27
baka4n Aug 21, 2026
02f6bea
Update physics_world.rs
baka4n Aug 21, 2026
87f7521
2026.8.21.23.50
baka4n Aug 21, 2026
965fb06
2026.8.22.0.1 fork fixes: #778 cylinder axis, #488 KCC moving platfor…
baka4n Aug 22, 2026
bf65a5c
2026.8.22.0.2 issue #181 set_max_linear/angular_velocity: RigidBody/R…
baka4n Aug 22, 2026
6e98d06
2026.8.22.0.3 issue #457 joint query/force: GenericJoint::position()/…
baka4n Aug 22, 2026
c6d6cc8
2026.8.22.0.4 issue #548 CCD point of impact: SweepToiOutput witness …
baka4n Aug 22, 2026
894d34e
2026.8.22.18.20
baka4n Aug 22, 2026
372d125
2026.8.22.20.27 force containers: contact solver bridge (observation-…
baka4n Aug 22, 2026
079afe5
git link parry
baka4n Aug 22, 2026
085ad95
add submodule nalgebra
baka4n Aug 22, 2026
731d9e0
remove submodule
baka4n Aug 22, 2026
dc81809
rapier issues + force lifecycle (#488 #984 #993 #223 #778 #548 #457 #…
baka4n Aug 23, 2026
9383b01
2026.8.23 parallel: wake per-body reset (P1) + sleep-scan two-pass ra…
baka4n Aug 23, 2026
3552202
2026.8.23 linalg: DVector foundation (bit-identical dot/component_mul…
baka4n Aug 23, 2026
5c42a68
2026.8.23 linalg: DMatrix + bit-identical gemm (matrixmultiply large …
baka4n Aug 23, 2026
5947fcf
2026.8.23 linalg: P4 LU partial-pivot (bit-identical to nalgebra) + t…
baka4n Aug 23, 2026
3e43e36
2026.8.24 linalg: P5-support API (from_fn/From<Vec>/rows_owned/set_co…
baka4n Aug 24, 2026
a73e62b
2026.8.24 soft_body: Phase 0a 软体数据结构 + 质点/弹簧 Hooke 力 + 半隐式 Euler 积分器 …
baka4n Aug 24, 2026
cb0ab91
2026.8.24 soft_body: Phase 0b 接入 World — PhysicsWorld 持有 SoftBodySet …
baka4n Aug 24, 2026
e0cbd6a
2026.8.24 soft_body: Phase 2 弹簧力路由进 force_containers — SoftParticle.b…
baka4n Aug 24, 2026
e7fa3c1
2026.8.24 soft_body: Phase 3 可变形网格 XPBD (路线 C MVP) — SoftSolver 枚举 + …
baka4n Aug 24, 2026
4c7f472
2026.8.25 soft_body: Phase 5b 支持软体删除/生命周期(SoftBodySet.bodies->Vec<Opt…
baka4n Aug 25, 2026
fac25d1
2026.8.25 soft_body: Phase 5f 碰撞耦合最小改动 — SoftBody.collide 标志 + step 跳…
baka4n Aug 25, 2026
f89d93f
2026.8.24 soft_body: Phase 6 布料软体 (cloth) — SoftBody.triangles 字段 + a…
baka4n Aug 25, 2026
6a9d56a
2026.8.25 Phase 7 软体风场/空气阻力 + 休眠/诊断: SoftBody.wind 字段 + Wind 结构 + app…
baka4n Aug 25, 2026
fa97b0e
2026.8.25 Phase 8 锚定任意刚体: SoftParticle.bound_local + attach_particle/…
baka4n Aug 26, 2026
370155e
2026.8.25 Phase 9 撕裂: SoftBody.tear_strain + set_tear_strain + tear()…
baka4n Aug 26, 2026
971f082
2026.8.25 Phase 10 塑性变形: SoftBody.plasticity + PlasticityParams{yield…
baka4n Aug 26, 2026
3576fca
2026.8.25 Phase 11 充气/气压: SoftBody.pressure + set_pressure/clear_pres…
baka4n Aug 26, 2026
233f970
2026.8.26 Phase 12 自碰撞: SoftBody.self_collision + SelfCollisionParams…
baka4n Aug 26, 2026
d75ed3f
2026.8.26 Phase 13 逐约束刚度: XPBD step_xpbd 改为逐约束读取 compliance(alpha 按 c…
baka4n Aug 26, 2026
0e3f3eb
2026.8.26 Phase 14 软软碰撞(cross-body): SoftBody.cross_collision: Option…
baka4n Aug 26, 2026
ba02c24
2026.8.26 Phase 16 体积守恒: SoftBody.volume_conservation: Option<Real> +…
baka4n Aug 26, 2026
8b41e6b
2026.8.26 Phase 17 软体间黏连: SoftBody.cohesion: Option<CohesionParams>{r…
baka4n Aug 26, 2026
d344cff
2026.8.26 Phase 18 结构阻尼: SoftBody.damping: Real + set_damping; step_x…
baka4n Aug 26, 2026
9ddba73
2026.8.26 Phase 19 各向异性柔度: DistanceConstraint 加 compression 字段(压缩侧柔度)…
baka4n Aug 26, 2026
0590b96
2026.8.26 Phase 20 软软摩擦: SelfCollisionParams 加 friction 字段(0≤μ≤1); se…
baka4n Aug 26, 2026
d7dd50d
2026.8.26 Phase 21 自适应四面体细分: subdivide_tetrahedra (1→4 重心细分); 仅细分最长边>…
baka4n Aug 26, 2026
31fc638
Update soft_body.rs
baka4n Aug 26, 2026
203ec6e
2026.8.27 Phase 24 软体 substeps: SoftBody 加 substeps:u32(默认 1), step()…
baka4n Aug 27, 2026
b5d33fc
2026.8.27 Phase 27 软体断裂力学撕裂准则+体级正交各向异性
baka4n Aug 27, 2026
2694353
2026.8.27 Phase 27 软体黏弹性率相关本构 + 均匀温度场
baka4n Aug 27, 2026
fd9a856
2026.8.28 Phase 27 隐式 backward-Euler 参考求解器(B8 比较路径) - SoftBody::step_…
baka4n Aug 27, 2026
9705ff7
Phase 29 soft body corotated linear elasticity: per-tet shape matchin…
baka4n Aug 28, 2026
1a9b2d9
Phase 30 soft body Neo-Hookean logarithmic volume energy: neo_hookean…
baka4n Aug 29, 2026
22a072d
Phase 31 软体主动应变/肌肉收缩 (active strain): Spring/DistanceConstraint 加 act…
baka4n Aug 29, 2026
c2f01da
Phase 32 肌纤维走向 (muscle fibre direction): Spring/DistanceConstraint 加 …
baka4n Aug 30, 2026
f8de028
Merge pull request #1 from dimforge/master
baka4n Aug 30, 2026
3cb18e8
Phase 35 流体软体 SPH 状态层 (fluid body): 新增 src/dynamics/fluid.rs (FluidPa…
baka4n Aug 30, 2026
09ca6ca
granular add
baka4n Sep 2, 2026
8ba670c
Phase 38 granular: uniform spatial-hash broad-phase (cell=2·r_max, 27…
baka4n Sep 2, 2026
2fb9215
track rigid body spatial changes and submodules
baka4n Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/python-bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/cache@v4
with:
path: |
Expand Down Expand Up @@ -44,6 +46,8 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/python-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ jobs:
- { runner: windows-latest, target: x86_64-pc-windows-msvc }
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build wheel
uses: PyO3/maturin-action@v1
with:
Expand Down
26 changes: 26 additions & 0 deletions .github/workflows/rapier-ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Check formatting
run: cargo fmt -- --check
doc:
Expand All @@ -30,6 +32,8 @@ jobs:
RUSTDOCFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- name: Cargo doc
run: cargo doc --features parallel,serde-serialize,debug-render -p rapier3d -p rapier2d -p rapier3d-meshloader -p rapier3d-urdf && cargo doc -p mjcf-rs --features msh && cargo doc -p rapier3d-mjcf --features stl,wavefront,msh
Expand All @@ -42,6 +46,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y cmake libxcb-composite0-dev
# WORKAROUND: zune-core 0.5.2 made its `warn!` macro expand to nothing, which breaks
Expand Down Expand Up @@ -77,6 +83,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- name: Build rapier2d
run: cargo build -p rapier2d;
Expand All @@ -103,6 +111,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- name: Test determinism (SIMD backend)
run: cargo test -p rapier3d --release --features enhanced-determinism --test simd_backend_determinism
Expand Down Expand Up @@ -131,6 +141,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- name: Test snapshot portability (3D, aarch64)
run: cargo test -p rapier3d --release --features enhanced-determinism,serde-serialize --test snapshot_portability
Expand All @@ -147,6 +159,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- name: Test thread-count determinism
run: cargo test -p rapier3d --release --features parallel,serde-serialize --test thread_count_determinism
Expand All @@ -170,6 +184,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install stable Rust
uses: dtolnay/rust-toolchain@master
with:
Expand Down Expand Up @@ -211,6 +227,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install nightly Rust with Miri
uses: dtolnay/rust-toolchain@master
with:
Expand All @@ -227,6 +245,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- run: rustup target add wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- name: build rapier2d
Expand All @@ -246,6 +266,8 @@ jobs:
CARGO_TARGET_WASM32_WASIP1_RUNNER: node ${{ github.workspace }}/.github/scripts/run-wasi.mjs
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install stable Rust with wasm32-wasip1
uses: dtolnay/rust-toolchain@master
with:
Expand Down Expand Up @@ -274,6 +296,8 @@ jobs:
RUSTFLAGS: -D warnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: Swatinem/rust-cache@v2
- run: sudo apt-get install -y cmake libxcb-composite0-dev
# See `clippy`: zune-core 0.5.2 breaks zune-jpeg, reached here through the
Expand Down Expand Up @@ -303,6 +327,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Linux dependencies
uses: ./.github/actions/install-linux-deps
- uses: Swatinem/rust-cache@v2
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "parry"]
path = parry
url = https://github.com/Polari-Stars-MC/parry.git
12 changes: 7 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ default-members = [
]
# `typescript/` is the JS/Wasm bindings' own Cargo workspace; keep it out of
# this one so root-level `cargo` commands never try to absorb its crates.
exclude = ["typescript"]
exclude = ["typescript", "parry", "nalgebra"]
resolver = "2"

[workspace.package]
Expand Down Expand Up @@ -69,13 +69,15 @@ nalgebra = { version = "0.35", default-features = false, features = ["macros"] }
glamx = { version = "0.3", default-features = false }
simba = { version = "0.10.2", default-features = false }
num-traits = { version = "0.2", default-features = false }
# Bit-identical gemm backend (same crate nalgebra delegates to for dynamic matrices).
matrixmultiply = "0.3"
approx = { version = "0.5", default-features = false }

# Parry (each crate picks its own variant)
parry2d = { version = "0.30.2", default-features = false, features = ["required-features"] }
parry3d = { version = "0.30.2", default-features = false, features = ["required-features"] }
parry2d-f64 = { version = "0.30.2", default-features = false, features = ["required-features"] }
parry3d-f64 = { version = "0.30.2", default-features = false, features = ["required-features"] }
parry2d = { package = "parry2d", path = "parry/crates/parry2d", default-features = false, features = ["required-features"] }
parry3d = { package = "parry3d", path = "parry/crates/parry3d", default-features = false, features = ["required-features"] }
parry2d-f64 = { package = "parry2d-f64", path = "parry/crates/parry2d-f64", default-features = false, features = ["required-features"] }
parry3d-f64 = { package = "parry3d-f64", path = "parry/crates/parry3d-f64", default-features = false, features = ["required-features"] }

# Utilities
arrayvec = { version = "0.7", default-features = false }
Expand Down
2 changes: 2 additions & 0 deletions crates/rapier2d-f64/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ serde-serialize = [
"nalgebra/serde-serialize",
"parry2d-f64/serde-serialize",
"dep:serde",
"dep:bincode",
"std",
]
enhanced-determinism = ["simba/libm_force", "parry2d-f64/enhanced-determinism"]
Expand Down Expand Up @@ -104,6 +105,7 @@ web-time = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
bytemuck = { workspace = true, optional = true }
bincode = { workspace = true, optional = true }

# Nalgebra is only included on non-spirv targets. On spirv, rapier exposes only the
# subset of its API that doesn't require nalgebra.
Expand Down
2 changes: 2 additions & 0 deletions crates/rapier2d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ serde-serialize = [
"nalgebra/serde-serialize",
"parry2d/serde-serialize",
"dep:serde",
"dep:bincode",
"std",
]
enhanced-determinism = ["simba/libm_force", "parry2d/enhanced-determinism"]
Expand Down Expand Up @@ -111,6 +112,7 @@ web-time = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
bytemuck = { workspace = true, optional = true }
bincode = { workspace = true, optional = true }

# Nalgebra is only included on non-spirv targets. On spirv, rapier exposes only the
# subset of its API that doesn't require nalgebra.
Expand Down
3 changes: 3 additions & 0 deletions crates/rapier3d-f64/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ serde-serialize = [
"nalgebra/serde-serialize",
"parry3d-f64/serde-serialize",
"dep:serde",
"dep:bincode",
"std",
]
enhanced-determinism = ["simba/libm_force", "parry3d-f64/enhanced-determinism"]
Expand Down Expand Up @@ -105,12 +106,14 @@ web-time = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
bytemuck = { workspace = true, optional = true }
bincode = { workspace = true, optional = true }

# Nalgebra is only included on non-spirv targets. On spirv, rapier exposes only the
# subset of its API that doesn't require nalgebra.
[target.'cfg(not(target_arch = "spirv"))'.dependencies]
nalgebra = { workspace = true }
glamx = { workspace = true, features = ["nalgebra"] }
matrixmultiply = { workspace = true }

[dev-dependencies]
bincode.workspace = true
Expand Down
2 changes: 2 additions & 0 deletions crates/rapier3d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ serde-serialize = [
"nalgebra/serde-serialize",
"parry3d/serde-serialize",
"dep:serde",
"dep:bincode",
"std",
]
enhanced-determinism = ["simba/libm_force", "parry3d/enhanced-determinism"]
Expand Down Expand Up @@ -111,6 +112,7 @@ web-time = { workspace = true, optional = true }
rayon = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
bytemuck = { workspace = true, optional = true }
bincode = { workspace = true, optional = true }

# Nalgebra is only included on non-spirv targets. On spirv, rapier exposes only the
# subset of its API that doesn't require nalgebra.
Expand Down
1 change: 1 addition & 0 deletions parry
Submodule parry added at 1be4b1
Loading