
More Hanabi Particle Editors (and a Navigation Meshes editor)
2025-07-28
This week we see another Hanabi Particle editor (3d focused this time) and some more navigation mesh work in progress.
JARL is also about to enter its second play test while MegaFactory Tycoon has its Steam page up.
Environment Map Filtering GPU pipeline
In the course of working on atmospherics, #19076 introduces a real-time GPU pipeline that dynamically generates complete environment maps from a single cubemap texture on each frame.
This is an addition to doing the work "ahead of time" which is already supported via various external tools. Making it happen at runtime opens the door for procedural generation and other sources that aren't available at build-time.
For those interested in rendering, the PR showcases a nice example of using compute shaders to calculate information (in this case, mips). Its not a copy/paste example, but is an interesting read with some notable concepts presented.
Better ScheduleBuildError introspection
Extensible Schedule Graphs is a tracking issue for making the scheduling API reusable in more scenarios.
#20256 continues this work by deferring error message rendering so as to enable building more general reusable functions for ad-hoc graph manipulation.
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.

Rerecast updates
showcase
rerecast is an in-progress Rust port of Recast Navigation the industry-standard navmesh generator used by Unreal, Unity, Godot, and others.
The port can now generate polygon meshes and detail meshes identically to the C++ implementation. An in-progress editor can now also preview these detail meshes.


MegaFactory Tycoon
showcase
MegaFactory Tycoon is a 2D factory automation and tycoon game. In MegaFactory Tycoon, you are the manager of a fully automated factory. The factory produces consumer products that can be sold for profit on the central market.
Gameplay trailer and wishlist over on the Steam Page

Infra-Red Search and Track
showcase
IRST (Infra-Red Search and Track) display, using a custom shader. More information about changes to DAW flight sim is available on YouTube

JARL Playtest 2 Sneak Peek
showcase
Sneak peak of the upcoming second playtest for JARL, a Fantasy Colony Simulator.

Dark Wisp Defense
showcase
Dark Wisps Defence is a tower defense game on an open grid. Its open source and has been updated to use Bevy features like Triggers, Picking, and more.

Crates
New releases to crates.io and substantial updates to existing projects
bevy_save 0.19
crate_release
bevy_save enables you to easily save and load your entire application state (or just parts of it), including resources.
With the new Flow
s, bevy_save now supports both reflection-based and non reflection-based Snapshots!
bevy_enhanced_input 0.15
crate_release
An input manager for Bevy, inspired by Unreal Engine's Enhanced Input.
This update features a big rewrite into a component-based API. The core concepts remain the same, but are now expressed through ECS. It's recommended to revisit the quick start guide.

bevy_fog_of_war 0.3
crate_release
bevy_fog_of_war is a 2d fog of war crate, now with persistence in 0.3.

bevy_pretty_text
crate_release
Pretty Text is a Text2d effects library. It includes a light weight parser for constructing text hierarchies on-the-fly with special sequencing commands, text effects, and styles.
Adjust benches to be more robust authored by Trashtalk217
Fix Oklcha::lch docs by removing alpha argument authored by emjomi
Deduplicate orthonormal basis construction authored by atlv24
revert #19303, moving `WgpuWrapper` out of `bevy_utils` authored by atlv24
Environment Map Filtering GPU pipeline authored by mate-h
Make load gltf public authored by jiangheng90
Better `ScheduleBuildError` introspection and handling authored by ItsDoot
document Spotlight shadow map sizing authored by atlv24
Fix spotlight basis authored by atlv24
Updated Material Reference link as the old link was returning a 404 authored by ReallyMadHermit
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
Use `RenderStartup` for meshlets. authored by andriyDev
Use `RenderStartup` for screenshot plugin. authored by andriyDev
Use `RenderStartup` for resources in PbrPlugin finish. authored by andriyDev
Add bevy_camera_controllers crate and move freecam implementation into it authored by alice-i-cecile
Make math primitives runtime constructable, meshable authored by tychedelia
Extract text colors per glyph authored by ickshonpe
Solari specular scene/PT support authored by JMS55
cache update action: fix setup authored by mockersf
Color swatch widget. authored by viridia
Solari GI: Adjust jacobian rejection to reduce bright spots authored by JMS55
Fix observers' access to relationship data during `despawn_related` authored by muddxyii
Add `with_related_empty` methods to `EntityWorldMut` and `EntityCommands` authored by muddxyii
Support multiple unnamed fields in relationship derive authored by Azorlogh
Delete `ui_material.rs` authored by ickshonpe
Update taffy requirement from 0.7 to 0.8 authored by mnmaita
Add methods Observer::with_entities and Observer::watch_entities authored by gwafotapa
`EntityMut::get_components_mut`. authored by chescock
UI layout taffy sync fix authored by ickshonpe
Move schedule warnings before systems are moved authored by hymm
fail if compiled size of breakout example in release increase by more than 0.5% authored by mockersf
Remove generic parameter from `Access`, since it's always `ComponentId` authored by chescock
Edit comments sRGB for HDR usage authored by studnikoff
UI material z-offset override authored by ickshonpe
Remove systems from schedule authored by hymm
Issues Opened this week
Realtime Environment Map Filtering Tracking Issue authored by atlv24
Caching code for CI is too duplicated authored by alice-i-cecile
Include name of system that run condition was attached to in errors authored by alice-i-cecile
Error loading gltf with webp textures authored by ThibaultLemaire
Custom Post-Processing Example is too low-level and doesn't generalize to reading depth buffer / getting view position authored by Nathan-Fenner
Gizmos as structs (and more !) authored by Sigma-dev
Add DespawnAfter mechanism authored by tbillington
Despawn entities on relationship component removal when linked spawn is enabled authored by Shatur
Documentation for `SubCameraView` is confusing and bad authored by BigWingBeat
Allow cull_mode to be reflected so crates like bevy_materialize can set it authored by ethereumdegen
Document Text Node Styling Incompatibility authored by tim-blackbird
Padding has no effect on ImageNode authored by tbillington
CPU drawing into 2D texture is not updated to the GPU when using any 2D materials authored by AlexGrek
Swap from superlinter to a markdown-specific linter authored by alice-i-cecile
Transparent pixels in Screenshot authored by caprilesport
WebGL2 broken: no compute shaders authored by mockersf
Non-Removable Components authored by Zeenobit
`nondeterministic_system_order` example panics authored by rparrett
Return the passed EntityWorldMut from EntityCommand::apply authored by gwafotapa
Illegal path when importing embedded wesl shaders authored by MonaMayrhofer
Performance cost of `std::any::type_name` and `impl Bundle` authored by Zeenobit
Cursor not resetting style when leaving bevy_feathers button authored by tbillington
HDR and sRGB Values in Bevy authored by studnikoff
OrderIndependentTransparency doesn't work with custom materials authored by eswartz