Jondolf
jondolf.bsky.social
Jondolf
@jondolf.bsky.social
University student and software enthusiast, working on Avian Physics for #bevyengine. https://github.com/avianphysics/avian
I have some more ideas for improving our processes, namely adding a contribution guide, collecting some useful learning reasources for physics simulation, and also switching to a more frequent release cadence with smaller, more incremental releases, but I'll have to chew on those some more.
October 18, 2025 at 6:16 PM
After seeing the old Avian URL for so long, it does look a bit weird now 😅 But I think it's good long-term, just a matter of getting used to it :)
October 18, 2025 at 6:16 PM
Wait... Was that a different URL I see? Yup! The Avian repository is now under a new Avian Physics organization instead of my personal profile. This is more professional, and more importantly, it lets us give people triage permissions to label or close issues and PRs, among other things.
October 18, 2025 at 6:16 PM
This has several major benefits: main branch users have migration guides available, the guides are kept up-to-date (and written by the people who made the changes), and I don't have to crunch at the end of each cycle to gather them from scattered PRs and spend ages fixing and updating them.
October 18, 2025 at 6:16 PM
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.
September 27, 2025 at 9:45 PM
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...
Simulation Islands
Island management is a fundamental low level feature of physics engines and can have a big impact on solver design and performance. This was one of the first problems I decided to work on for Box2D ve...
box2d.org
September 27, 2025 at 9:45 PM
Previously, Avian only supported much simpler "per-body sleeping" that did not allow stacks of bodies or bodies connected by joints to fall asleep properly. This was always intended as temporary, but at least now we finally have the real thing :)
September 27, 2025 at 9:45 PM
A huge thanks again for @erincatto.bsky.social for the amazing work on Box2D and for continuing to make game physics more open and approachable. The SIMD Matters article was a huge help, though my design does have the added complexity that each contact pair can have more than one manifold :)
July 7, 2025 at 8:15 PM
Not only does graph coloring make it possible to use multi-threading for the solver, it also allows us to accelerate the solver with AoSoA-style wide SIMD! This is not yet implemented, but I am working on it right now ;)
July 7, 2025 at 8:15 PM
You can see that our baseline single-threaded performance is still much worse than Rapier. This is due to the broad phase and some other unoptimized parts. Expect improvements in the future.
July 7, 2025 at 8:15 PM
Engines like Rapier instead only have inter-island parallelism, which means that large islands are solved serially, unlike with graph coloring. Our solver now scales better, and is even faster than Rapier for large islands when multi-threaded!
("avian2d main" is old, "avian2d graph-coloring" is new)
July 7, 2025 at 8:15 PM
Graph coloring assigns constraints to "colors" such that no adjacent edges in the constraint graph shares the same color. This ensures that each body appears at most once in each color, and constraints within a given color can be solved in parallel without race conditions.
July 7, 2025 at 8:15 PM
This was my second game jam ever (the first was Bevy Jam #5), and it was definitely really fun, though also tiring :P Looking forward to doing more game jams in the future!

P.s. Give Chainboom a try, preferably with a native build, and consider rating it on itch.io!
June 9, 2025 at 9:35 AM
I'm supremely proud of how this all came together, and how much we managed to implement in just nine days, from the mapping and gameplay to the VFX, SFX, soundtrack, and UI. There are even gore settings to limit the amount of blood and dismembered limbs, both for your eyes and for performance :)
June 9, 2025 at 9:35 AM
It has a standard mode with 10 waves of zombies, and an endless mode to see how long you can survive. After each wave, you can pick one of three upgrades to help you along the way. There's a lot of cool movement and strats you can use!
June 9, 2025 at 9:35 AM
There's definitely ways that this could still be improved, but for now I want to move on to other things, like actually optimizing things with the help of these diagnostics.

The PR can be found here :)
github.com/Jondolf/avia...
Physics Diagnostics by Jondolf · Pull Request #653 · Jondolf/avian
Objective Fixes #564. Expands significantly on #576. For both benchmarking and optimizing Avian itself, and monitoring physics performance on the user side, it can be very useful to have timing inf...
github.com
February 8, 2025 at 5:39 PM