Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e15554c
Add stripped down version of `UnGraph` from petgraph
Jondolf Dec 22, 2024
35556fa
Improve `UnGraph`
Jondolf Dec 23, 2024
3298f34
Add `EntityDataIndex` and `data_structures` module
Jondolf Dec 23, 2024
7b07d93
Use `UnGraph` for `Collisions`
Jondolf Dec 23, 2024
f0d1095
WIP: Persistent contact edges, bit vecs, and contact flags
Jondolf Dec 27, 2024
5b76a93
Add `CollisionHooks` and `ActiveCollisionHooks`
Jondolf Dec 28, 2024
0578874
Add surface velocity and per-manifold materials, rename things
Jondolf Dec 29, 2024
e677a68
Fix example
Jondolf Dec 29, 2024
2acb3ec
Merge branch 'main' into contact-graph
Jondolf Feb 20, 2025
83a0d55
Fix merge errors
Jondolf Feb 20, 2025
712a9c7
Remove unnecessary generics and add a todo comment
Jondolf Feb 20, 2025
4e2905f
Fix normal computation
Jondolf Feb 20, 2025
e2d3361
Fix `CollidingEntities`
Jondolf Feb 20, 2025
c290380
Remove `ContactReportingPlugin` and `Collision` event
Jondolf Feb 20, 2025
224fbc6
Fix `CollisionEnded`
Jondolf Feb 20, 2025
0ca81cf
Remove unsafety
Jondolf Feb 20, 2025
b2350af
Replace `remove_collisions_with_entity` with `remove_collider`, impro…
Jondolf Feb 21, 2025
8f624ea
Remove `NewBroadCollisionPairs`, just check `Collisions`
Jondolf Feb 21, 2025
a8242df
Clean up structure, remove unused code, and improve docs
Jondolf Feb 21, 2025
0b1f1c6
Improve collision detection documentation
Jondolf Feb 21, 2025
86b5dbe
Skip empty contact manifolds
Jondolf Feb 22, 2025
62c05b6
Clean up broad phase, add `BroadPhasePairSet`
Jondolf Feb 22, 2025
ade1bbf
Add `UnGraph::neighbors`
Jondolf Feb 22, 2025
43aa7ee
Add `entities_colliding_with` and rename `collisions_with_entity`
Jondolf Feb 22, 2025
ba9e382
Remove `AabbIntersections` component, use `entities_colliding_with`
Jondolf Feb 22, 2025
8df7175
Revert changes to `cubes` example
Jondolf Feb 22, 2025
f84672f
Properly wake up bodies when collisions end
Jondolf Feb 23, 2025
a05c474
Remove todo
Jondolf Feb 23, 2025
823c393
Move contact pair creation to broad phase and make collision events o…
Jondolf Feb 23, 2025
59491b9
Add `PairKey::get`
Jondolf Feb 24, 2025
c238a76
Store pair index in `ContactConstraint` to speed up `store_contact_im…
Jondolf Feb 24, 2025
99f4c1d
Remove `BroadPhasePairs` and store the pair set in `Collisions` directly
Jondolf Feb 25, 2025
bce660c
Remove `_collision` from names and improve docs
Jondolf Feb 25, 2025
348d839
Update `NarrowPhase` system param docs
Jondolf Feb 25, 2025
1b826f4
Optimize broad phase by changing condition order
Jondolf Feb 25, 2025
a0605c3
Reuse manifold allocation in `contact_manifolds`
Jondolf Feb 25, 2025
4b08c49
Add todo comment
Jondolf Feb 27, 2025
c0f7321
Persist status bit vecs with thread-locals, use custom `BitVec`
Jondolf Feb 28, 2025
7ce92bd
Merge branch 'main' into contact-graph
Jondolf Mar 1, 2025
39f0d81
Merge branch 'main' into 'obvhs'
Jondolf May 28, 2025
a603c5e
Implement dynamic BVH broad phase with OBVHS (WIP)
Jondolf May 28, 2025
659daa1
Merge branch 'main' into obvhs
Jondolf Jun 4, 2025
fbc59c7
Merge branch 'main' into obvhs
Jondolf Jun 30, 2025
459eaaa
WIP: 659daa12 Merge branch 'main' into obvhs
Jondolf Dec 15, 2025
7eb15f2
Add diagnostics, improve rebuilds, update deps
Jondolf Dec 29, 2025
8d18fa1
Optimize and refactor
Jondolf Jan 1, 2026
3b5ace1
Replace `Slab` with custom `StableVec` to fix determinism issue
Jondolf Jan 1, 2026
b99ff22
Remove unused `EntityDataIndex`
Jondolf Jan 1, 2026
0b44398
Restructure broad phase plugins, update docs
Jondolf Jan 1, 2026
48eec27
Fix moved proxy handling in traversal logic
Jondolf Jan 1, 2026
7a02b01
Disable `obvhs/parallel`
Jondolf Jan 1, 2026
239a2c0
Support collision hooks and filter same-body pairs
Jondolf Jan 3, 2026
a213c2f
Add WIP bvh example and debug rendering
Jondolf Jan 3, 2026
892cec5
WIP partial rebuilds
Jondolf Jan 3, 2026
8542644
Switch between partial and full rebuilds based on move fraction
Jondolf Jan 4, 2026
99062b3
Adaptive optimization mode, reinsertion, refactor and optimize
Jondolf Jan 5, 2026
64dc545
Restructure modules and plugins
Jondolf Jan 5, 2026
f5cbf35
Change `optimize_in_place` default to `false`
Jondolf Jan 5, 2026
928abd7
Add separate kinematic tree, use proxy key newtypes, refactor
Jondolf Jan 12, 2026
314e70e
Support standalone colliders properly, impl remaining proxy updates, …
Jondolf Jan 23, 2026
cf82a73
Merge branch 'main' into obvhs
Jondolf Jan 23, 2026
a40e111
Fix merge errors
Jondolf Jan 23, 2026
6cef96b
Fix debug rendering
Jondolf Jan 23, 2026
c933e0e
Fix bug with removed proxies being added to standalone tree
Jondolf Jan 24, 2026
822bed1
Fix moved proxy clearing, handle more edge cases
Jondolf Jan 25, 2026
4ea6152
Improve bvh example, reduce plugin dependencies
Jondolf Jan 25, 2026
0f8d1d0
Also update AABBs after physics step, and skip unchanged
Jondolf Jan 25, 2026
0b441c0
Fix Cargo.toml formatting
Jondolf Jan 25, 2026
628e369
Make debug rendering customizable
Jondolf Jan 25, 2026
255a24f
Improve example
Jondolf Jan 25, 2026
9003e9f
Clean up diagnostics
Jondolf Jan 25, 2026
69084cf
Improve docs
Jondolf Jan 25, 2026
b51ee78
Add migration guide
Jondolf Jan 25, 2026
2187f79
Fixes for disabling and debug rendering
Jondolf Jan 25, 2026
9888685
Fix enlarged AABB init
Jondolf Jan 25, 2026
a2a2f34
More disabling fixes
Jondolf Jan 25, 2026
9d1c390
Appease CI
Jondolf Jan 26, 2026
c2ded76
Make threa_local non-optional
Jondolf Jan 26, 2026
39a9d32
Appease CI further
Jondolf Jan 26, 2026
ce6c1c5
Fix collision hooks and events
Jondolf Jan 27, 2026
28e64f3
Fix math types in bvh example
Jondolf Jan 27, 2026
21c1e15
Update determinism hash
Jondolf Jan 27, 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
262 changes: 204 additions & 58 deletions Cargo.lock

Large diffs are not rendered by default.

11 changes: 3 additions & 8 deletions crates/avian2d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,7 @@ f64 = []

debug-plugin = ["bevy/bevy_gizmos", "bevy/bevy_render"]
simd = ["parry2d?/simd-stable", "parry2d-f64?/simd-stable"]
parallel = [
"dep:thread_local",
"bevy/multi_threaded",
"parry2d?/parallel",
"parry2d-f64?/parallel",
]
parallel = ["bevy/multi_threaded", "parry2d?/parallel", "parry2d-f64?/parallel"]
enhanced-determinism = [
"dep:libm",
"bevy_math/libm",
Expand Down Expand Up @@ -95,15 +90,15 @@ approx = "0.5"
parry2d = { version = "0.25", optional = true }
parry2d-f64 = { version = "0.25", optional = true }
nalgebra = { version = "0.34", features = ["convert-glam030"], optional = true }
obvhs = { git = "https://github.com/DGriffin91/obvhs", branch = "insertion_removal" }
serde = { version = "1", features = ["derive"], optional = true }
derive_more = "2"
thiserror = "2"
arrayvec = "0.7"
smallvec = "1.15"
slab = ">=0.4.10"
itertools = "0.13"
bitflags = "2.5.0"
thread_local = { version = "1.1", optional = true }
thread_local = { version = "1.1" }
disqualified = { version = "1.0" }

[dev-dependencies]
Expand Down
23 changes: 14 additions & 9 deletions crates/avian3d/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,7 @@ f64 = []

debug-plugin = ["bevy/bevy_gizmos", "bevy/bevy_render"]
simd = ["parry3d?/simd-stable", "parry3d-f64?/simd-stable"]
parallel = [
"dep:thread_local",
"bevy/multi_threaded",
"parry3d?/parallel",
"parry3d-f64?/parallel",
]
parallel = ["bevy/multi_threaded", "parry3d?/parallel", "parry3d-f64?/parallel"]
enhanced-determinism = [
"dep:libm",
"bevy_math/libm",
Expand Down Expand Up @@ -97,22 +92,28 @@ approx = "0.5"
parry3d = { version = "0.25", optional = true }
parry3d-f64 = { version = "0.25", optional = true }
nalgebra = { version = "0.34", features = ["convert-glam030"], optional = true }
obvhs = { git = "https://github.com/DGriffin91/obvhs", branch = "insertion_removal" }
serde = { version = "1", features = ["derive"], optional = true }
derive_more = "2"
thiserror = "2"
smallvec = "1.15"
slab = ">=0.4.10"
itertools = "0.13"
bitflags = "2.5.0"
thread_local = { version = "1.1", optional = true }
thread_local = { version = "1.1" }
disqualified = { version = "1.0" }

[dev-dependencies]
examples_common_3d = { path = "../examples_common_3d" }
bevy = { version = "0.18.0", features = ["3d", "ui", "https"] }
bevy = { version = "0.18.0", features = [
"3d",
"ui",
"https",
"experimental_bevy_feathers",
] }
bevy_heavy = { version = "0.4", features = ["approx"] }
criterion = { version = "0.5", features = ["html_reports"] }
bevy_mod_debugdump = { version = "0.15" }
rand = "0.9"

[lints]
workspace = true
Expand All @@ -121,6 +122,10 @@ workspace = true
# Enable features when building the docs on docs.rs
features = ["diagnostic_ui"]

[[example]]
name = "bvh"
required-features = ["3d", "default-collider"]

[[example]]
name = "dynamic_character_3d"
required-features = ["3d", "default-collider", "bevy_scene"]
Expand Down
Loading
Loading