Dev

Bevy 0.20 Launches with Solari Upgrades, Metal Support and WESL

Rust game engine Bevy 0.20 released with faster Solari and Metal support, WESL adoption, and expanded 2D materials.

6 min read Reviewed & edited by the SINGULISM Editorial Team

Bevy 0.20 Launches with Solari Upgrades, Metal Support and WESL
Photo by Brecht Corbeel on Unsplash

Bevy 0.20, the latest version of the Rust-based data-driven game engine Bevy, was released on October 8, 2026. According to reporting by bevy.org via BD103 on Lobsters, the release was made possible by 227 contributors and 817 pull requests. Distribution is via crates.io, with the full source code available on GitHub. A migration guide from 0.19 to 0.20 is also provided for users updating existing apps and plugins.

Bevy is a free and open-source framework written in Rust, featuring a data-driven design. With the official quick-start guide, users can start prototyping in a short time. Community-developed plugins, games, and learning resources are collected in Bevy Assets. This release includes wide-ranging improvements across rendering, scene description, UI, and scheduling.

Solari, Bevy’s realtime pathtraced renderer, has seen major improvements to pretty much every aspect of the plugin!

As the quote above shows, the focus of this release is enhancements to Solari, the path-traced rendering plugin. In the months since the previous version, quality, speed, and feature coverage have all been addressed.

Solari Quality and Speed Improvements

Solari is Bevy’s real-time path-traced rendering plugin. In this version, an improved ReSTIR implementation enhances image quality. Noise is reduced, enabling more accurate light reproduction, as described. The range of supported Bevy rendering features has also expanded, increasing the scenes where it can be used. Performance has also improved, reducing the load for real-time use. A notable point is support for macOS. It now runs via Metal, making Solari available on Apple computers. Integration with deep-learning-based super resolution has also advanced, balancing demanding path tracing with display resolution. This continues the rendering improvements shown in Bevy 0.19 Release Delivers Next-Gen Scenes and High-Quality Shadows.

BSN Syntax Improvements and Ready Event

BSN is Bevy’s new scene description system. In this version, the syntax has been revised, improving readability and ease of composition. Nested structures are now organized more clearly, making components easier to reuse. A Ready event for scene entities was also introduced. An observable event fires once all children have been spawned. This clarifies the ordering of initialization logic and avoids reference failures immediately after spawning. It makes work more reliable when assembling large-scale scenes.

Expanded Feathers Widgets and Usability

Feathers is an opinionated UI toolkit for the editor. This version adds color inputs, scrollable lists, dropdowns, and deferred menus. Numeric inputs now support scrubbing, making fine adjustments more intuitive. Headless label widgets were also added, allowing users to customize the appearance. When developing editors and tools, missing widgets can stall work. This expansion reduces that friction. The introduction of context-sensitive theming also helps unify the look of tools.

WESL Adoption Refreshes Shading Foundation

WESL has been officially adopted as the shading language. WESL is a standardized extension of WGSL. It replaces Bevy’s previous custom WGSL dialect. Shader code is more reusable, making shaders easier to maintain. The development team is working with the WESL team to advance plans for future shader development. Support for mesh shaders is also on the list, increasing the flexibility of the render pipeline. This can be seen as a move of the shading foundation toward common standards.

Stronger Sprite Materials and 2D Integration

Material features for 2D rendering have been greatly expanded. Custom shader materials can now be created for sprites. An extensible system for 2D mesh materials, matching 3D, has also been introduced. Backend integration has progressed as well, unifying the processing path for sprites. This lowers maintenance burden and narrows the feature gap between 2D and 3D. Applications that make heavy use of 2D games and overlay displays will benefit most. As with the rendering-foundation consolidation seen in Servo 0.2.0 Release, Major Update with 534 Commits, the aim is to reduce duplication.

Improved Camera Controls and Schedule Management

An orbit camera is newly available. Scenes can be navigated with CAD-like controls. This streamlines camera movement for editing work and level inspection. For scheduling, weak ordering via chain_weak has been introduced. It allows loose execution order to be described without enforcing strict before-after relationships. Schedule randomization has also been added, making order-dependent bugs easier to detect. The introduction of per-schedule change ticks makes change detection more fine-grained. It limits unnecessary recomputation, contributing to performance with large entity counts.

Major UI and Text Rendering Enhancements

Val::Em and Val::Rem have been introduced for UI. These are relative units based on font size, making it easier to follow scaling. Elliptical corner rounding is also supported, increasing design freedom. The introduction of FixedNode helps pin layouts in place. Inline boxes and inline images have also been added, enabling elements to be embedded within text. Tools that make heavy use of descriptions and log displays gain expressiveness. These are feature sets that could also be applied to visualization tools for training data, such as in Riemann-1.0 Learns Housework from 200,000 Hours of Human Video.

Foundational Improvements for Stability and

Performance

Panic catching has been improved, making behavior on errors easier to manage. Improved error context reporting allows faster identification of failure points. Faster bulk despawning shortens hitches when removing large numbers of entities. Improved texture compression helps reduce storage size and load times. All of these show their effect in large scenes and long-running sessions. While not flashy feature additions, they underpin operational reliability. This release combines prominent rendering enhancements with steady foundational improvements.

Editorial Opinion

Looking at short-term impact. Over the next 3 to 6 months, we expect Solari’s Metal support to increase prototyping on Mac. The migration to WESL will prompt shader rewrites, and we assess that documentation and examples will be updated. The BSN syntax changes will make consulting the migration guide essential, and keeping tools up to date will be a challenge.

Taking a long-term view. In 1 to 3 years, we expect real-time use of path tracing to enter the options for independent developers. Expanded 2D materials could blur the boundary between 2D and 3D, increasing hybrid expression. Alignment with common standards will ease talent mobility and contribute to the sustainability of the community.

We note questions from the editorial team. What scale of production will benefit from higher-quality path tracing. Will WESL adoption spread to other Rust rendering frameworks. Will weak ordering and schedule randomization change the culture of bug detection. Verification of these points will be required in future coverage.

References

Frequently Asked Questions

What changed for Solari in Bevy 0.20?
Image quality was improved through ReSTIR refinements, with faster performance and broader rendering feature support. It now supports macOS via Metal, with improved integration with deep-learning super resolution. This broadens use cases for trying real-time path tracing.
What are the BSN and WESL changes?
BSN syntax was revised for better readability and composition. A Ready event allows detection of child-spawn completion. WESL is a standardized extension of WGSL that replaces the old custom dialect. Shader reusability is improved.
What are the benefits for 2D developers?
Custom shader materials can be used for sprites. Extension of 2D mesh materials is now on par with 3D. Backend integration improves maintainability. Relative UI units and inline elements also increase expressiveness.
Source: Lobsters

Comments

← Back to Home