Skip to content
CAI
Software that uses CAICheck a score

bevyengine/bevy

73.6

Strong · 29 July 2026

457.4k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

How this codebase got here

Score

  • CAI 61 → 74 (+12.2)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.

Lenses

  • Code Health 75 → 74 (-1.6)
  • Architecture 96 → 95 (-1.5)
  • Maturity 78 → 81 (+3.1)
  • Readiness 82 → 82 (+0.0)
  • Security 45 → 66 (+20.8)
  • Domain Modelling 100 → 100 (+0.0)
  • Event Sourcing 70 → 100 (+30.0)

Resolved (73)

  • AssetPath.parse_internal (cyclomatic 17) (crates/bevy_asset/src/path.rs)
  • AssetProcessor.initialize (cyclomatic 17) (crates/bevy_asset/src/processor/mod.rs)
  • AssetProcessor.process_asset_internal (cyclomatic 16) (crates/bevy_asset/src/processor/mod.rs)
  • AssetProcessor.validate_transaction_log_and_recover (cyclomatic 19) (crates/bevy_asset/src/processor/mod.rs)
  • Change coupling: button.rs ↔ toggle_switch.rs (crates/bevy_feathers/src/controls/button.rs)
  • Change coupling: checkbox.rs ↔ radio.rs (crates/bevy_ui_widgets/src/checkbox.rs)
  • Change coupling: color_slider.rs ↔ slider.rs (crates/bevy_feathers/src/controls/color_slider.rs)
  • Change coupling: radio.rs ↔ slider.rs (crates/bevy_ui_widgets/src/radio.rs)
  • Dependency hygiene not measured — no supported dependency manifest was read
  • EasyScreenRecordPlugin.build (cyclomatic 17) (crates/bevy_dev_tools/src/easy_screenshot.rs)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • High CVE: [GHSA redacted] (.github/start-mobile-example/package-lock.json)
  • …and 53 more

New (115)

  • Change coupling clique: directional_light.rs, point_light.rs, spot_light.rs (crates/bevy_light/src/directional_light.rs)
  • Change coupling: adapter_system.rs ↔ combinator.rs (crates/bevy_ecs/src/system/adapter_system.rs)
  • Change coupling: mod.rs ↔ mod.rs (crates/bevy_math/src/bounding/bounded2d/mod.rs)
  • Change coupling: raycast2d.rs ↔ raycast3d.rs (crates/bevy_math/src/bounding/raycast2d.rs)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • FileTooLong: atmosphere/resources.rs (crates/bevy_pbr/src/atmosphere/resources.rs)
  • FileTooLong: batching/gpu_preprocessing.rs (crates/bevy_render/src/batching/gpu_preprocessing.rs)
  • FileTooLong: bsn/codegen.rs (crates/bevy_scene/macros/src/bsn/codegen.rs)
  • FileTooLong: change_detection/params.rs (crates/bevy_ecs/src/change_detection/params.rs)
  • FileTooLong: cluster/assign.rs (crates/bevy_light/src/cluster/assign.rs)
  • FileTooLong: cluster/gpu.rs (crates/bevy_pbr/src/cluster/gpu.rs)
  • FileTooLong: commands/mod.rs (crates/bevy_ecs/src/system/commands/mod.rs)
  • FileTooLong: controls/number_input.rs (crates/bevy_feathers/src/controls/number_input.rs)
  • FileTooLong: core_3d/mod.rs (crates/bevy_core_pipeline/src/core_3d/mod.rs)
  • FileTooLong: cubic_splines/mod.rs (crates/bevy_math/src/cubic_splines/mod.rs)
  • FileTooLong: curve/easing.rs (crates/bevy_math/src/curve/easing.rs)
  • FileTooLong: diagnostic/internal.rs (crates/bevy_render/src/diagnostic/internal.rs)
  • FileTooLong: dof/mod.rs (crates/bevy_post_process/src/dof/mod.rs)
  • FileTooLong: entity/clone_entities.rs (crates/bevy_ecs/src/entity/clone_entities.rs)
  • FileTooLong: entity/index_map.rs (crates/bevy_ecs/src/entity/index_map.rs)
  • …and 95 more

Changes since last survey

  • 87 commits — 74 feature/other, 13 fixes

By area

  • (root) — 15 commits
  • crates/bevy_ecs — 11 commits
  • examples/ui — 10 commits
  • crates/bevy_ui — 4 commits
  • crates/bevy_ui_widgets — 4 commits
  • examples/3d — 4 commits
  • _release-content/migration-guides — 3 commits
  • crates/bevy_render — 3 commits
  • crates/bevy_solari — 3 commits
  • crates/bevy_ui_render — 3 commits
  • examples/state — 3 commits
  • crates/bevy_core_pipeline — 2 commits
  • crates/bevy_feathers — 2 commits
  • crates/bevy_winit — 2 commits
  • examples/usage — 2 commits
  • assets/shaders — 1 commit
  • benches/Cargo.toml — 1 commit
  • crates/bevy_app — 1 commit
  • crates/bevy_asset — 1 commit
  • crates/bevy_camera — 1 commit

Notable commits

  • fix: Apply suggested fix for try_update from nightly 1.99+ compiler. (#25099)
  • fix: Fix Ctrl+A/C/X/V shortcuts in EditableText on non-Latin keyboard layouts (#25056)
  • fix: Fix RenderDebugOverlay migration guide (#25161)
  • fix: Fix incorrect samples range in the box_shadow example (#25181)
  • fix: Fix missing bevy_transform traces (#25166)
  • fix: Fix uninitialized-drawable pink screen on iOS (#25176)
  • fix: Fix: Manually derive FromTemplate for RenderTarget (#25089)
  • fix: Fix: Steam OSK shifted text input (#25068)
  • fix: Scrollbars autohide, select fix for reselecting current item closing popup (#25057)
  • fix: Transform Gizmo Rendering Bug: Incorect placement when rendering to a camera with custom viewport. (#25106)
  • fix: custom_ui_material.wgsl fix (#25170)
  • fix: bug fix: example - compute_mesh - fix type mismatch (#25093)
  • fix: fix(bevy_core_pipeline): remove early return in 2d main opaque pass (#25199)
  • change: Add LODs to most meshes in bevy_city (#23524)
  • change: Add MeshAllocator meshes_displaced_by_slab_growthand make update_sparse_buffers pub (#25162)
  • change: Add Okhwba color space (#24950)
  • change: Add AlignedVec and use it to improve ShaderBuffer (#24938)
  • change: Add ensure! macro for BevyError (#25061)
  • change: Add a way to randomize system ordering during schedule builds. (#25094)
  • change: Add deferred_raymarch example. (#25133)
  • …and 67 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

bevyengine/bevy was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 29 July 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit d44e0b80872555264c3bcebbdf9ea7f1d0cf8c0c — the exact code this score is about.
  • Scored under rubric-2026.08.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.