This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Simulo, Bean Defender, and Toroban!

2025-12-08

This week debugging applications with multiple cameras gets easier with a new debug_group feature implementation.

While #22016 introduces TypeData dependencies, which means type data like Resource can depend on Component. This in turn makes the following code:

#[derive(Resource, Reflect)]
#[reflect(Resource, Component)]
struct Thing;

reduce to

#[derive(Resource, Reflect)]
#[reflect(Resource)]
struct Thing;

Showcase

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

Eryndor

Eryndor Editor

showcase

Eryndor's custom editor now includes custom Data types (and schema editor), Animations, Dialogue tree (with a DSL/query language planned in the future), and Tilemaps/Tilesets.

pathfinding playground

Pathfinding Playground

showcase

A visualizer for pathfinding algorithms powered by WASM. You can use any language supported by WIT to generate API bindings, run your pathfinding algorithm and see how it works

cyclone

Cyclone

showcase

A cyclone built with shaders and bevy_volumetric_clouds in the background.

There are three volumes: the cyclone sheath, the ground cloud, and the orbiting debris field. The cyclone meanders within a fixed radius. It is controlled by wind speed linked to bevy_volumetric_clouds. As you can see, it is a windy day.

low poly multiplayer shooter

Server-Authoritative Low-Poly Battle Royale

showcase

A low-poly, server authoritative, multiplayer shooter with Avian Physics.

bevy_reflect_inspect

bevy_reflect_inspect

showcase

A custom Reflection-based editor that suits the authors use case. There won't be a release but it is open source.

simulo

Simulo on Steam!

showcase

A 2D physics sandbox game where you can build and share creations. Features include a simple and intuitive interface, temperature, and destructible ragdolls.

Uses bevy_flair, bevy_blur_regions and TypeScript.

bevy_mortar_bond

WIP bevy_mortar_bond

showcase

bevy_mortar_bond is a wip statically typed dialogue DSL for Bevy, inspired by Ink and Yarn Spinner.

mortar (the language) and bevy_mortar_bond were built for a fan game project.

bean defender

Bean Defender

showcase

Inspired by Bad North, this 3d Bevy game as build using Blender alongside Avian for physics, bevy_landmass and bevy_rerecast for pathfinding.

combat

Kingdom-inspired

showcase

A first Bevy project inspired by Kingdom

god game

csv_god_game

showcase

A small god game powered entirely by CSV files. Made mostly for the purpose of experimenting with CSV-based workflows with bevy_asset. You can modify the items and recipes in the two CSV files (in assets) to turn this into an entirely custom silly god game.

6AX Football

6AX Football

showcase

Robot soccer simulation featuring 74 six-axis industrial robots playing football in real-time physics.

toroban

Toroban on Steam!

showcase

Toroban is an infinitely wrapping puzzle game, now available on Steam!

fast surface nets

World Generation with fast_surface_nets

showcase

World generation using fast_surface_nets with streaming and collision.

Crates

New releases to crates.io and substantial updates to existing projects

bevy_nested_tooltips

crate_release

Inspired by the Tooltips of Crusader Kings 3 and Victoria 3

A library for creating headless(unstyled) tooltips that can be arbitrarily nested and highlight other nodes.

lore

crate_release

A small logic programming engine (effectively the backend of a system like prolog) inspired somewhat by flecs' query engine

bevy-sculpter

crate_release

A surface nets implementation for Bevy.

bevy_malek_async 0.2

crate_release

bevy_malek_async is a async runtime agnostic crate that allows you to interact with the bevy ECS from any async task. Be it tokio, bevy's task pools, or something else. It contains a single low-ish level primitive to worry about world_id.ecs_task().run_systems(Schedule, || {}).await

This lets you run something like a bevy system in an async task but it's actually more powerful than a normal bevy system!

Importantly you can pass local mutable state inside and outside of this closure, something you cannot accomplish with normal bevy systems!

// Showcasing how you can mutably access variables from outside the closure
let mut my_thing = String::new();
world_id.ecs_task::<()>().run_system(PreUpdate, |()| {
    my_thing.push('h');
}).await;
my_thing.push('i');

The implementation of this is 0 copy, and works with non-send data like &mut. It is implemented with extremely high level performance considerations so should be suitable for all sorts of very expensive logic that send based, channel based, or copy based async interactions are not viable for.

Bevy Replicon 0.37.0

crate_release

bevy_replicon is a crate for server-authoritative networking.

This release features a new visibility system. It's component-driven, so you don't have to maintain visibility separately from your gameplay logic. And it now supports both component and entity visibility.

bevy_live_wallpaper

bevy_live_wallpaper v0.1.0

crate_release

bevy_live_wallpaper is a Bevy plugin that renders your scene into a desktop background. Currently Wayland, X11, and Windows are supported.

aalo

aalo 0.1

crate_release

aalo aka bevy-inspector-haalka is a bevy_ui-native inspector built with haalka which aims to port much of the behavior of bevy-inspector-egui to bevy_ui

Devlogs

vlog style updates from long-term projects

Exofactory: Draggable Belts, Electricity, & View Modes

devlog

Shaders and belt dragging for Exofactory.

Full Moon Harvest #6: Folk Technology

devlog

The rebranding of Beetmash was inspired the experience of DevOps Days Wollongong.

Educational

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

Mipmaps

educational

Some writing on Mipmaps including a brief overview of what they are, how a couple tools to generate them, and some examples.

Pull Requests Merged This Week
Contributing

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.

How do I contribute?

Pull Requests Opened this week

Issues Opened this week