A refreshingly simple data-driven game engine built in Rust
Free and Open Source Forever!
Get Started
Free and Open Source Forever!
Get Started
Data Driven
All engine and game logic uses Bevy ECS, a custom Entity Component System
- Fast: Massively Parallel and Cache-Friendly
- Simple: Components are Rust structs, Systems are Rust functions
- Capable: Queries, Global Resources, Local Resources, Change Detection, Lock-Free Parallel Scheduler
2D Renderer
Render real-time 2D graphics for games and apps
- Features: sprite sheets, dynamic texture atlases, cameras, textures, and materials
- Extensible: custom shaders, materials, and render pipelines
- Common Core: builds on top of Bevy's Render Graph
3D Renderer
A modern and flexible 3D renderer
- Features: lights, shadows, cameras, meshes, textures, materials, gltf loading
- Extensible: custom shaders, materials, and render pipelines
- Common Core: built on top of Bevy's Render Graph

Render Graph
Compose custom render pipelines using a graph structure
- Parallel: Render Graphs are automatically rendered in parallel
- Modular: Build composable and reusable render logic using Render Graph nodes
- Backend Agnostic: Not tied to a specific graphics API
Animation
A capable animation system
- Skeletal rig animation driven by an ECS-based joint API
- Play multiple animations at the same time by smoothly blending between them
- Use blend shapes / morph targets to animate vertices directly
- Import animations from GLTF files

Cross Platform
Support for all major platforms:
- Windows, MacOS, Linux, Web, iOS, Android
Bevy UI
A custom ECS-driven UI framework built specifically for Bevy
- Built directly on top of Bevy's ECS, Renderer, and Scene plugins
- Compose UIs dynamically in code or declaratively using the Bevy Scene format
- Use a familiar "flex box" model to layout your UIs
Scenes
Create, save, and load ECS worlds using Bevy's Scene system
- Loading: Loading scenes preserves entity IDs (useful for save games)
- Instancing: Instancing creates linked duplicates of scenes with new entity IDs
- Hot Reloading: Changes to scene files are automatically applied to running apps
Sound
Load audio files and play them on demand
- Load audio files as Assets
- Play audio Assets using Audio entities
Hot Reloading
Get instant feedback on your changes without app restarts or recompiles
- Asset changes are immediately reflected in running Bevy apps
- You can currently hot-reload scenes, textures, and meshes
- Any asset type can be integrated
Productive Compile Times
Game development is an iterative process. You can't afford to wait for compiles
- With Bevy you can expect 0.8-3.0 seconds with the "fast compiles" configuration
- Compare that to other popular Rust game engines, which can take over 30 seconds to compile a single newline insertion!
Free and Open Source
An engine made by and for the developer community
- 100% free. Forever and always
- Open Source under the permissive MIT or Apache 2.0 licenses
- No contracts
- No license fees
- No sales cuts
Ready to start building Bevy apps? Get started fast with The Quick Start Guide!
Bevy Supporters
Platinum
$50 / month
Jessica Collins
V-Sekai
Dominykas Djacenko
HAL 9000
Eric Stokes
Jonny Power
Julian Kanzler
Arnav Mummineni
Stefan Wolf
Henry Moore
natepiano
Alexander Balfanz
Daniel Porteous
Gold
$25 / month
avi
occuros
Pressing Thumbs Games
samflores
Charlotte
Jordan Davidson
Sindri Andrason
doot
Skolwind
RJ
puzzled_squid
SilvanCodes
Jack Wolfard
Victor Bjelkholm
Aevyrie Roessler
VJ Pyree
Paul Lackner
Chris "cdata" Joel
nil (TheRawMeatball)
Troels Hoffmeyer
Hexorg
RyeToastyO
Niels Andersen
Gustavo Lee
Goulven Clec'h
Wiktor Ravndal
Alan Jesser
Konrad Konieczny
Sophie Kirschner
Idler Cloud
Philip Ellison
Aldis Ruiz
Devlyn Nelson
Maciej Buszko
William Cahill
Tyler Parisi
Jonni Liljamo
Lars Diederich
Addison Heavner
John Hainline
IceSentry
Caitlin Campbell
Erik Ring-Walters
Frédéric Jolliton
Andrea Vitrano
Joshua Manon
Kelvie Wong
Ben Rensmann
Владимир Степаненко
Shira Smith
Conner Mitchell
Mark Emmons
Michele Vigilante
Edward Swartz
Federico Ravasio
Kev James
Erika Moreau
Idris Zaidi
Abel Toy
NNVTN
Rusty XYZ
Pierce Thompson
Jordan Halase
Markus Siegert
Philipp Dobler
Tyler Royer
Antoine Duchenet
Past Donors
Julian Ramirez Ruiseco, Julian Ramirez Ruiseco, Nayiem Willems, Stuart Parmenter, Kevin Rose, Cameron Flannery, Justin Hentz, Aurelia Rella, Daniel Gallups, Brandon Reinhart, Daniel Cazares, Roland Mueller, Joost Oudejans, Cisco Martinez, Malek Hodroj, Jillis Noordhoek, Tarek Abdel Sater, Saveliy Yusufov, Cayle Bray, Insfollowpro, Cult, Inc., abledbody, Ignacy Chełstowski, Laurence Cullen, Brent Houghton, Sunjay Varma, Ryan Butler, Joda Interactive, Felix Rath, Yash Kumar, Gediminas Gylys, Daniel Grice, Jacudibu, Rusticorn, Viet NT, Turki Al-Marri, Arend van Beelen, Connor "Aceeri" McCluskey, Vollkornaffe, Robin Benzinger, Hugo Peters, Timothy Bertotti, Luukas Kortesniemi, Callim Éthée, Zach Geis, Micah Hinckley, Guido Offermans, Kris Warner, Dan Exidethos, Andrea Bueide, Ben Whitley, Joshua Findon, Kaj-Sören Grunow, Jaap Elst, Daniel Yokoyama, Brian Heineman, Matthew Eppelsheimer, Peter Lustig, Xu Liu, Arto Bendiken, Evan Davies, Marius Cobzarenco, Fabio Loreggian, Mysvac, Pedro Reis, Br3nnabee, Markus Ort, Marcel Nicolay, Aaron Blankenship, Kevin Chen, Joseph Lyons, Loki Sharp, Jason Marsh, rpg EML, Daniel Pietrzeniuk, Manuel Mauro, Zgred Fred, Jan Hohenheim, Amelia Mowers, Mark Davis, rudderbucky, Joel Courtney, Danny McGee, Adam, Robin Benzinger, rustunit.com, John Hainline, Dan White, CooCooCaCha, John Hainline, Slowchop Studios, Nicholas Anderson, Piot, Orange_Murker, Augustin Gjini, indiedevcasts.com, nezuo, Gunstein Vatnar, Daniel Grice, David M. Lary, Idris Zaidi, now I have to make a game with bevy, natepiano, Subtale, Torstein Grindvik, Ida "Iyes", Jakob Getzel, Brandon Wand, Jan Klinge, Allan Davis, Corvus Prudens, bugcaptor, Dylan P., Ask Game Studio, TenRayTracedCats, knutwalker, Afonso Lage, Brett Witty, 0x0177b11f, doomy, Oleksii Nosov, well, now I have to make a game with bevy, Jesse Rupe, Astrago DE, Iryna Chernyshchuk, Dani Ballance, Charles Knudson, Aaron Friedrich, Doce Fernandes, Lars Schneidenbach, Julian Laubstein, Viktor Kuroljov, Krzysztof Piskorski, John Munson, Jonathan Plasse, Lawrence Holcomb, Katerina Marchan, Théo Degioanni, Reshen Amin, Alar Okas, Alix BOTT, Carter Anderson, Justin Turpin, Jaume Singla Valls, Caleb Yates, Tomas Zemanovic, Stefano Schütte, jimmy james, Seraiah Kutai, Andrzej Kilijański, Jiří Švejda, Jiwon Min