
Bevy's 5th Birthday, Atmospheres, and Pointclouds
2025-08-18
It's Bevy's 5th Birthday and for the next month community members will be shipping their own 5th birthday blog posts.
As usual upstream sees improvements with Sun Disk and Atmospheres. We also see improvements to the Bevy release notes process.
Atmosphere generated environment map lighting
#20529 adds generated environment lighting to the atmosphere for reflections and diffuse
SunDisk
#20434 introduces a sun disk to Bevy's growing atmosphere support.
Solari
#20596 introduces optional DLSS-RR support to Solari while #20580 improves global illumination quality and #20457 improves BLAS (bottom-level acceleration structure) compaction.
Text2d TextBackgroundColor
#20464 adds support for TextBackgroundColor
to Text2d
.
New Val constructors
Writing UI code is always full of units, and with #20518 these units have shorthands available in the prelude making them easier to write. These include px
, percent
, vw
, vh
, vmin
and vmax
.
Release Content
Each release Bevy's tooling for managing release content, migration guides, and more gets better. #20500 added a tool to order and merge release notes and migration guides, ahead of 0.17's release.
SystemState in Exclusive Systems Example
A new example added in #20564 shows how to use SystemState
alongside &mut World
in exclusive systems.
Game of Life Compute Shader
#20466 updates the compute shader example to pass a uniform buffer to the shader that determines the color for alive cells.

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


Chladni figures
showcase
Generating chladni figures using a compute shaders, bevy_spatial and exported with bevy_image_export.

Crates
New releases to crates.io and substantial updates to existing projects
bevy_auto_plugin 0.4.0
crate_release
Procedural attribute macros for Bevy apps that reduce boilerplate by automatically registering components, resources, events, states, and systems in your plugin's build function.

bevy_point_cloud
crate_release
The first version of bevy_point_cloud; for rendering large point clouds.
Bevy Enhanced Input 0.16.0
crate_release
bevy_enhanced_input is an input manager for Bevy, inspired by Unreal Engine's Enhanced Input.
bevy_gearbox 0.3
crate_release
A statechart for the bevy game engine. bevy_gearbox is XState built with bevy ergonomics in mind. It even comes with its own stately-esque visual editor!
bevy-inspector-egui 0.33
crate_release
bevy-inspector-egui is an inspector plugin built on egui.
bevy_jobs
crate_release
bevy_jobs provides a simple way to define, spawn, and manage jobs that run in the background. It is designed to be extensible, allowing you to create your own job types and runners.
Bevy Save 2.0.0+4
crate_release
bevy_save is a comprehensive framework for saving / loading application state. It allows users to easily define, swap, and use various formats (eg json, ron, mp, etc), backends (FileIO, WebStorage, Sqlite), and capture types (reflection-based Snapshot or user-defined) in a single location for their entire application with a simple collection of traits.
bevy_mesh_outline v0.1.1
crate_release
bevy_mesh_outline is an outline crate with a custom pipeline that is designed to enable occluding jump flood outlines with other meshes.

bevy_cef
crate_release
bevy_cef renders a webview as a texture. Currently support is macos only but Windows and Linux support is possible.
Bevy Renet 2.0
crate_release
Bevy renet is a crate for creating server/client networked games, designed for fast-paced competitive multiplayer games.

Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins
The Basics of q_service
educational
This post covers the motivations and mechanics of adding a service model to Bevy using q_service.
Use bevy_camera in solari, meshlets, dev_tools, clustering, pcss instead of bevy_render::camera re-export authored by atlv24
Fix UB, panic and compiler error in `bevy_tasks` authored by NthTensor
Return an error from `Assets::insert` instead of panicking. authored by andriyDev
Optimize solari initial and temporal DI authored by SparkyPotato
Fix panic in `FpsOverlay` with disabled `FrameTimeGraph` authored by nekonimous
Use bevy_shader in pbr, core pipelines, sprite, aa, gizmos, feathers, solari, dev_tools instead of bevy_render::shader re-export authored by atlv24
Use bevy::shader in examples instead of bevy::render::shader re-export authored by atlv24
Add bevy_shader prelude and move load_shader_library authored by atlv24
Use bevy_light in pbr instead of bevy_pbr::light re-export + add bevy_light prelude authored by atlv24
Fix doc paths to not use deprecated re-exports authored by atlv24
Use bevy::light in examples instead of bevy::pbr::light re-export authored by atlv24
Update `sysinfo` to `0.37.0` version authored by GuillaumeGomez
Fix latest lints for rust beta authored by mockersf
Fix rotation matrix construction from `Rot2` authored by Jondolf
Rename `ComputedNodeTarget` to `ComputedUiTargetCamera` authored by ickshonpe
Update Game of Life compute example to include a uniform buffer variable authored by dontgetfoundout
Add migration guide for #20522 authored by Jondolf
Depend on bevy_tasks::block_on instead of futures_lite::block_on authored by james7132
Bump crate-ci/typos from 1.34.0 to 1.35.3 authored by greeble-dev
Yeet re-exports authored by atlv24
Yeet RenderAssetUsages re-export authored by atlv24
Fix release content metadata authored by NthTensor
Solari BLAS compaction authored by JMS55
Rename `update_ui_context_system` authored by ickshonpe
Fix App::get_added_plugins not working inside finish and cleanup authored by atlv24
Make bevy_ui not depend on bevy_render authored by atlv24
Don't serialize `PhantomData` in adaptor curves authored by grind086
smaa: use textureSampleLevel for WebGPU support authored by supdrewin
Update the doc comments for `UiCameraMap` and `UiCameraMapper`. authored by ickshonpe
Move feathers propagation into PostUpdate authored by alice-i-cecile
bevy_render: disable GpuPreprocessingSupport for GL backend authored by jakobhellermann
Rename the `Allows` query filter to `Allow` authored by JaySpruce
Docs for emissive color on StandardMaterial authored by alice-i-cecile
Add constructor functions for each variant of `Val` authored by ickshonpe
ask for features in bug report authored by hymm
Atmosphere generated environment map lighting authored by mate-h
`Text2d` shadows authored by ickshonpe
Error on unloaded ImageRenderTarget authored by ecoskey
add example of using system state with an exclusive system authored by hymm
debounce asset events for scene reloading authored by mockersf
Make `GatedReader` a test-only symbol, and allow all `bevy_asset` tests to all run single threaded. authored by andriyDev
remove some new lines from ComputedStates docs authored by hymm
Fix typo in release-notes directory link in GitHub workflow authored by ariofrio
Opt-in raw vulkan initialization with hooks authored by cart
Split up `ComputedUiTargetCamera` authored by ickshonpe
Release content export tool authored by NthTensor
Revert asset lifetime changes and preserve staticness of asset paths in AssetServer::load() authored by alice-i-cecile
Initial DLSS implementation authored by JMS55
Fix code indentation in README authored by Jondolf
Split out sprite rendering authored by Zeophlite
Update the list of `RenderStartup` PRs in the release notes. authored by andriyDev
Use the capacity from the entities Vec to initialize Table columns authored by james7132
Rebrand glTF coordinate conversion to an alternative strategy that is biased towards glTF models authored by janhohenheim
Make sure we submit work even if we visited a camera. authored by tychedelia
`Text2d` `TextBackgroundColor` support authored by ickshonpe
UI doesn't need render authored by Zeophlite
Improve Solari GI quality authored by JMS55
Optional DLSS-RR support in Solari authored by JMS55
Fix some lints and feature gates authored by mockersf
Add bevy_light::SunDisk authored by defuz
Move `text2d` into `bevy_sprite` authored by ickshonpe
Remove unnecessary sqrt ops authored by tbillington
Gate WireframePlugin behind WgpuFeatures::POLYGON_MODE_LINE | WgpuFeatures::PUSH_CONSTANTS authored by JMS55
Fix internal features authored by atlv24
Move calculate_bounds_2d back to bevy_sprite authored by atlv24
update and coalesce migration guides and release notes for crate refactors authored by atlv24
Remove `scale_value` authored by ickshonpe
make bevy_render not depend on bevy_light authored by atlv24
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
Temporarily upstream undo_2 authored by Zeophlite
Use BlobArray and ThinColumn in ResourceData and ComponentSparseSet authored by james7132
Add new ImageLoaderSettings member for loading as stacked 2d array authored by KirmesBude
Add `no_std` support to `bevy_log` authored by Shatur
Add a new trait to accept more types in the `Val`-helper functions authored by TheBlckbird
Premultiplied alpha. authored by tychedelia
UI Node Decorations authored by ickshonpe
remove panic in TextureFormatPixelInfo::pixel_info authored by mirsella
Modifying an Assets dependencies should mark the Asset as modified authored by rectalogic
Feathers transition animation authored by viridia
Introduce Command::apply_raw authored by james7132
Rename `Event` to `ObserverEvent` authored by Zeophlite
Make `WorldEntityFetch::fetch_mut`/`fetch_deferred_mut` return a generic error authored by urben1680
Issues Opened this week
Expose more `MaybeLocation` parameters/fields authored by urben1680
AccessKit is slow and buggy when Bevy is in continuous update mode authored by viridia
Color conversion functions for shaders authored by viridia
AccessibleName component authored by viridia
Remove `bevy_ui`'s dependency on `bevy_camera` authored by ickshonpe
Run `auto_register_static` example in CI authored by eugineerd
Relationship ordering behavior is not documented nor tested authored by james7132
Passthrough Shader Example Needed authored by exquisiteOntologist
Add a trait for the `Val` helper functions to allow the input of multiple types authored by TheBlckbird
if a task is spawned that doesn't complete, other tasks never run on native authored by bananaturtlesandwich
`BevyError` should include error severity to allow for customizable handling authored by alice-i-cecile
KHR_animation_pointer support authored by Igor-dvr
Low-level framework for particles authored by viridia
Stack overflow with large-ish Bundle spawn authored by ejrh
Fallible interpolation authored by viridia
Examples flicker on Windows authored by gbegerow
bevy_picking sometimes misses hits before objects are moved authored by StefanSalewski
`Camera::world_to_viewport` returns coordinates relative to render target instead of viewport authored by vladbat00
Headless Tooltips authored by viridia