
Wild Spikes, new games, and new examples
2025-09-01
This week we see updates from ongoing games like Wild Spikes, new visual ability editors, material previewers with substance designer, and more.
The Bevy Audio working group also put out a new bevy_seedling version.

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

Bevy Material Viewer
showcase
A material viewer in Bevy meant to enable the viewer of Substance Designer materials.



bevy_firework demo
showcase
Demoes for updates to bevy_firework, a CPU-driven, batch-rendered particle system. New features include textured particles, emissive color support, and more.


Replicon Examples
showcase
New examples-in-progress for Replicon, including a boids example to showcase deterministic replication.

Crates
New releases to crates.io and substantial updates to existing projects
bevy_seedling v0.5.0
crate_release
bevy_seedling
is a sprouting integration of the Firewheel audio engine for Bevy. It's powerful, flexible, and fast. You can play sounds, apply effects, and route audio anywhere.
v0.5 has gathered quite a few exciting improvements over the last few months. You can check out the full release notes here.
fn precise_fade(
sample_player: Single<(&SampleEffects, &PlaybackSettings, &mut AudioEvents)>,
mut volume: Query<(&VolumeNode, &mut AudioEvents), Without<SampleEffects>>,
time: Res<Time<Audio>>,
) -> Result {
let (effects, settings, mut settings_events) = sample_player.into_inner();
let (volume, mut volume_events) = volume.get_effect_mut(effects)?;
// Fade out, then stop the music.
let fade_duration = DurationSeconds(5.0);
volume.fade_to(Volume::SILENT, fade_duration, &mut volume_events);
settings.stop_at(time.delay(fade_duration), &mut settings_events);
Ok(())
}
Highlights
Precise event scheduling
You can now schedule any event in bevy_seedling
down to the sample. You could use this for musical sequencing, loop regions, perfectly coordinated stingers, and more!
HRTF Spatialization
Thanks to Fyrox's hrtf
crate, bevy_seedling
now features a pure-Rust HRTF node. HRTFs (head-related transfer functions) offer a more sophisticated and convincing simulation of spatialized audio compared to simple stereo panning.
Device management and stream configuration
bevy_seedling
is now far more dynamic and configurable, and recovers better from sudden device disconnections. Switching devices, sample rates, and buffer sizes on the fly is easier than ever!
bevy_auto_plugin 0.5.0
crate_release
Bevy Auto Plugin provides attribute macros that automatically handle the repetitive setup usually required in Bevy plugins. Instead of manually wiring up components, resources, events, states, and systems - and remembering all their respective derives - you can declare them with concise annotations tied to a plugin.
bevy_urdf 0.4
crate_release
A Bevy plugin for importing robots from URDF files and running simulations. Ground vehicles use Rapier physics, while drones are simulated by integrating dynamics ODEs.
Bevy Enhanced Input 0.18.0
crate_release
An input manager for Bevy, inspired by Unreal Engine's Enhanced Input.
Constify math/dim2 authored by exoego
Emit the `WindowScaleFactorChanged` event authored by ickshonpe
Re-enable the workspace wide dead_code lint authored by james7132
remove panic in TextureFormatPixelInfo::pixel_info authored by mirsella
fix(mesh2d): replace unwrap by error log in specialize system authored by mirsella
use affine in volumetric fog authored by atlv24
use affine not mat4 inverse in light probes authored by atlv24
extract MeshPlugin authored by atlv24
remove irrelevant ui dependencies authored by atlv24
update some stress tests to use the common setup authored by mockersf
remove unused deps authored by atlv24
Allow negative value for camera elevation in atmosphere authored by mate-h
Fix CI in profiling.md authored by Weihnachtsbaum
Improve tracing level docs in profiling.md authored by Weihnachtsbaum
Disable button labels for the `many_buttons` stress text by default authored by ickshonpe
UI drag and drop example authored by ickshonpe
`Text2d` multi target scale factors support authored by ickshonpe
Use a correct default value for half space initialization in from_clip_from_world_no_far authored by atlv24
rename SpriteRenderingPlugin to SpriteRenderPlugin authored by atlv24
improve precision of ndc_to_world authored by atlv24
improve precision of viewport_to_world authored by atlv24
Clean up root toml features authored by atlv24
add plugin tracing spans authored by atlv24
Fix viewport_to_world for orthographic cameras and add regression tests authored by atlv24
add clip space docs authored by atlv24
examples: migrate async sleep to `futures-timer`; drop `async-std` authored by VitalyAnkh
Cut and merge some 0.17 release notes authored by alice-i-cecile
Fix mesh doc links authored by atlv24
bevy_reflect: Fix `FromReflect` derive for opaque remote wrappers authored by MrGVSV
0.17 migration guide tune up authored by alice-i-cecile
set uv_transform in pbr_input_from_standard_material authored by ChristopherBiscardi
Editing pass for 0.17 release notes authored by alice-i-cecile
derive Default on ShaderRef authored by atlv24
Add a new trait to accept more types in the `Val`-helper functions authored by TheBlckbird
Fix broken json documentation authored by mogambro
WebAssets without filtering 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
Implement Reflect for `indexmap::IndexMap`and `indexmap::IndexSet` authored by 2ne1ugly
make bevy_mesh optional for bevy_animate authored by atlv24
Add default_no_render authored by atlv24
Remove generic Components functions authored by james7132
force parenthesis for elements in the children! macro list authored by HugoPeters1024
`bevy_text::input` module with no undo authored by Zeophlite
Preventing excessive FPS text updates in the ui text example authored by CodingLikeAMonkey
Split `AnimationTarget` into two components authored by greeble-dev
Fixing crash when minimizing a window with custom viewport for 0.16. (#16704) authored by ChronoVortex
Reduce memory usage from Edges authored by james7132
Draft: use `http-cache` for web assets authored by mrchantey
Prevent `replace_related` from triggering lifecycle events authored by gwafotapa
Image::reinterpret_size and Image::reinterpret_stacked_2d_as_array now return a Result authored by KirmesBude
Image load_with_settings with TextureViewDimension authored by KirmesBude
Issues Opened this week
Optimize CommandQueue Allocation authored by james7132
`Observer`s' system state can become invalid while they're running authored by SkiFire13
`Observer`s' underlying system state can change after they have been spawned authored by SkiFire13
Consider making `remove_with_requires` automatic authored by Shatur
Allow access to `Commands` at the same time as iterating over one (or more) queries authored by djeedai
RenderStartup causes an additional frame of latency in rendering (aka pink screen part 2) authored by andriyDev
Plugins added before LogPlugin don't have a plugin build tracing span authored by hymm
Name component Reflect/Serde authored by raffaeleragni
Customizable atmosphere transformation authored by mate-h
macOS: main branch fails to compile with cranelift (unsupported section type mod_init_funcs) authored by wyvernbw
Improve error message when trying to load glb file without label authored by jf908
Geometric primitives in UI (canvas / gizmo equivalent) authored by viridia
set_cursor_position fails if CursorGrabMode is changed from Confined to None on the same frame authored by Satellile
Tracing scopes don't interact well with App::Run() authored by cBournhonesque
Web assets should default to using the OS's TLS certificates authored by jf908