
0.16.0-rc.3, AudioNimbus, and Open Fortress
2025-04-07
0.16.0-rc.3 is out this week. The draft migration guide is available and is the list of changes since rc.2
At this point in the release candidate process crates have started releasing release-candidate compatible versions, so some widely used crates like bevy_egui and bevy_asset_loader have rc versions out now if you want to see if your dependencies are ready to test the release candidate.
The Static Subtree Transform Propagation work merged in #18589, which improves the performance of transform propagation for scenes with large amounts of static transforms.
Error messages also saw improvements in #18593 and #18683.
Alice's Merge Train is a maintainer-level view into active PRs and how the Bevy sausage is made.

Showcase
Bevy work from the #showcase channel in Discord and around the internet. Use hashtag #bevyengine.

Microbial Strategy Game
showcase
A 2D strategy game in Bevy, inspired by Civilization but with a microbial twist! Bacteria and microbes battle for resources (Carbon, Nitrogen, Sulfur, etc.) on a hex grid

ESP32 Spooky Maze Game
showcase
A shared esp32 and desktop implementation utilizing embedded-graphics and mipidsi on embedded.

Nano-9 (Pico-8++)
showcase
nano-9 is a "pico-8++" environment built with bevy_mod_scripting. Games can be programmed in Lua or Rust.

AudioNimbus
showcase
AudioNimbus is a wrapper around Valve's Steam Audio that provides immersive spatial audio. In addition to the YouTube demo that showcases the audio, there's a walkthrough and source for the project and the demo.

Crates
New releases to crates.io and substantial updates to existing projects

bevy_northstar
crate_release
bevy_northstar is collision features merged into an HPA* pathfinding plugin. Next steps include cleanup on the API and documentation.
The crate author is asking for feedback so now's a great time to check it out and provide any feedback you might want to give to support your game.
bevy_ios_iap 0.6.0
crate_release
bevy_ios_iap provides access to iOS native StoreKit2 Swift API from inside Bevy Apps.
0.6 brings support for iOS 16.
dioxus-in-bevy (experimental)
crate_release
dioxus-in-bevy is an experimental crate with the aim being to integrate the Dioxus VDOM renderer with Bevy ECS components.
The crate is currently experimental but works for basic things.
bevy_trait
crate_release
bevy_trait allows you to implement standard Bevy systems in Traits via a proc macro.

bevy_ballistic 0.1.0
crate_release
Launch velocity calculation for game projectiles to hit a specified target based on given gravity. It has one dependency, on bevy_math.

Bevy Hanabi v0.15.0
crate_release
bevy_hanabi follows a common pattern where the new version v0.15.0 is a major feature update, still compatible with the current Bevy 0.15, before the future Bevy 0.16 compatibility release.
0.15 brings
- hierarchical effects, the ability to parent an effect to another effect
- Complete rewrite of the ribbon/trail feature
DebugSettings
to trigger GPU capture
html_to_bevy v0.6.0
crate_release
html_to_bevy allows you to make ui using tags and styling similar to HTML. The crate was extracted from the author's own projects.

bevy-ui-gradients
crate_release
Basic UI gradients rendering. Supports linear, radial and conic gradients.
remove bevy_log as a dev-dependency from bevy_asset authored by mockersf
Rename EntityBorrow/TrustedEntityBorrow to ContainsEntity/EntityEquivalent authored by Victoronz
reexport entity set collections in entity module authored by Victoronz
bevy_image: derive TypePath when Reflect is not available authored by mockersf
Transform Propagation Optimization: Static Subtree Marking authored by aevyrie
Fix diffuse transmission for anisotropic materials authored by JMS55
Improve error message for missing resources authored by chescock
Fix compilation of compile_fail_utils when not using rustup authored by kristoff3r
Fix NonMesh draw command item queries authored by brianreavis
Update the version of glam required by bevy_reflect to 0.29.2 authored by irh
Expose skins_use_uniform_buffers() necessary to use pre-existing setup_morph_and_skinning_defs() API. authored by komadori
Fix shader pre-pass compile failure when using AlphaMode::Blend and a Mesh without UVs (`0.16.0-rc.2`) authored by aloucks
Upgrade to Glam 0.29.3 and Simplify Feature Gating authored by bushrat011899
Fix no indirect drawing authored by tychedelia
`bevy_ecs/system/commands/` folder docs pass authored by JaySpruce
Make bindings behind `pbr_specular_textures` flag consistent with other gated fields authored by hukasu
Improve `Query`'s top-level documentation authored by BD103
Add `sleep` based on `spin` to `bevy_platform_support` authored by bushrat011899
Get names of queued components authored by ElliottjPierce
Use GpuPreprocessingMode::None if features not supported. authored by tychedelia
Return triangle index instead of vertex index (Fixes #18081) authored by brookman
0.16 Regression fix: re-expose the display handle via a wrapper resource authored by HugoPeters1024
Delete unused weak handle and remove duplicate loads. authored by andriyDev
Parallelize bevy 0.16-rc bottlenecks authored by aevyrie
Use Display instead of Debug in the default error handler authored by chescock
Expose symbols needed to replicate SetMeshBindGroup in ecosystem crates. authored by komadori
Remove entities from specialization caches when despawned. authored by tychedelia
Fix mesh extraction for meshes without associated material. authored by tychedelia
Add required shader defs for environment map binding arrays in deferred authored by tychedelia
Fix AsBindGroup hygenic issues with storage texture. authored by tychedelia
Only send unused event when final handle is dropped. authored by tychedelia
Fix mesh tag feature for 2d. authored by tychedelia
Add compute_*_normals benchmarks authored by Waridley
Remove the `visited` local system param from `update_ui_context_system`. authored by ickshonpe
Finish #17558, re-adding `insert_children` authored by ElliottjPierce
Add notes to fallible commands authored by JaySpruce
Add Advice for Relocations to Migration Guide Template authored by bushrat011899
Include SystemParamValidationError in RunSystemError and RegisteredSystemError authored by chescock
Update relationship commands to use `EntityCommands` instead of `Commands` authored by JaySpruce
Switch ChildOf back to tuple struct authored by cart
Fix issues in log_diagnostics example authored by kristoff3r
Implement `insert_children` for `EntityCommands` authored by JaySpruce
Fix indentation of `bevy/query` `strict` parameter in docs authored by BD103
Improve error message for missing events authored by chescock
Code quality cleanup pass for #[require] authored by Bleachfuel
Bump crate-ci/typos from 1.30.2 to 1.31.0 authored by mnmaita
add reflect for SocketAddr authored by cBournhonesque
use entity set collections type aliases instead of defaults authored by Victoronz
fix typo authored by foxzool
Add `#[deprecated(since = "0.16.0", ...)]` to items missing it authored by BD103
Fix motion blur on skinned meshes authored by greeble-dev
Add `PartialEq` and `Hash` reflections for `AnimationNodeIndex` authored by hukasu
Add accessors to `DynamicEnum` for the `DynamicVariant` authored by Person-93
Expose `TextureFormatFeatureFlags`, `TextureFormatFeatures` from wgpu authored by brianreavis
Want to contribute to Bevy?
Here you can find two types of potential contribution: Pull Requests that might need review and Issues that might need to be worked on.
Pull Requests Opened this week
feat: attempt at making reflection more flexible authored by makspll
Avoid performance pitfalls in update_previous_global_transform system authored by alice-i-cecile
Implement `System` for `Box<dyn System>` authored by hankjordan
Update cosmic-text to 0.14 authored by kristoff3r
Extract non-pbr logic from `bevy_pbr` authored by hukasu
Remote entity reservation v9 authored by ElliottjPierce
Split PBR shader light computations into smaller functions authored by Feilkin
Speed up ECS benchmarks by limiting variations authored by greeble-dev
Many-to-Many Relationships authored by ItsDoot
Update spin requirement from 0.9.8 to 0.10.0 authored by mnmaita
Implemented `Alpha` for `f32`. authored by mintlu8
Make `AccessConflicts::is_empty` public authored by angelthorns
Use new `run_without_applying_deferred` method in `SingleThreadedExecutor` authored by chescock
separate border colors authored by robtfm
Unified interpolation authored by NthTensor
Create `bevy_volumetrics` authored by hukasu
Fix AccessKit node bounds authored by ickshonpe
Make `entity::index` non max authored by ElliottjPierce
`bevy_ui_render` crate authored by ickshonpe
Change with_related to work with a Bundle and added with_relationships method authored by Freyja-moth
feat: allow for `Trigger` to provide the `Entity` on which an event w… authored by emfax
Re-export uuid crate to use bevy_reflect's uuid version authored by arpadav
Merge ObserverState and Observer into single component authored by re0312
Expose deferred screen edges setting for ios devices authored by yonson2
Add `EntityWorldMut::reborrow_scope()` authored by SOF3
Issues Opened this week
Implement `System` for `Box<dyn System>` authored by hankjordan
Allow add_state_scoped_event to take computed state authored by aleqdev
Text not rendering when marker component is inserted authored by Freyja-moth
without std, systems run as fast as possible authored by purplg
Child text components created after initial object creation are invisible authored by jansenMurphy
`OnAdd` events fire before hierarchy has been finalized in 0.16.0-rc.3 authored by oliver-dew
bevy_tasks: Drop static TaskPools or wait until all tasks are finished authored by K0bin
Events added by add_state_scoped_event are spawned before State is entered authored by Freyja-moth
Adding an entity using a RelationshipTarget authored by Freyja-moth
Experiment with optmizing insert_children authored by alice-i-cecile
using iter_descendants, query filter should apply to returned values, but not limit the walk authored by SteveAlexander
AccessKit node bounds are wrong authored by alice-i-cecile
Add a with_child equivelant for relationships authored by Freyja-moth
`Null` type in `bevy_reflect` authored by Person-93
Field setters for `DynamicTuple` and `DynamicTupleStruct` authored by Person-93
Accelerate wave-style spawning with the use of entity tombstoning authored by alice-i-cecile
Use of `SyncComponentPlugin` on `ExtractComponentPlugin` causes `RenderEntity` to be incorrectly despawned authored by tychedelia
Better entities tracking issue authored by ElliottjPierce
Touchpad doesn't work on MacOS with CursorGrabMode::Confined authored by will-hart
Add named observers authored by tigerplush
Add an `iter_empty` for `RelationshipTarget`. authored by mintlu8
Split prepare_windows span to communicate when we're waiting for vsync authored by alice-i-cecile