
Prepass-only cameras and raymarched atmospheres
2025-09-08
A fairly light week as 0.17-rc.1 is imminent.
Still, some interesting features landed, like prepass-only cameras and raymarched atmospheres.
and of course, the community is submitting to game jams, porting Blender algorithms, and creating prototype character customizations.
Solari PicaPica
In #20658, Solari moved to the SEED PicaPica project for an example, which is a real-time raytracing experiment.
Prepass-only Cameras
#20830 introduces the ability to remove the color render target for a Camera
, resulting in prepass-only cameras.
Adding a DepthPrepass
to such a camera enables depth-only cameras, with maximum efficiency as the fragment shader won't exist and no color buffer will be bound.
Raymarched Atmosphere
#20766 introduces raymarched space views for Bevy's atmospheres.

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

Lightyear Projectile Replication
showcase
On the right is the server, which spawns 6 different entities for each player. Interest management via Rooms is used to make sure that clients only receive updates about entities that correspond to one of the 6 modes:
- AllPredicted: entity is predicted by all players, hit detection is done server-side with no lag compensation. This should favor the target since the shooter has an imperfect view of their position. This also allows testing that remote entity prediction works well with bevy_enhanced_input, which is now the case.
- ClientPredicted (No lag Comp): the 'default' setting of predicting the client and interpolating other players. Hit detection is done server-side; since there is no lag compensation, even if you seemingly hit the target on the client's screen it won't be registered as a hit on the server because the client has a delayed view of other clients
- ClientPredicted (Lag Comp): same as above but this time use lag compensation on the server. The white boxes on the server are the collider occupied by each player in the last few frames. If the projectile collides with that (broad-phase), we check if there was an actual collision on the client's screen using the narrow-phase lag compensation query. It's interesting to see how the boxes grow after any diagonal movement, but I think that's expected (it's just for broad-detection)

bevy-gtk
showcase
Bevy app content rendering in a GTK/Adwaita app (Linux native toolkit), using GraphicsOffload for zero-copy rendering and direct scanout (where possible). Only works on Vulkan (Linux) at the moment.

DJ Software Progress
showcase
- You can zoom the waveform in/out with mouse scroll wheel
- a full waveform display with the current progress (And also seeking)
- Smoothed the waveforms to have less "spikes" so you can see peaks and general track feel better
- Added sorting for all table fields (Position will be interchangeable by drag and dropping later)
- Plugging in a controller now resets its state so it matches the software values
- Some psychedelic visuals as the background to make it a lil more fun
- Tracks have context menus for changing most fields

Crates
New releases to crates.io and substantial updates to existing projects
bump tracing-subscriber to fix dependabot alert authored by futile
fix atmospherics memory leak authored by ecoskey
Add `vulkan-portability` to fix compiling with `--all-features` authored by tychedelia
Enable load_with_settings TextureFormats authored by ChristopherBiscardi
Demote OpenGL to optional feature authored by tychedelia
Use web assets for meshlet example authored by tychedelia
Cleanup bevy_tasks::future module authored by james7132
Ensure systems passed to `Combine` cannot be called re-entrantly either authored by SkiFire13
Extract text colors per glyph authored by ickshonpe
Shrink from_reflect_with_fallback authored by SpecificProtagonist
mark `register_info`, `register_contributed_bundle_info` unsafe authored by janis-bhm
fix reflect feature gate authored by mockersf
Bump hashbrown to 0.16.0 authored by mirsella
re-enable wasm32 atomics CI check authored by mockersf
Add coloured text to the ui testbed example's text module authored by ickshonpe
Fix text span colors authored by ickshonpe
`ui_target_camera` example authored by ickshonpe
Implement ```VisitAssetDependencies``` for Arrays authored by Glory2Antares
sort examples categories on the website authored by mockersf
Solari PicaPica scene authored by JMS55
impl `VisitAssetDependencies` for `HashSet` authored by ItsDoot
Impl ```AsAssetId``` for ```Sprite``` and ```ImageNode``` authored by Glory2Antares
Add init_state to State example docs authored by lkolbly
Adding missing reflect data types to Gradient components authored by eckz
rename variable authored by ickshonpe
another text color fix authored by ickshonpe
Change edit_gltf_material to use GltfMaterialName authored by ChristopherBiscardi
Remove `desktop_app` setting from `feathers` example (and other UI examples) authored by alice-i-cecile
Don't require cameras to have color render targets. authored by pcwalton
Raymarched rendering for atmosphere and spherical coordinates authored by mate-h
Add tests for react_to_scale_factor_change authored by dloukadakis
Add `#[doc(fake_variadic)]` to some places where it's missing authored by chescock
rename bevy_anti_aliasing to bevy_anti_alias authored by atlv24
Fix error message in asset loader for MissingAssetLoader authored by chaosteil
`prepare_uinodes` refactor authored by ickshonpe
Improve `UnapprovedPathMode` doc authored by mamekoro
Replace `from_` constructors on `TextFont` with `From` impls authored by amedoeyes
Rename DespawnOnExitState to DespawnOnExit authored by janhohenheim
bevy_post_process authored by atlv24
Move WgpuWrapper back to where it was authored by atlv24
Fix gizmo near plane clipping bug authored by atlv24
Note some features requiring WebGPU on Wasm builds authored by janhohenheim
Add `register_type` for `MaterialNode` authored by ickshonpe
added anti-aliasing support for Custom Projection authored by diyu-motif
Fix plugin_group macro with multiple nested plugin groups authored by atlv24
Rename scoped functions authored by janhohenheim
Constify math authored by exoego
Constify ui authored by exoego
Hide `super` from more doc-links authored by ickshonpe
Hide `super` in `ComputedNode`'s doclinks authored by ickshonpe
`ComputedNode` doc link fix authored by ickshonpe
convert more examples to new spawn api authored by janis-bhm
Limit bloom_3d float output to two decimal places. authored by Breakdown-Dog
Format the float output in the bloom2d example to display two decimal authored by Breakdown-Dog
Reduce nesting in `prepare_shadows` authored by ickshonpe
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
Draw aabb gizmos only for visible entities authored by dloukadakis
partition miri tests authored by mockersf
Generalized atmospheric scattering media authored by ecoskey
Configure ureq to use platform-verifier for web assets authored by jf908
Comprehensive text input support (without undo) authored by Zeophlite
Added entity paths of naming components. authored by MacTrissy
UI stack partition authored by ickshonpe
unifying `Asset<A>` / `AssetServer` handles (#20651, #20776) authored by janis-bhm
Change `bevy_math` to use `inline` instead of `inline(always)` authored by greeble-dev
Dynamic UI Materials authored by amytimed
Use non-poisoning locks engine-wide authored by james7132
Show off different methods for spawning related entities in `examples/ecs/hierarchy.rs` authored by janis-bhm
Issues Opened this week
Bevy on VSCode always use CPU to render when running on Linux but not other OS authored by notmd
Lifecycle event observers for queries authored by chescock
Track input and output devices / peripherals (mice, microphones, keyboards etc) as entities with components authored by Freyja-moth
Allow limiting the amount of entities in a RelationshipTarget authored by Freyja-moth
Flush commands between lifecycle events while processing observers authored by Shatur
`Encoder is invalid` in example on macOS authored by Olle-Lukowski
`KHR_materials_clearcoat` added to `gltf` crate, removing the need for manual implementation on bevy's side authored by hukasu
Feature Request: Unity-like render_scale property for adjusting rendering resolution without affecting UI authored by Anehta
Contributor guide for feature usage authored by atlv24
Missing shader asset should fail instead of keep retrying authored by IceSentry
`bevy_assets` should send wake events to `bevy_window` when assets finish loading (async tasks and `desktop_app` interactions) authored by alice-i-cecile
Inserting `Disabled` into a window causes the window to crash authored by Freyja-moth
Strange shadow issues authored by paholg
Text input support - Tracking authored by Zeophlite
Forward Decals render incredibly weird authored by hukasu
Feathers: Allow users to specify format of slider text in a function authored by torsteingrindvik
`RawVulkanInitSettings` has difficulty handling common Vulkan patterns authored by tychedelia
TilemapChunkMeshCache in TilemapChunk is never used authored by afonsolage