
Atmospheric Shaders, Rocket Launches, and Factory Games
2025-04-21
0.16.0-rc.5 is currently out and looking likely going to be the last release candidate, which means the 0.16 stable release is close and mostly waiting on some final release notes. There's already exciting PRs for 0.17 starting to line up but we'll wait until they land to talk about them.
In the meantime merges to main are in a pre-release stability slowdown with only the final small bugfixes having made it in in the last week before rc.5.
We still have some amazing showcases this week including atmospheric shaders, rocket control launches, and the return of Flash! and crates are starting to release no_std compatible versions, meaning you could potentially start using multiplayer networking on constrained devices.
Scene Viewer
racecar model from Kenney's Car Kit
Bevy's examples directory is large, containing approximately 300 examples of well-kept up to date code exploring various features of the engine. In those examples, some are of helpers like camera controllers and others are visualizers. One such directory is the tools
directory, which contains a gamepad viewer and a scene viewer. In #18828 there was a small change to the scene viewer that allows it to use a gltf file from anywhere on your filesystem, so you can pull a scene in from any gltf on your system.
cargo run --release --example scene_viewer /Users/chris/levels.glb#Scene2

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

Gielis (Superformula)
showcase
A visualizer for superformula, which is a generalization of superellipse.


Realtime Sky and Cloud Shaders
showcase
A really fantastic sky shader featuring
- HDR output which works with bevy bloom/hdr passes.
- Atmospheric scattering approximation
- Raymarched volumetric clouds with realistic lighting
- Night stars and northern lights
- Denoiser pass
- Supports bevy's PBR reflections via probe lights.

Foxtrot
showcase
More progress on a rewrite of Foxtrot, an all-in-one Bevy 3d game template for Desktop. The changes shown here are already merged into the main branch so you can take it for a spin if you want to.

Dwellers
showcase
Dwellers is an open source Dwarf Fortress/RimWorld inspired game that's been in development for a year. It has a number of game features implemented already and is playable but is generally considered a work in progress as well.

bevy_animation_graph: 2d blend spaces
showcase
A demo of an in-progress bevy_animation_graph feature. 2D blend spaces working together with event-track based animation synchronization to blend moving and strafing animations where the foot positions don't match out of the box.


Jarl: Crafting UI
showcase
Crafting system UI for Jarl, a fantasy colony simulator. The ui is built with bevy_ui and some custom helpers.

Crates
New releases to crates.io and substantial updates to existing projects
bevy_shuffle_bag
crate_release
bevy_shuffle_bag provides a "shuffle bag" implementation. A "shuffle bag" is a collection of items that can endlessly be picked in a random, non-repeating order.
use bevy::prelude::*;
use bevy_shuffle_bag::ShuffleBag;
let mut rng = rand::rng();
let mut treasure_chest = ShuffleBag::try_new(
[
"gold",
"armor",
"sword"
],
&mut rng
).unwrap();
let loot = treasure_chest.pick(&mut rng);
println!("I just picked up a {loot}!");
bevy_ui_text_input
crate_release
Basic Bevy UI text input using cosmic text.
A number of the core text-editing basics are implemented, including undo/redo and cut/copy/paste, but features like rich text and responsive sizing are not currently.
aeronet 0.14.0-rc.1
crate_release
This is a release candidate of aeronet, an ECS-native low-level networking library for Bevy which is compatible with bevy_replicon.
0.14 is a super interesting release, bringing no_std and no_atomic support, which in turn means full, high-quality reliable/ordered messaging + replication networking stack on your ESP32 and Game Boy Advance support.
0.14 also brings Steam networking socket support.

Devlogs
vlog style updates from long-term projects

Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins
Bevy Notes
educational
A small collection of useful small systems/components in website post form. Currently there are two notes:
- using gamepad as a mouse and or keyboard
- Joystick area node for having virtual joystick for (mostly) touch screen input
Make sure the mesh actually exists before we try to specialize. authored by tychedelia
remove reliance on a trait solver inference bug authored by lcnr
Use never_say_never hack to work around Rust 2024 regression for fn traits authored by alice-i-cecile
Expose the output curve type in with_derivative authored by mweatherley
Don't restrict the scene viewer to loading assets from approved paths. authored by pcwalton
Add `remove_children` and `remove_related` to `EntityWorldMut` and `EntityCommands` authored by JaySpruce
Fix wrong method call in relationship replacement command authored by JaySpruce
Revert "Allow partial support for `bevy_log` in `no_std` (#18782)" authored by cart
Fix the ordering of the systems introduced in #18734. authored by pcwalton
Panic on overlapping one-to-one relationships authored by cart
Revert attempt to fix memory leak authored by tychedelia
Swap order of eviction/extraction when extracting for specialization authored by tychedelia
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
Added derive Reflect to UntypedHandle and UntypedAssetId authored by fredericvauchelles
don't mark as modified removed asset if the are RENDER_WORLD only authored by mockersf
Fixes #15389, added docs to RawHandleWrapper::_window field authored by mhsalem36
Make the example android app explicitly handle some device config change events to avoid getting the activity destroyed authored by RabadanDotDev
Let `AnimationPlayer` play clips without a graph authored by greeble-dev
Allow access to font atlases authored by ickshonpe
`FontAtlasSet` fixes authored by ickshonpe
Apply a consistent padding in shader uniforms for the WebGL2 target authored by Henauxg
Queries as entities authored by notmd
Removed conversion from pointer physical coordinates to viewport local coordinates in bevy_picking make_ray function authored by KrzysztofZywiecki
Add TilemapChunk rendering authored by ConnerPetzold
Increase upper limit of `children!` authored by CorvusPrudens
Fix BRP query failing when specifying missing/invalid components authored by splo
Split `Camera.hdr` out into a new component authored by ecoskey
Add `world` and `world_mut` methods to `RelatedSpawner` authored by urben1680
add #[serde(default)] to Node (and, perhaps other similar structs) authored by CupOfTeaJay
Issues Opened this week
Tracking Issue: Entity API Deduplication authored by ItsDoot
Typo in migration guide: EntityHashSet -> HashSet authored by guyguy2001
has_ever_changed and erase_change_history APIs for Ref<>-likes. authored by moonheart08
Archetype bug panics when calling EntityWorldMut::observe several times before calling EntityWorldMut::insert authored by Jarten0
Rework one-to-one relations to remove the original relationship rather than panicking authored by alice-i-cecile
Store colors in `TextLayoutInfo` and extraction buffers per per glyph/slice authored by ickshonpe
Panic / segfault when trying to create a custom bindless material with storage buffers. authored by inodentry
Add inheritance to required Components authored by Freyja-moth
Reported mouse movement is massively slower on Wasm than on native when cursor is locked authored by janhohenheim
Mesh picking offset when the camera's viewport physical_position is non-zero authored by Henauxg
Add `remove_if` to EntityCommands to support chaining conditional bundle removals authored by mgi388
Ignore Default requirements when using unit structs in required components authored by Freyja-moth
Idea: Guaranteed Dense Entities authored by dmyyy
Dynamic linking causes taskpool panic with Cranelift on Windows 10 authored by BigBadE
Updating a spawned mesh asset requires RenderAssetUsages::default() in 0.16.0-rc.5 authored by oliver-dew
Raspberry Pi 5 - Arch Linux Arm - vulkan-broadcom - Example crashes with "Too many bindings of type StorageBuffers" authored by Ph0N37Ic5
BRP query fails when specifying missing/invalid components authored by splo
Clarify that a Camera without RenderLayers only renders RenderLayers::layer(0) authored by FrTerstappen
DirectionalLight shadow gets eaten, when another without shadow_enabled is present authored by dekirisu
UI Node with absolute position seems to be incorrectly scaled authored by rongcuid
Animated Materials: Major memory leak authored by DissolveDZ