Repository navigation
Avian Physics 0.8 has been released! 馃
Highlights
Avian 0.8 brings several major optimizations and improvements:
- Bevy 0.20 support: Avian now supports Bevy 0.20!
- CCD rework: The continuous collision detection (CCD) algorithm has been reworked to be more robust and avoid ghost collisions at high speeds.
- Contact recycling: Contacts are now recycled across timesteps, significantly improving collision detection performance.
- Double-precision overhaul: The
f64feature now only uses double-precision values for body positions and other world-space coordinates. - Large-scene optimization: Scenes with hundreds of thousands of bodies now have significantly less constant overhead and spawn up to an order of magnitude faster.
- Debug rendering for
SpatialQuery: Ray casts and other spatial queries performed viaSpatialQuerycan now be visualized with the debug renderer.
Check out the announcement blog post for a more in-depth overview of what has changed and why. A migration guide can be found here.
What's Changed
- Rename collider context types by @Jondolf in #1015
- Add AI Policy and CI Check by @Jondolf in #998
- Fast CCD without ghost collisions (Box2D-inspired) by @Jondolf in #996
- Only run CI on Ubuntu by default for Rust file changes by @Jondolf in #1016
- Switch CI to job-level skipping by @Jondolf in #1018
- Remove CI badge from README by @Jondolf in #1017
- Fix README oopsie by @Jondolf in #1020
- Minimal Use of
f64for Large Worlds by @Jondolf in #1027 - Fix rigid body and collider cloning by @Jondolf in #1029
- Decouple contacts and solver by @Jondolf in #989
- Fix non-touching contacts not moving to sleeping set by @Jondolf in #1032
- Contact Recycling by @Jondolf in #1033
- Wire up contact recycling diagnostics by @Jondolf in #1034
- Use serial iteration for small workloads by @Jondolf in #1035
- Fix Gravity doc example indentation by @rikvdk in #1031
- Skip friction for solver bias stage by @Jondolf in #1036
- Contiguous Solver Bodies by @Jondolf in #1037
- Rework collider tree optimization, fix async task pool stall by @Jondolf in #1046
- Optimize collider tree refitting by @Jondolf in #1047
- Optimize miscellaneous systems by @Jondolf in #1048
- Optimize large scenes and bulk spawning (1 million+) by @Jondolf in #1049
- Fix
ObvhsAabbExt::distance_to_point_squaredby @Jondolf in #1050 - Clear child ordering in
Bvh2::insert_primitive_greedyby @Jondolf in #1051 - Pin CI nightly toolchain to work around rustc memory regression by @francisdb in #1060
- Fallback to scale_dyn for unknown custom shapes in scale_shape by @0xbeefd1ed in #1064
- Don't take ownership of the vertices and indices parameters in the convex_decomposition and convex_hull methods by @FredMarquer in #944
- V2: Debug rendering for
SpatialQueryby @justDeeevin in #1061 - Fix stale proxy keys in collider tree by @msvbg in #1062
- xpbd: drop the absolute epsilon guard on angular Lagrange updates by @tysen in #1079
- Fix joint_damping by @tysen in #1078
- Make CustomIntegration tags derive Clone by @larsraph in #1021
- Set
ContactPairFlags::STARTED_GENERATING_CONSTRAINTStofalsewhen a collision starts by @bytemunch in #1068 - Update to Bevy 0.20 by @Jondolf in #1084
- Update to OBVHS 0.4, use new faster insertion algo by @Jondolf in #1085
- Optimize swept CCD by @Jondolf in #1058
- Fix outdated docs by @Jondolf in #1086
- Fix velocity_projection bench never compiling by @francisdb in #1040
- Use
i32for manifold count changes by @Jondolf in #1087
New Contributors
- @rikvdk made their first contribution in #1031
- @francisdb made their first contribution in #1060
- @0xbeefd1ed made their first contribution in #1064
- @FredMarquer made their first contribution in #944
- @justDeeevin made their first contribution in #1061
- @msvbg made their first contribution in #1062
- @tysen made their first contribution in #1079
- @larsraph made their first contribution in #1021
- @bytemunch made their first contribution in #1068
Full Changelog: v0.7.0...v0.8.0