
Winter is Cold, Brain Games, and Finite Element Bridges
2025-12-29
Hope everyone got some time off during the holidays. Most people (including maintainers) took time off, so there's not many merges this week!
Have you ever wanted to know the difference between IoTaskPool and AsyncComputeTaskPool? Someone else had the same question over on GitHub and got a nice response.

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


Fan Games
showcase
Two fan game projects: "Blue Archive" and "Trickcal: Chibi Go".
- Blue Archive is an endless runner
- Tickcal: Chibi Go is a networked stone-throwing game

Rogue Subroutine
showcase
A minimalist strategy game about a sentient AI trying to survive and evolve while avoiding human detection.
- Build hidden bases and distribute your code across the world
- Increase your computing power
- Research new technologies
- Disrupt humanity's efforts to uncover your existence
Despite being about the hardships of AI life, the game itself is 100% organic - everything you see and hear was created or curated by its sole human developer as a first game development project.
Free, ~2 hours long, currently available for Windows as a download on Itch


Networked Physics Game
showcase
It started with a simple feature request: changing a player's colors. Previously, everything had to be packed into 8 bits per player per tick. This isn't a lot of space: 2 bits for jumping and shooting, 1 for marking a player active, and the remaining 5 bits for analog turning. The application needed something more expressive for future features, such as selecting colors and negotiating game rules. This resulted in embedding low priority data in the time between high priority events.
Anyway, you can't see any of that. But look! COLORS!
Note the 4th player switching colors, with the color bar at the top right changing to match, as well as projectiles from the player. The game ensures that no two players will have the same colors to avoid confusion. Also note that this shows two synchronized peers.

Chess
showcase
Is what it says on the tin: A 3d chess board implementation. shakmaty is being used as the rule authority.

Tacky Adventure
showcase
Tacky adventure is an application made to experiment with Bevy. It uses crates like Avian Physics, bevy_tnua, and bevy_hanabi.
Source is available on GitHub

Winter is Cold
showcase
An entry in the Secret Santa Jam, where participants each got a letter from a random participant about their interests with the goal of making a game for them!
The game was worked on for 5 days, is 3d, uses Yarnspinner for dialog, and is available to be played on Itch

Nikl Brain Games
showcase
A first minimal version of a logic puzzle app published in the Google Play store!
For now, there is only one kind of puzzle: "Three in a row". You can solve puzzles and generate new ones of different sizes on the device. Every puzzle has a unique and purely logical solution.
If you want to give it a try, here are the rules since there is no explanation in-game yet:
- Never more than two slots of the same color next to each other (horizontal or vertical)
- Every row and every column has to be 50/50 with the two colors
- No row or column can be exactly the same (this rule is rarely needed)

bevy_feronia progress
showcase
Progress on bevy_feronia with instanced grass that respects the transform hierarchy and reworked height and obstacle/occupancy mapping.

Crates
New releases to crates.io and substantial updates to existing projects
bevy_alchemy
crate_release
An experimental, status effects-as-entities system for Bevy.
Provides commands and related spawners to apply new effects, with options for how duplicate effects are handled.
commands.entity(target).with_effect(EffectBundle {
name: Name::new("Poison"),
mode: EffectMode::Stack,
bundle: (
Poison { damage: 1 },
Lifetime::from_seconds(4.0),
)
});
bevy_pipe_affect
crate_release
bevy_pipe_affect is a functional programming library for bevy, allowing users to write practically all systems as pure functions!
There is an associated book containing more of the motivations for the crate.
bevy-dynamic-viewport
crate_release
bevy-dynamic-viewport implements a Dynamic viewport. To use it you can either manually add the new DynamicViewport component or you can utilize the Viewport Bundle to add it and and a Camera component
bevy_html_tailwind
crate_release
Define your UI in HTML and use tailwind CSS for styling it!
fn load_ui(mut commands: Commands, asset_server: Res<AssetServer>) {
commands.spawn(HtmlTailwindBundle {
ui: asset_server.load("menu.html").into(),
..Default::default()
})
}
<div class="flex flex-col w-full h-full justify-center items-center gap-[20px]">
<button>Start</button>
<button>Exit</button>
</div>
bevy-clipmap
crate_release
bevy-clipmap is a crate for rendering huge 3D worlds. The video demonstrates rendering a 8192x8192 map. Shadows are approximated using FFT.
bevy_eidolon 0.1.0
crate_release
bevy_eidolon provides a generic instanced material, mostly for grass and foliage assemblies and as a high-performance replacement for gizmos when writing debugging tools.

bevy_map_editor
crate_release
bevy_map_editor - 2D Tilemap Editor and Runtime for Bevy!
Create maps in the visual editor, load them at runtime. This crate is a work in progress.
Features:
- Visual map editor with layer system, terrain painting, entity placement
- Autotiling with Wang tiles (Corner, Edge, Mixed modes)
- Custom entities via
#[derive(MapEntity)]proc macro - Sprite sheet animations with timeline editor
- Visual dialogue tree editor with branching conversations
- Collision shapes with Avian2D integration
- Custom Tile properties (origin, merge large tiles, etc)
- Recent projects, preferences persistence, auto-open last project
Install & Run:
cargo install bevy_map_editor
bevy_map_editor

Educational
Tutorials, deep dives, and other information on developing Bevy applications, games, and plugins

Realtime Raytracing in Bevy 0.18 (Solari)
educational
An update on Solari: Bevy's next-gen, fully dynamic raytraced lighting system, allowing artists and developers to get high quality lighting - without having to spend any time on static baking.
Add wayland to `flake.nix` linux dependencies example authored by apekros
Small `text` example refactor authored by ickshonpe
Add `Dir2::from_angle` authored by lynn-lumen
Delete `InstrumentedAssetLoader` and `InstrumentedAssetProcessor`, but keep the instrumentation. authored by andriyDev
Mention `bevy/debug` in tracy quickstart authored by apekros
Extra `testbed_ui` font cases authored by ickshonpe
Group wgpu dep updates together into one authored by loreball
Make sure swapchain texture views are dropped. authored by tychedelia
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
Add drag and drop picking example authored by apekros
Add command line option to choose a starting scene in the `testbed_*' examples authored by panpanpro888
Make `LoadContext::finish` add all dependencies, and avoid a second texture load in GltfLoader. authored by andriyDev
Optimize Visibility Systems authored by aevyrie
Rework FloatOrd with total_cmp() and hash by bits authored by leftmostcat
Make `bevy_audio` optional for `android_shared_stdcxx` authored by Shatur
Directional navigation uses edge to edge distance not center to center authored by apekros
Solari: Fix bug with wrong viewport size under DLSS authored by JMS55
Fix handles being split by `asset_server_managed`. authored by andriyDev
Improve PCSS authored by superdump
Self-referential relationships authored by mrchantey
gltf extension handler release notes authored by ChristopherBiscardi
Upgrade to wgpu 28 authored by ChristopherBiscardi
`AutoNavigationConfig::max_search_distance` fix authored by ickshonpe
Add a test to verify that a `ComputedState` being remove properly despawn `DespawnOnExit` entities authored by hukasu
Add MeshPass v2 authored by momoluna444
0.18: Solari release notes authored by JMS55
Implement parallax-corrected cubemaps (PCCMs) for reflection probes. authored by pcwalton
Provide a mechanism for applications to invoke the single-pass downsampler. authored by pcwalton
Issues Opened this week
Add commandline options to the `testbed_*` examples to choose the starting scene authored by ickshonpe
Picking groups or filtering authored by djeedai
OpenGL support authored by CosmoBunny
Window resize crashes on DX12 software renderer in 0.18.0-rc.1 (regression from 0.17.3) authored by natepiano
Typed alternative to `load_folder` authored by copygirl
Accept `&AssetPath` instead of `&str` in `AssetPath::resolve` authored by Shatur
Panic in naga/bevy_render: internal error: entered unreachable code on Apple M3 (macOS Sequoia) authored by yzjsswk
Errors when re-exporting bevy in a different crate authored by AwfulToTheEar
variable to increase max allowed influencers per vertex on skinned mesh authored by NicTanghe
`bevy_input_focus`: Directional navigation ignores `UiTransform` authored by ickshonpe
`bevy_input_focus`: Support for navigation in arbitrary directions authored by ickshonpe
TilemapChunk texture bleeding authored by Badgerup1510
Major perf regression in `d00240d` authored by aevyrie
Regression: (seizure risk?) screen flickers rapidly when using tracy authored by aevyrie
Remove perceptual_roughness from shader code authored by JMS55
Visual artifacts and system hangs on resize - Vulkan/NVIDIA (X11) authored by mstjr
Web Assets fail to load without file extension, even with valid content-type authored by logankaser
`bevy_input_focus`: Auto navigation ignores scale factor authored by ickshonpe
`bevy_input_focus`: Auto navigation ignores camera targets authored by ickshonpe











