Bevy 0.15 ships with 294 contributors and 1217 pull requests, introducing Required Components, a major rethink of entity spawning that deprecates all built-in bundles like SpriteBundle and NodeBundle. Other highlights include an entity picking/selection system adopted from bevy_mod_picking, generalized animation with masks and additive blending, the Bevy Remote Protocol for external tool integration, VBAO ambient occlusion, chromatic aberration post-processing, Order Independent Transparency, gamepads represented as entities, UI box shadows, and a switch to Cosmic Text for improved font shaping and bidirectional text support. A migration guide is provided for upgrading from 0.14.
Table of contents
Required Components #Chromatic Aberration #Visibility Bitmask Ambient Occlusion (VBAO) #Volumetric Fog Support for Point Lights and Spotlights #Fog Volumes #Order Independent Transparency #User-Friendly CPU Drawing #Entity Picking / Selection #Bubbling Observers #Virtual Geometry Improvements #Animation Masks #Generalized Animation #Animation Graph: Additive Blending #Animation Events #Bevy Remote Protocol (BRP) #Gamepads as Entities #Box Shadows #Cosmic Text #UI Scrolling #Retained Rendering World #Curves #Common Easing Functions #Cyclic Splines #PartialReflect #Reflect Remote Types #The Reflectable Trait #Function Reflection #TypeInfo Improvements #The Type Type #Reflection support for Sets #Change Detection Source Location Tracking #Optimized Iteration of Mixed Sparse Set and Table Components #Expose winit's MonitorHandle #Custom Cursors #Uniform Mesh Sampling #EventMutator #Isometry Types #Lifecycle Hook & Observer Trigger for Replaced Values #Pack multiple vertex and index arrays together into growable buffers #Rewrite screenshots #SystemParamBuilder #State Scoped Events #EntityRefExcept and EntityMutExcept #Cached One-shot Systems #Fallible System Parameters #Passing Data Into Systems By Reference #List Components in QueryEntityError::QueryDoesNotMatch #no_std Progress #GltfMaterialName Component #GPU Readback #Android: Configurable GameActivity and NativeActivity #Reflection Serialization Improvements #Simplified Multi-Entity Access #Hierarchy Traversal Tools #Shader Storage Buffer Asset #Accumulated Mouse Inputs #Stable Interpolation and Smooth Following #What's Next? #Support Bevy #Contributors #Full Changelog #Questions this post answers
What is the Required Components feature in Bevy 0.15 and how does it replace Bundles?
Required Components let a component declare via #[require(...)] which other components must accompany it, so inserting a component like Player automatically inserts its dependencies such as Team and Sprite, including transitively required components. This eliminates the need for separate Bundle structs, reduces boilerplate and API stutter, and is implemented so required components are inserted with no extra archetype changes or table moves. Developers upgrading engine internals like this can track breaking API changes on daily.dev.
Are built-in Bevy bundles like SpriteBundle and NodeBundle removed in Bevy 0.15?
Built-in bundles such as SpriteBundle, NodeBundle, and PbrBundle are deprecated as of Bevy 0.15 in favor of Required Components, though the Bundle trait itself still exists and custom bundles remain usable alongside required components. Plugin and app developers are encouraged to port their own bundles to the new pattern, and a 0.14 to 0.15 migration guide documents the necessary changes. Teams planning a Bevy version bump can check daily.dev for the specifics before migrating.
What changed for Bevy's virtual geometry (meshlet) feature in version 0.15?
GPUs must now support WgpuFeatures::SHADER_INT64_ATOMIC_MIN_MAX to use the meshlet feature, meaning older GPUs that worked in Bevy 0.14 may no longer be compatible. Existing MeshletMesh assets generated under Bevy 0.14 must be regenerated since they are incompatible with Bevy 0.15, and the feature remains experimental despite performance improvements. Following engine-specific hardware requirement shifts like this is easier with daily.dev.