This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Lost in Time, Varrbound, and Level Generation

2026-01-12

This week we see a whole bunch of improvements to Bevy's lighting and shadows. Including fresnel improvements, brightness fixes and more.

For those that like performance graphs, check out the Parallel GPU buffer writes PR.

Here's some demo shots of what Bevy can do.

Buildings

Overhangs

Streets

System Fonts

system fonts

A new example shows off querying for and using system fonts via cosmic-text.

cargo run --example system_fonts

2d rotation

A new 2d rotation demo shows a non-generic way to handle 2d rotation to make a sprite face towards the mouse cursor.

cargo run --example rotate_to_cursor

Showcase

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

night sky shader

Night Sky Shader

showcase

A demo of a night sky shader that uses several noise functions to create the starfield, and then a few more noise functions to layer the milky way galaxy in, and then a few more for the dust clouds.

varrbound

Varrbound

showcase

A hybrid web application and game using Bevy and compiling to WASM.

inverse kinematics

Full Body Inverse Kinematics

showcase

An exercise in applying inverse kinematics to an entire humanoid skeleton, which is powered by a single component on the root of a glTF model.

pico lightning

Pico Striker

showcase

Bevy and Ratatui combine for this TUI application aimed at monitoring lightning strike detection from a Pico W board.

Text-based RPG

showcase

A number of features live in this text-based RPG test project that is mostly used to find things to work on upstream in Bevy.

  • Jinja markdown template, rendered to egui via egui_commonmark
  • Jinja scripting context is populated by ECS data via bevy_reflect
  • Markdown links are hooked back into the ECS as reflected observer events that get triggered when clicked
  • These hooks are specified as YAML frontmatter, and deserialize into real bevy Event types
  • Auto-reloading via bevy_asset file watcher
  • Because the entire thing is a jinja template, this means definition of each hook can be scripted, which can dynamically adjust the event data based on real ECS data, or even completely change which events are triggered when a link is clicked

Here's an example of what a markdown template looks like:

---
hooks:
  sleep: !Sleep
  interact: !Interact
    target: Merchant
  multiple:
    - !Talk
      target: Merchant
    - !GiveItem
      target: Merchant
      item: GoldCoin
---

# The Tavern

Hi {{ player.Name }}!

- [Sleep](sleep)
- [Interact with the Merchant](interact)
- [Talk to the Merchant and Give a Gold Coin](multiple)
bot arena

Bot Arena

showcase

Bots with a raycast based vision system training via reinforcement.

reactor's vengence

Reactor's Vengence

showcase

Reactor's Vengence is a submission to the SoloDevelopement #10 - New Year Jam

You spawn inside a maze with one goal: make the reactor explode. The reactor is set to blow in 300 seconds… but rogue robots are sabotaging the computers controlling the countdown. If too many systems go down, the whole plan stalls.

editor prototype

Planetes

showcase

A prototype Bevy editor with support for adding components to entities. The project is aimed at developing an understanding of the problem space to help with the more official editor efforts.

chunk renderer

Chunk Renderer

showcase

An in-development chunk renderer using a custom material, with vertex quantization and greedy meshing.

3d chess

3d Chess Game

showcase

A 3D chess game working on wasm using leptos as a frontend framework

bevy roguelike

Rogue Quest

showcase

A long-term project years in the making, this Roguelike has been updated to 0.16 from 0.14, and hopefully 0.17 soon.

bevy_pointcloud wasm

bevy_pointcloud wasm demo

showcase

A wasm demo of bevy_pointcloud's Potree support, available on the web. The point cloud size is 100 mb and is stored on cloud flare. It is loaded progressively using a priority queue.

Lost in Time

Lost In Time Playtest

showcase

Lost in Time is a rogue-like game with some survival elements, taking inspo from Risk of Rain, Vampire Survivers, Megabonk, Diablo/PoE, and many more.

The Lost in Time Discord (invite link) is hosting the downloads for the playtest.

Crates

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

bevy_material_ui

bevy_material_ui

crate_release

A Material Design 3 UI library for Bevy.

bevy_mod_ffi v0.2.0

crate_release

FFI bindings to Bevy for dynamic plugins and hot-reloading, now with observers, custom components and more new features

bevy_btml

crate_release

HTML-like syntax for Bevy

btml!(commands,
    <Node
        width=Val::Percent(100.0)
        justify_content=JustifyContent::Center
        align_items=AlignItems::Center
    >
        <BackgroundColor>Color::BLACK</BackgroundColor>
        <children>
            <Text>"Hello World".to_string()</Text>
            <TextFont font_size=30.0 />
            <TextColor>Color::WHITE</TextColor>
        </children>
    </Node>
);

Aquila

crate_release

Aquila is a modular asset server with support for OAuth and multiple file backends, meant for serving game assets.

MotionGfx 0.1.0

crate_release

MotionGfx is a backend-agnostic motion graphics framework built on top of Bevy ECS. It provides a modular foundation for procedural animations.

bevy_split_canvas

bevy_split_canvas

crate_release

evy_split_canvas splits a single canvas into multiple using multiple cameras.

fabrik ik

bevy_fabrik_solver

crate_release

A FABRIK implementation that takes advantage of Bevy's one-to-many relationships, rotational constraints, and multiple end effector support.

Devlogs

vlog style updates from long-term projects

terrain generation

Terrain generation in Infinite Megastructure

devlog

A first devlog where the developer talks about infinite level generation

No Educational this week
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