Bevy 0.20 adopts WESL and expands scene-building tools
Bevy 0.20 replaces its custom shader dialect with WESL, an extension of WGSL that provides modules, imports and conditional compilation. The Rust game engine also simplifies scene syntax and adds an event indicating that an entity and its descendants have finished spawning. These changes make shader reuse and scene-dependent initialization more explicit.
Bevy · Oct 8, 2026
Why it matters
Existing Bevy projects should inspect shader and scene migration requirements before upgrading, especially when they use custom rendering code.
More context
The release is available on crates.io with a 0.19-to-0.20 migration guide. Translate custom Bevy shader directives and rename migrated files to .wesl; plain WGSL without those directives remains supported. Try the updated scene and UI examples in a small project first.
Keep in mind
This is a released pre-1.0 engine update with breaking changes. Rendering features have platform limits: initial mesh-shader support excludes the web, and Solari’s macOS support currently lacks a built-in denoiser. We did not test the engine.
Original read