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
Daniel Porteous
Stefan Wolf
natepiano
Eric Stokes
Julian Kanzler
Arnav Mummineni
Jonny Power
Alexander Balfanz
Henry Moore
Gold
$25 / month
Troels Hoffmeyer
RJ
occuros
Paul Lackner
Jordan Davidson
Hexorg
Jack Wolfard
nil (TheRawMeatball)
SilvanCodes
avi
Skolwind
Pressing Thumbs Games
puzzled_squid
Sindri Andrason
doot
samflores
VJ Pyree
Charlotte
Aevyrie Roessler
Victor Bjelkholm
Chris "cdata" Joel
Konrad Konieczny
Devlyn Nelson
Tyler Royer
William Cahill
Kev James
Philip Ellison
Maciej Buszko
Lars Diederich
Michele Vigilante
Alan Jesser
Gustavo Lee
Shira Smith
Andrea Vitrano
Niels Andersen
NNVTN
Edward Swartz
Abel Toy
Frédéric Jolliton
Kelvie Wong
IceSentry
Erik Ring-Walters
Erika Moreau
Sophie Kirschner
Idris Zaidi
Idler Cloud
Ben Whitley
Addison Heavner
Jonni Liljamo
Joshua Manon
Rusty XYZ
Aldis Ruiz
John Hainline
Pierce Thompson
Владимир Степаненко
RyeToastyO
Caitlin Campbell
Antoine Duchenet
Jordan Halase
Wiktor Ravndal
Federico Ravasio
Conner Mitchell
Philipp Dobler
Tyler Parisi
Mark Emmons
Goulven Clec'h
Markus Siegert
Ben Rensmann
Past Donors
Julian Ramirez Ruiseco, Julian Ramirez Ruiseco, Nayiem Willems, Stuart Parmenter, Kevin Rose, Cameron Flannery, Justin Hentz, Aurelia Rella, Daniel Gallups, Daniel Cazares, Brandon Reinhart, Roland Mueller, Joost Oudejans, Cayle Bray, Malek Hodroj, Cisco Martinez, Tarek Abdel Sater, Jillis Noordhoek, Saveliy Yusufov, abledbody, Cult, Inc., Insfollowpro, Ignacy Chełstowski, Sunjay Varma, Ryan Butler, Laurence Cullen, Felix Rath, Joda Interactive, Yash Kumar, Brent Houghton, Rusticorn, Vollkornaffe, Arend van Beelen, Viet NT, Jacudibu, Gediminas Gylys, Connor "Aceeri" McCluskey, Turki Al-Marri, Daniel Grice, Robin Benzinger, Hugo Peters, Timothy Bertotti, Luukas Kortesniemi, Zach Geis, Aaron Blankenship, Evan Davies, Peter Lustig, Daniel Pietrzeniuk, Mysvac, Joseph Lyons, Markus Ort, Joshua Findon, Danny McGee, Andrea Bueide, Xu Liu, Jaap Elst, Kevin Chen, Kaj-Sören Grunow, Joel Courtney, Br3nnabee, Callim Éthée, Amelia Mowers, Arto Bendiken, Pedro Reis, Loki Sharp, Jason Marsh, Micah Hinckley, Dan Exidethos, Brian Heineman, Manuel Mauro, Jan Hohenheim, Guido Offermans, Mark Davis, Matthew Eppelsheimer, Zgred Fred, rpg EML, Marcel Nicolay, Marius Cobzarenco, rudderbucky, Fabio Loreggian, Kris Warner, Daniel Yokoyama, Allan Davis, Jesse Rupe, now I have to make a game with bevy, rustunit.com, Daniel Grice, Adam, Slowchop Studios, Oleksii Nosov, Dan White, TenRayTracedCats, Orange_Murker, Gunstein Vatnar, indiedevcasts.com, Ask Game Studio, Jan Klinge, David M. Lary, well, now I have to make a game with bevy, John Hainline, CooCooCaCha, Corvus Prudens, Nicholas Anderson, Afonso Lage, Augustin Gjini, Subtale, doomy, Piot, Jakob Getzel, 0x0177b11f, John Hainline, bugcaptor, Ida "Iyes", Robin Benzinger, knutwalker, Brett Witty, Idris Zaidi, nezuo, Brandon Wand, Torstein Grindvik, Dylan P., natepiano, Astrago DE, Iryna Chernyshchuk, Jaume Singla Valls, Seraiah Kutai, jimmy james, Lars Schneidenbach, Charles Knudson, Aaron Friedrich, Alix BOTT, Stefano Schütte, Andrzej Kilijański, Caleb Yates, Tomas Zemanovic, Doce Fernandes, Dani Ballance, Justin Turpin, Théo Degioanni, Jonathan Plasse, Lawrence Holcomb, Reshen Amin, Katerina Marchan, John Munson, Jiří Švejda, Julian Laubstein, Carter Anderson, Krzysztof Piskorski, Alar Okas, Viktor Kuroljov, Jiwon Min