This Week in Bevy

What happened this week in the Bevy Engine ecosystem

Links

Exofactory, Beet, and Drakkar VFX

2025-07-14

This week we've got a whole host of showcases, including new Steam pages, the release of a Hanabi particle editor, and deterministic replication with Avian and Lightyear.

Upstream Bevy also sees a number of PRs, including some re-organizing of rendering with the new bevy_light crate and a friendlier Entity Debug impl.

We also see a new engine, built for TypeScript and powered by Bevy and deno_core and the open sourcing of some vegetation shaders.

Scenes without bevy_render

As a result of a number of PRs (19997, 19991, 20000, 19949, 19943, 19953), #20051 adds release notes for being able to define Scenes without depending on the bevy_render crate, which enables the use of cameras, lights, and meshes with 3rd party custom renderers.

Material, mesh, and skin extraction optimization

If you're interested in performance work, #17976 is a great example of what traces can look like, with before and after examples.

Friendlier Entity Debug impl

Previously Entity's Debug implementation leaked a bit of the internals which isn't necessarily problematic but was unhelpful to people who derived Debug on Entity-containing types. #20045 changes this to only use the index and version information, like 42v0.

bevy_light

#19991 introduces bevy_light, a crate containing Bevy's lighting implementations. The new crate makes lights usable without bevy_render.


Alice's Merge Train is a maintainer-level view into active PRs and how the Bevy sausage is made.

Showcase

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

deterministic replication

Deterministic Replication: Avian and Lightyear

showcase

Deterministic replication working with avian and lightyear! Deterministic replication is when you don't replicate state at all, but instead you only send inputs through the network. The game should stay in sync if it's deterministic.

Lightyear was historically only intended for state-replication, so adding deterministic replication is an interesting step forwward.

  • No state is replicated, only inputs,
  • 100ms latency, 15% jitter, 2% packet loss.,
  • no input delay, so there are constant rollbacks which are getting smoothed out
exofactory

Exofactory on Steam

showcase

Awaken as a forgotten AI on an alien world, your every choice reshapes your technology, environment, and identity. Automate deeply transformative factories in a chill open world, where the story evolves uniquely around you.

physics platformer

Physics Platformer

showcase

A physics platformer that uses LDTK for level spawning and rapier for physics. An animation manager is included too.

input rebinding

Input rebinding

showcase

The design for an input rebinding menu. The implementation is based on enums, impls, and loops.

foliage systembush shader

Vegetation Shaders

showcase

Some in-progress vegetation shaders, including grass and bushes. The source for the bush shader was released as open source later in the week.

WIP Dialogue System

Dialogue System

showcase

A work-in-progress dialogue system

doors

MMO Doors

showcase

Working doors were added to this multiplayer online role playing game.

trajectory planning

Trajectory Planning

showcase

Progress on a trajectory planner for a space-related game. The game involves lots of flying around 1:1 star systems using a torch drive, and for the travel system to work, these trajectories need to be pre-computable. The trouble is that computing a trajectory that can accurately hit a target that will have moved in the few days it takes you to get there is really hard. There's no analytical solution. The solution is a curve to account for the velocity of the planet you're trying to meet up with.

cad modelingcad modeling

modelito

showcase

A CAD application in Bevy looking for collaborators. The prototype works with SDFs (Signed Distance Fields) with a kernel to make them easier to use and CSG (Constructive Solid Geometry). There's a Racket DSL that is intended to expand and an intent to not make all users code.

scaling

Smooth zoom

showcase

smooth number-line/axis zoom with multiple levels of ticks. This demo is using about 14000 rectangular sprites and scaling

deep field

Deep Field: alpha

showcase

Deep Field is an in-progress multiplayer realistic space combat simulator, now in alpha.

terrain simulationterrain simulation

Terrain Compute Shader

showcase

A compute shader simulation of tectonic uplift, erosion, and climate. Runs at 70 fps on a 4096x4096 map in 2d, 12fps with a naive 3d implementation (a single planar heightmap, with vertex positions displaced in vertex shader).

The erosion algorithm is stream power erosion, primarily based on Large-scale terrain authoring through interactive erosion simulation but with sediment deposition and directional artifact elimination similar to methods used in Physically-based analytical erosion for fast terrain generation and Efficient Debris-flow Simulation for Steep Terrain Erosion plus an entirely custom parallel basin-filling algorithm and a way of simulating floodplains without rivers actually meandering across the terrain (it messes with the implementation of convergence detection) once the initial shaping of the terrain is done; the timestep is dynamic ranging from 200,000 years to 1,000 years depending on the state of the terrain

Avian3d Car Sandbox

showcase

Progress on an avian3d based car physics sandbox, including track modularity and a track generator.

typescript game engine

TypeScript + Bevy ft. deno_core

showcase

A TypeScript OOP game engine that runs entirely in Bevy using deno_core. bevy renders the TypeScript world and receives deltas of changed TypeScript components. TypeScript has access to create inspector interfaces via egui APIs and everything is sandboxed. It also works headlessly.

drakkar vfx

Drakkar VFX

showcase

Jarl's editor for particle 2D effects is now open source!

The editor is based on bevy_hanabi and focuses on 2d particle effects, although 3d can be supported as well. Also notably, the version matches versions that were used in Jarl, which includes depending on a forked version of bevy_hanabi 0.7. This in turn means that the first release supports a relatively old version of Bevy: 0.11.

chunk and lod generator

LoD generator for Chunks

showcase

A Chunk/LoD generator that divides chunks into smaller ones, going from red to blue to green biggest to smallest.

Crates

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

greedytile

greedytile

crate_release

A tile constrained pattern synthesis algorithm like wave function collapse. It adds in longer range inter pixel statistics, a pixel ratio correction mechanism, and local rollback to prevent unknown tiles. It's 100% safe Rust with both library and CLI interfaces.

bevy_sdf_klown

bevy_sdf_klown prototype

crate_release

bevy_sdf_klown is a general-purpose signed distance field (SDF) rendering plugin for Bevy. It supports dynamic SDF composition, material shading, and runtime scene manipulation.

This is a prototype release with a runnable example in the repo

Devlogs

vlog style updates from long-term projects

exofactory

Exofactory: Terrain, Animation, and Major Work Done

devlog

Exofactory is an automation and factory building game. This devlog covers new terrain systems, animation, 3d assets, and a steam acceptance!

Beet: Full Moon Harvest

devlog

This marks the first release candidate for Beet's web metaframework features, with the website and blog post rendered entirely with bevy

Educational

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

settings ui

Settings UI: A gist

educational

This is the source code for the interactive settings menu (with tabs and sliders!) for the settings menu for the game Healing Spirit that is in development.

It uses bevy_hammer_ui and immediate-mode paradigms ( declarative programming using Boxed Traits and &World ).

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