<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/bevy-0-6-aua0jsows" -->

---
title: Bevy 0.6 | daily.dev
description: Bevy 0.6 ships a completely rewritten renderer built directly on wgpu, adding directional and point light shadows, clustered forward rendering, frustum...
canonical: https://daily.dev/posts/bevy-0-6-aua0jsows
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Bevy 0.6 | daily.dev
og:description: Bevy 0.6 ships a completely rewritten renderer built directly on wgpu, adding directional and point light shadows, clustered forward rendering, frustum...
og:url: https://daily.dev/posts/bevy-0-6-aua0jsows
og:image: https://api.daily.dev/og/posts/aUA0JSowS.png
og:image:alt: Bevy 0.6
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Bevy 0.6

**[Bevy Engine](https://daily.dev/sources/bevy)** · 52 min read · 0 upvotes · 0 comments

## Summary

Bevy 0.6 ships a completely rewritten renderer built directly on wgpu, adding directional and point light shadows, clustered forward rendering, frustum culling, and much faster batched sprite rendering (up to 100,000 sprites vs 8,000 previously). It introduces native WebGL2 support for running Bevy apps in the browser, high-level custom Materials, a shader preprocessor with imports, and WGSL as the recommended shader language. Bevy ECS gets major ergonomics wins including removal of the `.system()` call and a new explicit `Component` trait requiring `#[derive(Component)]`. Other additions include SystemState, iter_combinations, sub-apps for the new render pipeline, Rust 2021 edition support, a Gamepads resource, and a formal error codes system. A migration guide is provided for upgrading from 0.5.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://bevy.org/news/bevy-0-6>

## Questions this post answers

### What changed with the Component trait in Bevy 0.6?

Types no longer automatically implement the Component trait in Bevy 0.6; developers must explicitly add #[derive(Component)] or implement it manually. Previously a blanket impl made any Send + Sync + 'static type a Component automatically. The change prevents accidentally adding non-component types like Bundles as Components and enables performance optimizations by moving storage type configuration into the trait itself.

_Track ECS breaking changes like this before upgrading a Bevy project on daily.dev._

### Do I still need to call .system() when adding a system in Bevy 0.6?

No, Bevy 0.6 removes the need to call .system() when registering systems with add_system. Previously code required app.add_system(gravity.system()), but as of this release you can simply write app.add_system(gravity). This was made possible by a solution found by contributor DJMcNab after rustc limitations and safety issues had blocked earlier removal attempts.

_Developers migrating Bevy code check daily.dev for API ergonomics changes like this._

### How much faster is sprite rendering in the new Bevy 0.6 renderer compared to Bevy 0.5?

Sprite rendering is dramatically faster thanks to sprite batching in the new renderer: on an Nvidia GTX 1070 and Intel i7 7700k machine, the old Bevy renderer dropped below 60fps at around 8,000 sprites in the bevymark benchmark, while the new renderer sustains about 100,000 sprites. Sprites are batched by texture within a z-level and opportunistically across z-levels, reducing draw calls significantly.

_Compare game engine rendering performance gains like this on daily.dev before choosing a stack._

## Similar posts on daily.dev

- [Bevy 0.19](https://daily.dev/posts/bevy-0-19-sk3tvicux) · Lobsters · 19 upvotes · 2 comments
- [Bevy 0.18](https://daily.dev/posts/bevy-0-18-uzl4pmeoc) · Lobsters · 51 upvotes · 2 comments
- [Bevy's Sixth Birthday](https://daily.dev/posts/bevy-s-sixth-birthday-bb5mw85zl) · Lobsters · 1 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#game-development](https://daily.dev/tags/game-development), [#rust](https://daily.dev/tags/rust)

[View this post on daily.dev](https://daily.dev/posts/bevy-0-6-aua0jsows)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Bevy 0.6","url":"https://daily.dev/posts/bevy-0-6-aua0jsows","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/bevy-0-6-aua0jsows"},"datePublished":"2026-08-23T12:20:51.812Z","dateModified":"2026-08-23T12:45:34.429Z","description":"Bevy 0.6 ships a completely rewritten renderer built directly on wgpu, adding directional and point light shadows, clustered forward rendering, frustum...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b144cd373271b6e7d8d738b8cad865a0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b144cd373271b6e7d8d738b8cad865a0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Bevy Engine","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Bevy Engine","logo":"https://media.daily.dev/image/upload/s--oCEd8Bn1--/f_auto,q_auto/v1787487635/logos/bevy-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/bevy"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/bevy-0-6-aua0jsows","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"webdev,game-development,rust","timeRequired":"PT52M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Bevy Engine","item":"https://daily.dev/sources/bevy"},{"@type":"ListItem","position":3,"name":"Bevy 0.6"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/bevy-0-6-aua0jsows#faq","mainEntity":[{"@type":"Question","name":"What changed with the Component trait in Bevy 0.6?","acceptedAnswer":{"@type":"Answer","text":"Types no longer automatically implement the Component trait in Bevy 0.6; developers must explicitly add #[derive(Component)] or implement it manually. Previously a blanket impl made any Send + Sync + 'static type a Component automatically. The change prevents accidentally adding non-component types like Bundles as Components and enables performance optimizations by moving storage type configuration into the trait itself. Track ECS breaking changes like this before upgrading a Bevy project on daily.dev."}},{"@type":"Question","name":"Do I still need to call .system() when adding a system in Bevy 0.6?","acceptedAnswer":{"@type":"Answer","text":"No, Bevy 0.6 removes the need to call .system() when registering systems with add_system. Previously code required app.add_system(gravity.system()), but as of this release you can simply write app.add_system(gravity). This was made possible by a solution found by contributor DJMcNab after rustc limitations and safety issues had blocked earlier removal attempts. Developers migrating Bevy code check daily.dev for API ergonomics changes like this."}},{"@type":"Question","name":"How much faster is sprite rendering in the new Bevy 0.6 renderer compared to Bevy 0.5?","acceptedAnswer":{"@type":"Answer","text":"Sprite rendering is dramatically faster thanks to sprite batching in the new renderer: on an Nvidia GTX 1070 and Intel i7 7700k machine, the old Bevy renderer dropped below 60fps at around 8,000 sprites in the bevymark benchmark, while the new renderer sustains about 100,000 sprites. Sprites are batched by texture within a z-level and opportunistically across z-levels, reducing draw calls significantly. Compare game engine rendering performance gains like this on daily.dev before choosing a stack."}}]}
```

