
Bevy at RustWeek
2025-05-19
Rustweek kicked off with a talk from Polders creator Jos Feenstra about what they've termed "Dionysian Rust". Roughly: the idea that because Rust is built on a really strong foundation of zero-cost abstractions, safety, etc you as an application developer are free to spend the resulting available resources in a quick-and-dirty way, knowing that Rust will support you in refactoring in the future.
Rustweek also finished the conference off with a talk from Alice Cecile about Immutable Components and how they came to be.
After the conference, Bevy participated in an Unconference for two days. There was a bunch of great cross-community collaboration between different Rust projects and the more localized Bevy room split into roughly 4 groups, including
- The Bevy Book
- New Usage Examples
- A "Quickstart"
- PR Review!
There were livestreams if you want to check out the talks before they're cut down for YouTube.
Many maintainers were at RustWeek so the amount of merged pull requests is low this week.

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


Bevy Inspector v0.3 (VSCode)
showcase
0.3 brings:
- New views dedicated to components, resources, schema registry and server management.
- Display component and resource values with dynamic forms, depending on their reflected type.
- Modify component and resource values.
- Insert components to entities or add new resources.
- Spawn, destroy or re-parent entities.
- Publication of the extension on the Open VSX Registry.
- Improvements to the Rust examples.


The Dzhanibekov effect
showcase
The Dzhanibekov effect (aka tennis racket theorem) in action, simulated with Avian

Black Hole Shader
showcase
A black hole shader in a game that uses a port of Deep-Fold's Pixel Planet Shaders to WGSL


glTF Physics
showcase
New glTF features come up all the time, from references to physics. In certain cases a subset of the functionality of a given extension can map to existing features, such as a potential glTF physics spec to Avian colliders.
This project takes the khr_implicit_shapes
and KHR_physics_rigid_bodies
extensions from eoineoineoin/glTF_Physics and implements a Blender-to-Bevy pipeline.

Avian Kinematic FPS
showcase
A demo project with code and ideas from avian's 3D kinematic character example and Biped-Potato's fps tutorial to create a first person perspective to the avian 3D kinematic character example.

Crates
New releases to crates.io and substantial updates to existing projects

bevy_ratatui_camera 0.14
crate_release
bevy_ratatui_camera is a A bevy plugin for rendering your bevy app to the terminal using ratatui.
0.14 brings depth detection! Ratatui cameras can now record depth values for each character they draw, and skip drawing characters when something has already been drawn closer to the camera. This depth info can be passed to custom ratatui widgets as well, which lets you use normal ratatui widgets for things like signs, HP bars, or name tags that are supposed to exist in the game world, and that you still need properly covered by objects closer to the camera.
bevy_bundled_observers
crate_release
bevy_bundles_observers provides the observers!
macro for setting observers on an entity from within a bundle. It is similar to the children! macro, but for observers!
fn coin() -> impl Bundle {
(
Name::new("Coin"),
observers![|_: Trigger<OnCollect>| {
info!("You collected a coin!");
}],
)
}
bevy_input_prompts 0.2
crate_release
Mappings from bevy input types to popular input prompt asset paths, like kenney's

soft_ratatui
crate_release
soft_ratatui — a pure software renderer for ratatui, with no terminal or GPU required. It’s faster than running ratatui in a terminal and supports full Unicode via cosmic-text.
bevy_gltf_animation 0.1
crate_release
bevy_gltf_animation automates building AnimationGraph
s for simple glTF animation use cases. It also introduces new types like GltfAnimations
intending to make it easier to play those animations.

bevy_firework 0.7
crate_release
bevy_firework is a CPU-driven, batch-rendered particle system for the Bevy game engine.


bevy_animation_graph 0.7
crate_release
bevy_animation_graph works as a replacement to most of bevy_animation, and aims to provide a complete animation system and development workflow including animation graphs, animation state machines (i.e. animation controllers) and a graphical editor to create your animation graphs and state machines.
0.7 brings
- Event-track based animation synchronization: Decorate animation clips with arbitrary event tracks that get sampled in the animation graph as
EventQueue
s. Use those event tracks as synchronization tracks in blend nodes. - Node creation popup: You can now click anywhere in the graph editor canvas to bring up a node creation popup.
- Animation retargeting: You can now do some (very basic) animation retargeting by configuring bone path segments to override in animated scene files.

bevy_pathfinding
crate_release
bevy_pathfinding features a flowfield + boid approach to pathfinding, as well as spatial partitioning logic for optimization. Great for RTS games! The debug UI can be used to easily view and update the behavior of the system.
bevy_link_window_to_monitor
crate_release
bevy_link_window_to_monitor uses Bevy 0.16's relationships to provide a link between Windows and Monitors. So now, getting what Monitor a Window is on is as easy as querying for OnMonitor.
fix windows wasm embedded assets authored by atlv24
Fix: Provide CPU mesh processing with MaterialBindingId authored by dsgallups
Fix specular cutoff on lights with radius overlapping with mesh authored by atlv24
Remove dead states code from bevy_ecs authored by mgi388
clippy: expect large variants and other small fixes authored by atlv24
Use embedded_asset to load PBR shaders authored by atlv24
fix(render): transitive shader imports now work consistently on web authored by atlv24
Pin nightly due to miri issue authored by NiklasEi
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 support for .wesl files to the regex pattern for examples authored by atlasgorn
Call MeshRayCast cast_ray without mut authored by powei-lin
Fix mismatched FogFalloff authored by lomirus
Add `AudioSinkPlayback::position` authored by Weihnachtsbaum
Improve Bevy's double-precision story for third-party crates authored by jnhyatt
Explanation for the 'classic' fog example authored by fallible-algebra
Update doc about Windows CursorGrabMode support authored by jf908
Record render diagnostics for all engine passes authored by jf908
Optional explicit compressed image format support authored by DGriffin91
Make light cascades and tonemapping luts pub authored by DGriffin91
Fix #11111 by making asset settings part of `AssetPath` authored by greeble-dev
don't filter dragged entity out of DragEnter events authored by tomara-x
fix bevy_dev_tools import authored by Saratii
Move trigger_screenshots to finish() authored by IceSentry
Explanation for the '3d scene' example authored by fallible-algebra
Diegetic UI example authored by aevyrie
System param config authored by PixelDust22
Explanation for the '2d shapes' example authored by fallible-algebra
Add WakeUp event to App authored by IceSentry
Navigate through TabGroups in order. authored by FlippinBerger
Explanation for the 'game menu' example authored by fallible-algebra
No schedule build pass overwrite if build settings do not change `auto_insert_apply_deferred` from `true` authored by urben1680
Add a Dir4 to resolve #17983 authored by stevehello166
Fix #19219 by moving observer triggers out of resource_scope authored by mbrea-c
Remove apostrophes in possessive its authored by theotherphil
Adding context menu example authored by extrawurst
A renderer implementation based on frame graph. authored by zuiyu1998
Make sure that `serde_json::Map::into_values` exists authored by BenjaminBrienen
enable wayland by default authored by BenjaminBrienen
Clarify docs for transmute_lens functions authored by theotherphil
New cooldown example authored by NiklasEi
Allow unfocused window creation authored by BenjaminBrienen
Adding interaction states for headless widgets. authored by viridia
`tab_navigation` example improvements authored by ickshonpe
Clarify RenderLayers docs authored by theotherphil
Make remove_reflect parameter names consistent between ReflectCommandExt and impl for EntityCommands authored by theotherphil
[rustweek] inventory example authored by ChristopherBiscardi
Fix missing meta files breaking Bevy on itch authored by rparrett
Add missing doc comments to system_information_diagnostics_plugin authored by theotherphil
Add missing docs for diagnostics.rs authored by theotherphil
Document why examples are disabled on the web, pass 1 authored by TimJentzsch
Add missing doc comments for log_diagnostics_plugin authored by theotherphil
New selection wheel example authored by kristoff3r
Add boilerplate docs for PointerHits::new and HitData::new authored by theotherphil
Mention Mut in QueryData docs, clarify behaviour of Mut vs &mut in Mut docs authored by theotherphil
Clarify Resource change detection behaviour in condition docs authored by theotherphil
Clarify PartialReflect::apply docs authored by theotherphil
Allow not emitting `BundleFromComponents` with `Bundle` derive macro authored by TheNeikos
bevy_log: refactor how log layers are wired together authored by SilentSpaceTraveller
Issues Opened this week
Error registering generic type with `PhantomData` authored by benfrankel
Expose `LogDiagnosticsState` authored by benfrankel
Forward decals are broken on Web authored by janhohenheim
Mesh picking plugin sometimes spams `Pointer<Out>` events infinitely for a stationary mouse authored by Runi-c
Add option to start window maximized authored by jf908
dev_tool example has wrong import authored by Saratii
Attaching an AmbientLight to a Camera causes unexpected warning message authored by phi-fell
Gizmos flip axes when values are large authored by aevyrie
Emit warning when `Pickable` added to an entity whose mesh is unloaded from main world authored by Runi-c
Basic 3D Scene Renders Unpredictably authored by jasonboninger
Failed to start as fullscreen on wayland authored by dearfl
Added monitor after app started did't provide any useful information on wayland authored by dearfl
Audit `#[expect(clippy::large_enum_variant)]` usage in bevy_render authored by atlv24
Crash when observing SceneInstanceReady trigger authored by mbrea-c
Isometric Support authored by dcd894
Warn that loading asset using a `PathBuf` does not handle labels authored by hukasu
Improve the `box_shadow` example authored by ickshonpe
3D Volumetric Rendering from Point Cloud Data authored by m-krastev
split_screen example doesn't spawn most assets authored by BenjaminBrienen
Allow for adding a relationship without a bundle. authored by Freyja-moth
`run_system_cached` does not allow usage of systems which return `Result` authored by Oneirical
Examples broken on web, pulling in `env` package authored by TimJentzsch
Bevy Standard Widgets authored by viridia
Observer trigger fields rework authored by Vrixyz
impl Reflect for Wrapping authored by jonathandw743