
Bevy Jam 6 starts, Hot Reloading Rust, and bevy_seedling
2025-06-02
Bevy Jam 6 starts on the 31st and runs for 9 days, ending the next Sunday night. There are a number of alpha creations worth testing!
- the bevy_cli's alpha 1 release, for easy project creation, web builds and lints of all flavors
- bevy_simple_subsecond_system, for hotpatching of Rust code, allowing you to edit logic and values while your game is running
- bevy_seedling, a powerful audio API backed by the new firewheel crate.
Get jammin!
StateScoped
#19435 introduces the ability to clear events when entering a state, not just exiting.
app
.add_event::<MyGameEvent>()
.clear_events_on_exit_state::<MyGameEvent>(GameState::Play);
While #19401 enables state scoped events on computed states.
Image::resize_in_place
#19410 introduces a new Image::resize_in_place
method to
new box_shadow example
#19345 introduces a new, configurable, box-shadow example.
RustWeek Examples
Following on the RustWeek work, a new usages category was added to the examples and a cooldown
example was introduced in #19234
#19245 also adds a context menu.
Dir4
Bevy has Dir2
and Dir3
types that wrap normalized Vec2
and Vec3
, but there isn't a Dir4
type that wraps a normalized Vec4
. That Dir4
was added in #19223.
Hdr Component
In #18873 the Camera::hdr
field was separated out into a new component: Hdr
.
commands.spawn((Camera3d, Hdr));
which allows it to be required by other functionality like Bloom
#[require(Hdr)]
pub struct Bloom;
Remove Shader weak_handles
#19137 introduced the new load_shader_library
macro which is being put to good use in a number of PRs to remove the use of weak_handles
in accordance with #19024

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

Bevy + Anvil
showcase
A demo integrating Bevy and Anvil, a 3D modeling kernel with a special appearance by bevy_simple_subsecond_system

oleks.pickle/bevy_new_third_person
showcase
A 3d game template based on bevy_new_2d, with a few extra tricks
Features:
- import and usage of game mechanics and parameters from .ron (config, credits)
- simple asset loading from BevyFlock example with loading from path addition
- third person camera with bevy_third_person_camera
- simple keyboard & gamepad mapping to game actions using leafwing-input-manager
- simple scene with colliders and rigid bodies using avian3d
- simple player movement and animation using bevy_tnua
- simple skybox sun cycle using bevy atmosphere example, with daynight/nimbus mode switch
- rig and animations using Universal Animation Library from quaternius
- experimental sound with bevy_seedling based on Firewheel audio engine
- consistent Esc back navigation in gameplay and menu via stacked modals


Bevy on the Playstation One!
showcase
One patch to LLVM, a compilation of rustc for a custom toolchain, and a lot of help from psx-sdk-rs, and Bevy is now on the PlayStation One! Gamepad input fully integrated with bevy_input, double-buffered rendering, and logging piped to emulator debug logs.



Crates
New releases to crates.io and substantial updates to existing projects
quantized-pathfinding
crate_release
An quantized pathfinding algorithm extracted from a picking plugin

bevy_hourglass
crate_release
bevy_hourglass is a customizable visual hourglass timer with detailed mesh geometry

bevy_pixelated_3d
crate_release
A project to convert any 3d world into a game that looks like pixelart, with builtin outlines based on depth and normal textures.
now with zoom, bloom, a better targeting system to keep the camera centered on something, and improvements to the post processing
bevy_ui_anchor v0.7
crate_release
bevy_ui_anchor provides an AnchorUiNode
component that:
- Anchor UI nodes to world positions or entities.
- Supports horizontal and vertical anchoring.
0.7 takes advantage of new Bevy 0.16 APIs like Relationships
bevy_scriptum 0.9.0
crate_release
You can now write your Bevy game logic in Ruby. If you like Ruby’s syntax or want a faster way to prototype gameplay, this might be worth checking out.
Noiz 0.2
crate_release
Noiz is a simple, configurable, blazingly fast noise library built for and with Bevy.
Not only does it beat fast noise lite for performance, but it also offers 2d, 3d, and 4d support, derivatives/gradients, and extreme customization. It's effectively a node graph in the type system!
nano9 0.1.0-alpha.1
crate_release
Nano-9 is Bevy in Pico-8 clothing. It can read Pico-8 carts both .p8 and .png, so you can start with Pico-8 then switch over when you want anything outside Pico-8's bounds--like a different color palette! or more sprites, more code, more sounds, etc. You can code your game in Lua or Rust with the same-ish API.
Woodpecker UI
crate_release
Woodpecker UI is a Bevy ECS driven user interface crate. Its designed to be easy to use and work seamlessly with the bevy game engine.
Features
bevy_auto_system_macro
crate_release
A procedural macro that fully fills out system parameters and iteration loops, and then packages the variables in a nice IDE friendly ViewStruct.

Devlogs
vlog style updates from long-term projects

Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins

Incremental Bevy UI Tutorial
educational
A suite of code tutorials for bevy UI 0.16 where the author aims to explore making maintainable code and explaining everything in comments within the code.
10 useful crates for Bevy Jam 6
educational
10 crates and a few tools that you might find useful for the 6th Bevy jam
Fixed broken link in release content README. authored by AlephCubed
Make remove_reflect parameter names consistent between ReflectCommandExt and impl for EntityCommands authored by theotherphil
Improve visibility of debug picking node authored by benfrankel
Unpin nightly in CI authored by NiklasEi
Make sure that `serde_json::Map::into_values` exists authored by BenjaminBrienen
Allow unfocused window creation authored by BenjaminBrienen
Fix spawn tracking for spawn commands authored by SpecificProtagonist
`tab_navigation` example improvements authored by ickshonpe
Remove Shader weak_handles from bevy_render. authored by andriyDev
Enable state scoped entities by default authored by mockersf
Move `cooldown` example instruction text according to example visual guidelines authored by rparrett
Constify `Val::resolve` and `BorderRadius::resolve` authored by ickshonpe
Adding context menu example authored by extrawurst
Small fixes for gradient docs authored by rparrett
don't filter dragged entity out of DragEnter events authored by tomara-x
Reduce operations in `RayCast2d::circle_intersection_at` using cross product authored by kumikaya
Derive `PartialEq` for `ImageSampler` authored by Noxmore
Remove warning from Image::resize authored by SpecificProtagonist
Fix `AssetChanged` code documentation to mention the `PostUpdate` schedule authored by Henauxg
Provide physical dimensions to wgpu `Device::create_texture_with_data` authored by atlv24
Nonmax all rows authored by ElliottjPierce
Bump accesskit to 0.19 and accesskit_winit to 0.27 authored by DataTriny
Fix mismatched FogFalloff authored by lomirus
Add `AudioSinkPlayback::position` authored by Weihnachtsbaum
bevy_reflect: Split up the `std` module authored by MrGVSV
Added support for .wesl files to the regex pattern for examples authored by atlasgorn
Optional explicit compressed image format support authored by DGriffin91
Move trigger_screenshots to finish() authored by IceSentry
Explanation for the '2d shapes' example authored by fallible-algebra
Split `Camera.hdr` out into a new component authored by ecoskey
Add WakeUp event to App authored by IceSentry
No schedule build pass overwrite if build settings do not change `auto_insert_apply_deferred` from `true` authored by urben1680
Add a Dir4 to resolve #17983 authored by stevehello166
New cooldown example authored by NiklasEi
Remove apostrophes in possessive its authored by theotherphil
Clarify RenderLayers docs authored by theotherphil
Navigate through TabGroups in order. authored by FlippinBerger
Add missing doc comments to system_information_diagnostics_plugin authored by theotherphil
Fix a few typos in bevy_ecs docs authored by theotherphil
Mention in .add_observer() docs that first parameter must be a Trigger authored by theotherphil
Add missing docs for diagnostics.rs authored by theotherphil
Update .entry() docs to show both insert-then-modify and modify-or-insert examples authored by theotherphil
Add missing doc comments for log_diagnostics_plugin authored by theotherphil
Remove Shader weak_handles from bevy_anti_aliasing. authored by andriyDev
refactor(render): move WgpuWrapper into bevy_utils authored by atlv24
Remove Shader weak_handles from bevy_sprite. authored by andriyDev
refactor(utils): move SyncCell and SyncUnsafeCell to bevy_platform authored by atlv24
doc(render): fix incorrectly transposed view matrix docs authored by atlv24
Add `insert_if_new` test for sparse set. authored by AlephCubed
Remove `ArchetypeComponentId` and `archetype_component_access` authored by chescock
`box_shadow` example with adjustable settings authored by oracle58
Make light cascades and tonemapping luts pub authored by DGriffin91
Fix error in gradient shader authored by rparrett
Move `radial_gradients` example to UI testbed authored by rparrett
Remove Shader weak_handles from bevy_gizmos. authored by andriyDev
Remove Shader weak_handles from bevy_core_pipeline (except two). authored by andriyDev
Remove Shader weak_handles from bevy_ui. authored by andriyDev
Remove Shader weak_handles from bevy_pbr (excluding meshlets). authored by andriyDev
Fix EntityMeta.spawned_or_despawned unsoundness authored by SpecificProtagonist
Rename Timer::finished and Timer::paused to is_finished and is_paused authored by FlippinBerger
Fix custom relations panics with parent/child relations authored by HeartofPhos
More uninlined_format_args fixes authored by SpecificProtagonist
Update example in README to have proper Rusty formatting authored by FlippinBerger
Minor refactoring of `box_shadow` example authored by rparrett
Fix the game of life example panicking if the pipeline shader isn't ready on the first frame. authored by andriyDev
`EntityGeneration` ordering authored by ElliottjPierce
Rename Position to UiPosition in bevy_ui authored by Zeophlite
Updating mesh_picking doc to include RenderAssetUsages authored by andristarr
Allow restricting audio playback to a custom region authored by villuna
fix reference in example usage comments authored by juxe
Loosen `add_state_scoped_event` trait bound. authored by AlephCubed
Fix `EntityCloner` replacing required components. authored by eugineerd
Clarify Resource change detection behaviour in condition docs authored by theotherphil
Fix #19219 by moving observer triggers out of resource_scope authored by mbrea-c
fix distinct directional lights per view authored by robtfm
Fixed memory leak in bindless material authored by SarthakSingh31
Fix missing meta files breaking Bevy on itch authored by rparrett
Unrequire `VisibilityClass` from `Node` authored by ickshonpe
Remove invalid entity locations authored by ElliottjPierce
Refactor state scoped events to match entities. authored by AlephCubed
Add `resize_in_place` to `Image` authored by rparrett
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
Remove Shader weak_handles from bevy_pbr meshlets (with one exception). authored by andriyDev
Core button widget authored by viridia
do not require bevy_dev_tools for states example authored by mockersf
enable same state transitions authored by mockersf
2d Transforms authored by NthTensor
Simplified `on_replace` and `on_despawn` relationship hooks. authored by AlephCubed
Renamed BRP methods to be more hierarchical. authored by AlephCubed
Return Result from image::resize authored by FlippinBerger
Remove workaround for image resize warning authored by SpecificProtagonist
text measure function authored by ickshonpe
Let Component::map_entities defer to MapEntities authored by Testare
Clean up several miscellaneous uses of `weak_handle`. authored by andriyDev
Replace `FULLSCREEN_SHADER_HANDLE` with a `FullscreenShader` resource. authored by andriyDev
fix: Ensure linear volume subtraction does not go below zero authored by foxzool
Replace the `FORWARD_DECAL_MESH_HANDLE` with a resource that gets cloned out in a hook. authored by andriyDev
Replace `MESHLET_VISIBILITY_BUFFER_RESOLVE_SHADER_HANDLE` with a resource. authored by andriyDev
Replace (`Partial`)`Ord` for `EntityGeneration` with corrected standalone method authored by urben1680
Error when `#[entities]` is on the wrong part authored by Bleachfuel
Rename `TextLayout` authored by ickshonpe
Remove `TextNodeFlags::needs_recompute` authored by ickshonpe
Implement `IntoIterator` for `Populated` and borrows authored by zacryol
Remove entity placeholder from observers authored by ElliottjPierce
Text change detection split authored by ickshonpe
Remove entity reserving/pending/flushing system authored by ElliottjPierce
Schedule build pass maintenance authored by PixelDust22
Allow returning an error from `labeled_asset_scope`. authored by andriyDev
Moving frame_count diagnostics to FrameCountDiagnosticsPlugin authored by tjlaxs
Exclude `ctrlc` from `bevy_app` for the Nintendo 3DS authored by selvmaya
Issues Opened this week
Cosmic text: provide API to measure text without drawing it. authored by viridia
Return a Result from Image::resize authored by alice-i-cecile
Despawning an entity that has a relationship pair causes a crash on `Relationship::on_replace` authored by hukasu
Rename type_id method on systems to system_type authored by alice-i-cecile
Add tests for BRP authored by alice-i-cecile
Main branch fails to compile on Rust beta. authored by github-actions[bot]
Bevy Fails to Validate Cubemap Texture - Too many mipmap levels authored by Braymatter
Implement `SystemCondition` for systems returning `Result<bool, BevyError>` authored by urben1680
Information about supported extensions in `ReflectAsset` authored by Leinnan
Allow multiple `children!` in one bundle authored by molikto
Meshes flicker when retrieving mutable reference from AssetServer authored by Affinator
Make Handle to be a Component (again) authored by smer44
'2D Viewport To World' example doesn't follow API docs recommendation authored by AccessViolation95
Transform propagation sometimes takes a very long time (300ms+) authored by Ekranos
Volume subtractions and additions are malformed authored by janhohenheim
detailed_trace feature on wasm cause big memory leak authored by mirsella
New `Entity` allocation paradigm authored by ElliottjPierce
Make live demos in the example webpages click-to-load to limit resource usage authored by AccessViolation95
Picking pointer is not lifted when leaving a window authored by chompaa
Crash when second window is closed first in multiple_windows example. authored by sroauth
bevy_render has unfulfilled lint on Mac wasm authored by ElliottjPierce
Example ui_texture_slice texts showing up late authored by tjlaxs
Text change detection discriminator bug authored by ickshonpe
The Window component lies authored by Sirmadeira
Investigate ergonomic improvements for state scoped events API authored by alice-i-cecile
Plugin can add a SubApp to another SubApp (with added one dissappearing) authored by ahryshan