Vulkan Backend, IK Spiders, and holiday voxels
2024-11-11
The release candidate process continues, which means more stabilization PRs and small bug fixes this week for the most part.
wgpu 23 was released and is now merged for Bevy 0.15. Animation Blending had some blending weight changes to make the blending more reasonable to reason about.
In the community showcase this week there's multiple inverse-kinematic spiders, the holiday season is starting to rear its head, and a really interesting Vulkan backend for Bevy that I'm hoping to see more of in the future.
The Testbed
Some examples are moving to The Testbed, which is really just another folder in the Bevy repo. If you're looking for "more" than the hundreds of examples already in the examples folder, you can now find some of the more "here's a whole bunch of API usage" examples in the testbed.
Alice's Merge Train is a maintainer-level view into active PRs, both those that are merging and those that need work.
Showcase
Bevy work from the #showcase channel in Discord and around the internet. Use hashtag #bevyengine.
Procedural real-time engine vrooms
showcase
A rough estimation of a 3 cylinder engine crossed with RC car, procedural track, and controller built on avian.
Falling Sand Simulation Engine
showcase
A longer look at a falling sand engine using bevy_ecs, wgpu, and rapier2d. The demo includes a number of rooms, spraying particles, and a character running around.
BioVision Hierarchy viewer
showcase
A BioVision motion capture format viewer written to make sure the units and other data were correct.
Vulkan render backend
showcase
This Vulkan rendering backend for Bevy is a mostly GPU driven renderer with multi-draw indirect, bindless, and GPU culling, that supports most of Bevy's standard material as well as a significant portion of Blender's material system. Materials are fully dynamic and not defined at compile time. It currently uses the screen-13 crate and supports Windows, Linux, and macOS M-series (via moltenvk). There's a whole lot of great discussion both about this renderer and about Bevy's rendering in the Discord thread, so I suggest checking it out if you're interested in rendering internals.
As of this posting, the code is closed source.
Inverse Kinematic Spider Sandbox
showcase
Procedural terrain generation and an inverse-kinematic driven spider, powered by avian 3d and bevy_mod_inverse_kinematics.
Crates
New releases to crates.io and substantial updates to existing projects
bevy-trait-query 0.6
crate_release
bevy-trait-query is a crate for making queries like Query<&dyn Tooltipable>
possible.
bevy_logic 0.7
crate_release
bevy_logic is a crate for defining logic gates and simulating logic graphs.
This crate builds on top of the 0.6 bevy-trait-query release also mentioned in this issue.
bevy_mod_reaction
crate_release
bevy_mod_reaction is a new crate aiming to supply ECS Reactivity to your applications.
bevy_copperfield v0.2
crate_release
bevy_copperfield is a procedural modeling crate for Bevy. 0.2 brings automatic UV-unwrapping with three modes supported - cube mapping, sphere mapping, and least-squares conformal mapping.
bevy_audio_controller v0.2.1
crate_release
bevy_audio_controller is an api for managing audio playback in Bevy. It was originally created to solve the problem of hundreds of enemies playing attack sounds at once for the spooky game jam.
aeronet v0.9.0
crate_release
aeronet is a low-level IO layer and network messaging abstraction for Bevy. This release completely redesigns the crate to be Bevy-native, fully leveraging bevy_ecs and bevy_app.
Ron Asset Manager
crate_release
ron_asset_manager helps when managing Ron based assets which depend on other assets. It is compatible with bevy_asset_loader.
bevy_u8_assets
crate_release
bevy_u8_assets allows you to write u8 assets with a fake file path and load them in bevy.
Bevy EntiTiles 0.12.0
crate_release
Bevy EntiTiles is a 2d tilemap plugin that aims to have useful algorithms and other functionality built-in. 0.12 brings wasm support.
Adding `ScheduleGraph::contains_set` authored by urben1680
Fix fallible param notes authored by MiniaczQ
Implement `Measured2d` for `Arc2d`-based primitives. authored by lynn-lumen
Gamepad improvements authored by Shatur
Fix WGSL formatting inconsistency on mesh_view_binding authored by jatimix
Bump accesskit and accesskit_winit. authored by ndarilek
Expose picking pointer state as a resource authored by NthTensor
Support creating asset directories authored by richchurcher
Use `stack_z_offsets` in all the cases we create a `TransparentUi` authored by doup
Remove unused debug identifiers for `ComponentHooks` methods authored by TurtIeSocks
Improved the global transform api to access rotation and scale authored by Sigma-dev
move mesh uniform construction out of Core3d authored by robtfm
Fix blending for CameraOutputMode::Skip authored by chronicl
Expanded `ui` example authored by ickshonpe
Meshlet normal-aware LOD and meshoptimizer upgrade authored by JMS55
Improved `UiImage` and `Sprite` scaling and slicing APIs authored by ickshonpe
chore(deps): remove unused `uuid` dependency from `bevy_core` authored by TurtIeSocks
Use `Name` component for gamepad authored by Shatur
Bump crate-ci/typos from 1.26.8 to 1.27.0 authored by mnmaita
Upgrade to wgpu 23 authored by tychedelia
BRP System Ordering authored by mnmaita
properly flag using `CustomCursor::Url` in wasm authored by mockersf
Enable EntityRef tests that now pass. authored by chescock
Require `ContentSize` for `UiImage` authored by ickshonpe
Make `ComponentTicks` field public authored by Shatur
Move UI example to testbed authored by richchurcher
Allow or fix dead code in `benches` authored by BenjaminBrienen
Make doc CI use nightly authored by BenjaminBrienen
Make `BinnedRenderPhase` fields for accessing batchable and unbatchable entities public authored by BenjaminBrienen
Incorporate all node weights in additive blending authored by mweatherley
Fix `alien_cake_addict` example authored by BenjaminBrienen
UiImage -> ImageNode, UiImageSize -> ImageNodeSize authored by cart
Expose Pipeline Compilation Zero Initialize Workgroup Memory Option authored by atlv24
Reflect TextLayout and ComputedTextBlock authored by s-puig
Return Error instead of panicking when reading invalid dds file authored by BenjaminBrienen
Remove `accesskit` re-export from `bevy_a11y` authored by TurtIeSocks
Fixed issue with `derive_more` `Display` Implementations authored by bushrat011899
Fix issue template label authored by BenjaminBrienen
AudioPlayer::new() authored by cart
Fix typos in `bevy_picking` module docs authored by doup
Handle failed cursor grab mode changes so that the cursor grab mode change can be attempted again authored by Knar33
Fix permissions of rust source files authored by AxiomaticSemantics
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
Flush commands after every mutation in `WorldEntityMut` authored by nakedible
Add `scale_factor` fields to `RenderTarget` variants authored by aecsocket
Picking out order authored by NthTensor
Fix `bevy_image::Volume` not being exported in `bevy_render::texture` authored by chompaa
Assorted cleanliness refactors authored by sharma-shray
Rename `Camera` to `RenderSurface` authored by aevyrie
Create `ReactiveSystemParam` trait authored by matthunz
Add a component to enable/disable interactions on a UI node authored by Exanc
More forms of related components: suggested and included components authored by alice-i-cecile
Text2d scalefactor change detection fix authored by ickshonpe
Add more Glam types and constructors to prelude authored by Jondolf
Add `no_std` support to `bevy_reflect` authored by bushrat011899
Impl Animatable for Handle<T> and Int authored by zuiyu1998
Fix typos, grammar, and spelling mistakes authored by BenjaminBrienen
Rename `AnimationGraph` authored by BenjaminBrienen
Implement `System::system_metas(&self)` and `System::system_metas_mut(&mut self)` for system exploration and configuration authored by Rajveer100
Rename `StateScoped` to `DespawnOnStateExit` and add `DespawnOnStateEnter` authored by BenjaminBrienen
Improve profiling instructions authored by JMS55
Support loading assets from arbitrary filesystem paths by specifying an absolute path as the asset path authored by inodentry
Fix panic in UiSurface if Node is removed and re-added authored by UkoeHB
Make visibility range (HLOD) dithering work when prepasses are enabled. authored by pcwalton
Clean up some yaml mistakes authored by BenjaminBrienen
Procedural atmospheric scattering authored by ecoskey
Add transform lerp authored by Sigma-dev
Reactive ECS-integrated signals authored by JMS55
Fix markdownlint warnings and improve consistency with config (reduced) authored by BenjaminBrienen
Fix markdownlint warnings and improve consistency with config authored by BenjaminBrienen
For Aevyrie :) authored by atlv24
Issues Opened this week
Allow for instantiation of SystemParam from immutable World authored by ethereumdegen
Text doesn't respond correctly to scale changes authored by NiseVoid
Can not easily opt out of rendering UI on a camera authored by mahulst
Improve `Camera` naming and make `bevy_ui` respect cameras authored by aevyrie
Re-export `bevy_image::image::Volume` authored by chompaa
Suggested / related components authored by alice-i-cecile
Disable ansi colors for `tracing_tracy` authored by TheCodeLamp
Assets<T> should have `get_many` / `get_many_mut` or equivalent functions authored by Nathan-Fenner
Error setting CursorGrabMode after unfocusing the window and switching from Locked/Confined to None, then switching back authored by Knar33
Setting CursorGrabMode to Locked or Confined doesn't work during the first few frames (Ubuntu X11) authored by Knar33
no_std bevy example authored by BenjaminBrienen
Add regression test for spawning entities during remove hooks authored by alice-i-cecile
Add unregister_system for Commands authored by viridia
Using `trait as _` to avoid namespace pollution authored by BenjaminBrienen
Is it possible to draw on Apple Vision Pro through bevy and CompositorLayer? authored by random-yang
Switching active cameras causes warning log `The preprocessing index buffer wasn't present` to be spammed. authored by Elabajaba
Shadows from sunlight when using environment map lighting (skybox); shadow-only lights authored by inodentry
Remove excessive logging when using symphonia features like AudioBundle authored by Sigma-dev
NodeBundles don't show unless RenderLayer 0 is used by any camera, even when TargetCamera is specified. authored by Owlkaline
TAA bug on camera viewport change authored by ilyas-taouaou
Pointer<Enter> and Pointer<Leave> authored by JMS55
Surface is not taken into account in wgpu adapter selection authored by ilyas-taouaou
Feature-gate accessibility in `bevy_ui` authored by Niashi24
bevy_text feature is required to run bevy_ui tests authored by UkoeHB
Performance regression between 0.15 rc2 and rc3 authored by rudderbucky
Feature-gate render in `bevy_ui` authored by Niashi24
Feature: Upstream `bevy_web_asset`, allowing assets loaded via `http` authored by mrchantey
bad size calculation for wrapping nodes (text or flex_wrap: Wrap) authored by robtfm