I just released version 0.8 of Avian, an ECS-driven physics engine for @bevy.org. #physics #gamedev #rust v0.8 features faster CCD with fewer ghost collisions, contact recycling, overhauled double-precision support, large-scene optimization, Bevy 0.20 support, and more. joonaa.dev/blog/14/avia...
Jondolf
Jondolf
@jondolf.bsky.social
University student and software enthusiast, working on Avian Physics for #bevyengine. https://github.com/avianphysics/avian
322 followers39 following71 posts
Previously, Avian has supported f64 with a feature flag that changes almost everything to double-precision. This changes with my f64 overhaul. In short: Use f64 only for world-space values that degrade in precision far from the origin. This approach is inspired by Jolt. github.com/avianphysics...
Previously, Avian has supported f64 with a feature flag that changes almost everything to double-precision. This changes with my f64 overhaul. In short: Use f64 only for world-space values that degrade in precision far from the origin. This approach is inspired by Jolt. github.com/avianphysics...
Why, you may ask? 1. Our Scalar and Vector type alias spam in examples has been paining me since the start. People should learn to just use f32, Vec2, Vec3, Quat, etc. 2. Contributors regularly get CI errors due to f32/f64 type mismatches, causing a lot of gray hairs 3. Using f64 so widely is costly
An overhauled Box2D-inspired Continuous Collision Detection algorithm has landed in Avian! It uses a form of swept CCD by default for fast-moving bodies. #physics #gamedev #avian #bevy github.com/avianphysics...
An overhauled Box2D-inspired Continuous Collision Detection algorithm has landed in Avian! It uses a form of swept CCD by default for fast-moving bodies. #physics #gamedev #avian #bevy github.com/avianphysics...
Jondolf reposted
I’m happy to announce the release of a new open source 3D physics engine called Box3D. I’ve been working on this project for a few years now, but it represents over 20 years of experience writing physics engines for games. Read more here: box2d.org/posts/2026/0...
Avian has been updated to Bevy 0.19. Have fun! @bevy.org As always, an announcement post can be found here: joonaa.dev/blog/13/avia...
Jondolf reposted
I just released version 0.6 of Avian, an ECS-driven physics engine for @bevy.org. #physics #gamedev v0.6 features move-and-slide, joint motors, and an overhauled broad phase using BVHs, resulting in massively reduced overhead for scenes with a large number of colliders. joonaa.dev/blog/12/avia...
Jondolf reposted
This is the game I've been working on the last four years. It is an incredibly ambitious project made by a small team. www.youtube.com/watch?v=7fax...
Avian's broad phase collision detection has finally been overhauled to use Bounding Volume Hierarchies from the OBVHS crate! Previously, basic sweep and prune was used. This is a stress test with colliders in a grid moving randomly, rendering the resulting BVH. #bevy PR: github.com/avianphysics...
Huge thanks to DGriffin91 for implementing incremental leaf insertion and removal, partial rebuilds, improved traversal, and much more for OBVHS to make it suitable for physics <3 Go show him and OBVHS some love! github.com/DGriffin91/o...
Avian's broad phase collision detection has finally been overhauled to use Bounding Volume Hierarchies from the OBVHS crate! Previously, basic sweep and prune was used. This is a stress test with colliders in a grid moving randomly, rendering the resulting BVH. #bevy PR: github.com/avianphysics...
Initial support for joint motors has finally landed on Avian's main branch! #bevy #physics #simulation github.com/avianphysics/avian/pull/913
Initial support for joint motors has finally landed on Avian's main branch! #bevy #physics #simulation github.com/avianphysics/avian/pull/913
I just released version 0.5 of Avian, an ECS-driven physics engine for @bevy.org. This is the first update under our new release process, where we publish Bevy version updates separately from feature releases. As always, an announcement post can be found here: joonaa.dev/blog/11/avia...
A quick blog post on some recent changes and improvements to Avian's development, including new release and migration guide processes, a GitHub organization, and a dedicated Avian Dev Discord server. Also a brief update on plans for the 0.5 and 0.6 releases 😉 joonaa.dev/blog/10/evol...
Avian finally has built-in move and slide, the movement and collision algorithm at the heart of kinematic character controllers! #bevy #gamedev #physics #kcc PR: github.com/avianphysics...
@janhohenheim.bsky.social and I have been cooking this up over the past couple of weeks, but many others have also taken part. Special thanks to UB for a lot of early experimentation, IQuick143 and unpairedbracket for math help, and vero and several others for testing and feedback <3 you all rock!
Avian finally has built-in move and slide, the movement and collision algorithm at the heart of kinematic character controllers! #bevy #gamedev #physics #kcc PR: github.com/avianphysics...
Our implementation comes with a robust (somewhat novel?) multi-plane velocity solver and depenetration, to minimize cases where you get stuck or encounter jitteriness. Preliminary results in testbeds and @janhohenheim.bsky.social's Source-inspired KCC bevy_ahoy are looking great!
Avian is getting pretty big nowadays! To mark the start of a new release cycle, I spent some time improving our processes moving forward. Notably, Avian now stores migration guides in-repo, similar to Bevy: github.com/avianphysics...
Avian is getting pretty big nowadays! To mark the start of a new release cycle, I spent some time improving our processes moving forward. Notably, Avian now stores migration guides in-repo, similar to Bevy: github.com/avianphysics...
I just released version 0.4 of Avian, an ECS-driven physics engine for @bevy.org. This is the biggest release yet, featuring 3x performance(!), overhauled forces and joints, voxel colliders, Bevy 0.17 support, and much more. As always, release notes can be found here: joonaa.dev/blog/09/avia...
Today, I finally merged simulation islands for Avian! Islands are graph-like structures where bodies are connected via contacts or joints. They are used for sleeping and waking, which is crucial for reducing CPU overhead for large scenes with many dynamic bodies. github.com/Jondolf/avia...
Avian's implementation persists islands across time steps, minimizing island building and splitting overhead. It is primarily based on @erincatto.bsky.social's excellent Simulation Islands article and Box2D. box2d.org/posts/2023/1...
Right now, the persistent nature of the implementation can make rollback networking trickier, so I kept an option to globally disable islands if they're causing problems (or if sleeping isn't needed). In the future, we might want to consider adding a non-persistent version as an alternative as well.
Today, I finally merged simulation islands for Avian! Islands are graph-like structures where bodies are connected via contacts or joints. They are used for sleeping and waking, which is crucial for reducing CPU overhead for large scenes with many dynamic bodies. github.com/Jondolf/avia...
Merged an overhaul of Avian's force APIs. This one went through quite a lot of bikeshedding and numerous redesigns, but I quite like how it turned out! github.com/Jondolf/avia...