Fast and Flexible Change Detection
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## Goal Description
Bevy's component change detection is always on for all components, some of which may not need it, and is too slow for some critical systems that do, like rendering and physics simulations. In particular, iterating a query with a `Changed` filter requires a "table scan" that checks every entity in the query one-by-one. Change detection should be opt-in, configurable on a per-component basis, and flexible enough to adapt to different performance requirements.
## Goal Status
This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.
- **Staffing SMEs**: @alice-i-cecile, @cart
- **Working Group Link**: [Link](https://discord.com/channels/691052431525675048/1479222830120828958)
- **Design Documents**: Design documents not yet written
Contributor guide
Assessment
This issue has not been assessed yet.