AI Slop Code RIsk Monitor

emilk/egui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

5.6 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for emilk/egui, a Rust project with 31,161 GitHub stars. SynthScan examined 157,956 lines of code across 609 source files, recording 842 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 5.6 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

5.6
Adjusted Signal
5.6
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
31.2K
Stars
Rust
Language
158.0K
Lines of Code
609
Files
842
Pattern Hits
2026-10-12
Scan Date
0.00
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 21.9/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 810 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.3/100 · LOW

Are imports declared and package/API names verified? 8 finding(s).

Agent Over-Engineering Ratio 2.8/100 · LOW

Are wrappers, guards, and repeated structures necessary? 25 finding(s).

PR Review Velocity Impact 24.8/100 · LOW

Which changes need focused human review? 842 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 0MEDIUM 30LOW 812

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 842 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block796 hits · 754 pts
SeverityFileLineSnippetContext
LOWlychee.toml1################################################################################COMMENT
LOWdeny.toml1# Copied from https://github.com/rerun-io/rerun_templateCOMMENT
LOWclippy.toml21COMMENT
LOWcrates/eframe/Cargo.toml41## Enable platform accessibility API implementations through [AccessKit](https://accesskit.dev/).COMMENT
LOWcrates/eframe/Cargo.toml81 "glutin?/wayland",COMMENT
LOWcrates/eframe/Cargo.toml101## Switching from `wgpu (the default)` to `glow` can significantly reduce your binary sizeCOMMENT
LOWcrates/eframe/src/lib.rs1//! eframe - the [`egui`] framework crateCOMMENT
LOWcrates/eframe/src/lib.rs21//! If your app is only for native, and you don't need advanced features like state persistence,COMMENT
LOWcrates/eframe/src/lib.rs41//! // for e.g. egui::PaintCallback.COMMENT
LOWcrates/eframe/src/lib.rs61//! # #[cfg(target_arch = "wasm32")]COMMENT
LOWcrates/eframe/src/lib.rs81//! }COMMENT
LOWcrates/eframe/src/lib.rs101//! }COMMENT
LOWcrates/eframe/src/lib.rs121//!COMMENT
LOWcrates/eframe/src/lib.rs241/// This is how you start a native (desktop) app.COMMENT
LOWcrates/eframe/src/lib.rs261/// #[derive(Default)]COMMENT
LOWcrates/eframe/src/lib.rs281/// ```COMMENT
LOWcrates/eframe/src/lib.rs321 #[cfg(feature = "wgpu_no_default_features")]COMMENT
LOWcrates/eframe/src/lib.rs341/// eventloop.set_control_flow(ControlFlow::Poll);COMMENT
LOWcrates/eframe/src/lib.rs361/// }COMMENT
LOWcrates/eframe/src/lib.rs441/// The simplest way to get started when writing a native app.COMMENT
LOWcrates/eframe/src/lib.rs461/// ui.text_edit_singleline(&mut name)COMMENT
LOWcrates/eframe/src/icon_data.rs1//! Helpers for loading [`egui::IconData`].COMMENT
LOWcrates/eframe/src/epi.rs21#[cfg(not(target_arch = "wasm32"))]COMMENT
LOWcrates/eframe/src/epi.rs61 pub integration_info: IntegrationInfo,COMMENT
LOWcrates/eframe/src/epi.rs81 ///COMMENT
LOWcrates/eframe/src/epi.rs141 ///COMMENT
LOWcrates/eframe/src/epi.rs161 /// [`egui::InputState::viewport`], but the rest of [`egui::Context::input`]COMMENT
LOWcrates/eframe/src/epi.rs181 ///COMMENT
LOWcrates/eframe/src/epi.rs201 /// ```COMMENT
LOWcrates/eframe/src/epi.rs221 ///COMMENT
LOWcrates/eframe/src/epi.rs241 /// Background color values for the app, e.g. what is sent to `gl.clearColor`.COMMENT
LOWcrates/eframe/src/epi.rs261 /// persisted (only if the "persistence" feature is enabled).COMMENT
LOWcrates/eframe/src/epi.rs281 /// This function does not return a value. Any changes to the input should be made directly to `_raw_input`.COMMENT
LOWcrates/eframe/src/epi.rs301 ///COMMENT
LOWcrates/eframe/src/epi.rs321 /// `egui` doesn't need the depth buffer, so the default value is 0.COMMENT
LOWcrates/eframe/src/epi.rs341 /// This feature was introduced in <https://github.com/emilk/egui/pull/1889>.COMMENT
LOWcrates/eframe/src/epi.rs361 /// Note: A [`NativeOptions`] clone will not include any `window_builder` hook.COMMENT
LOWcrates/eframe/src/epi.rs381 /// persisted (only if the "persistence" feature is enabled).COMMENT
LOWcrates/eframe/src/epi.rs401 /// This means that only inputs from texture interpolation and vertex colors should be affected in practice.COMMENT
LOWcrates/eframe/src/epi.rs421 ///COMMENT
LOWcrates/eframe/src/epi.rs521 /// `egui` doesn't need the depth buffer, so the default value is 0.COMMENT
LOWcrates/eframe/src/epi.rs541 /// Dithering assumes an sRGB output and thus will apply noise to any input value that lies betweenCOMMENT
LOWcrates/eframe/src/epi.rs701 pub(crate) storage: Option<Box<dyn Storage>>,COMMENT
LOWcrates/eframe/src/epi.rs721 /// eframe pushes this into the painter once per frame, before painting.COMMENT
LOWcrates/eframe/src/epi.rs821 }COMMENT
LOWcrates/eframe/src/epi.rs861 let _ = (self, egui_ctx, title_bar_y, left_margin);COMMENT
LOWcrates/eframe/src/epi.rs901 ///COMMENT
LOWcrates/eframe/src/epi.rs921 /// and run eframe using [`Renderer::Glow`].COMMENT
LOWcrates/eframe/src/epi.rs941 /// Can be used to manage GPU resources for custom rendering with WGPU using [`egui::PaintCallback`]s.COMMENT
LOWcrates/eframe/src/epi.rs981}COMMENT
LOWcrates/eframe/src/epi.rs1001 /// Example: `"example.com:80"`.COMMENT
LOWcrates/eframe/src/epi.rs1021 ///COMMENT
LOWcrates/eframe/src/native/app_icon.rs41 /// We did not set it or failed to do it. In any case we won't try again.COMMENT
LOWcrates/eframe/src/native/winit_integration.rs161 /// Causes a save of the client state when the persistence feature is enabled.COMMENT
LOWcrates/eframe/src/native/run.rs21/// Minimum interval between repaints for invisible windows.COMMENT
LOWcrates/eframe/src/native/wgpu_integration.rs941 // See: https://github.com/emilk/egui/issues/903COMMENT
LOWcrates/eframe/src/native/glow_integration.rs81}COMMENT
LOWcrates/eframe/src/native/glow_integration.rs981 &mut self,COMMENT
LOWcrates/eframe/src/web/web_painter.rs1use egui::ScreenshotCallback;COMMENT
LOWcrates/eframe/src/web/canvas_glyphs.rs201 width,COMMENT
736 more matches not shown…
Decorative Section Separators24 hits · 87 pts
SeverityFileLineSnippetContext
MEDIUMclippy.toml3# -----------------------------------------------------------------------------COMMENT
MEDIUMclippy.toml22# -----------------------------------------------------------------------------COMMENT
MEDIUMclippy.toml60# -----------------------------------------------------------------------------COMMENT
MEDIUMcrates/eframe/Cargo.toml166# -------------------------------------------COMMENT
MEDIUMcrates/eframe/Cargo.toml222# -------------------------------------------COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs10/// ┌───────────┐ ┌────────┐ ┌─────────┐COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs12/// └───────────┘ └────────┘ └─────────┘COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs13/// ┌──────────┐ ┌────────────────────────────────────┐ ┌───────────┐COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs15/// └──────────┘ │ │ └───────────┘COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs16/// ┌──────────┐ │ │ ┌───────────┐COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs18/// └──────────┘ │ │ └───────────┘COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs19/// ┌──────────┐ │ │ ┌───────────┐COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs21/// └──────────┘ └────────────────────────────────────┘ └───────────┘COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs22/// ┌────────────┐ ┌──────┐ ┌──────────┐COMMENT
MEDIUM⚡crates/emath/src/rect_align.rs24/// └────────────┘ └──────┘ └──────────┘COMMENT
MEDIUMscripts/check.sh82# ------------------------------------------------------------COMMENT
MEDIUMscripts/clippy_wasm/clippy.toml6# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/clippy_wasm/clippy.toml25# -----------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml75 # ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml142 # ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml174 # ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml199 # ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml223 # ---------------------------------------------------------------------------COMMENT
MEDIUM.github/workflows/rust.yml245 # ---------------------------------------------------------------------------COMMENT
AI Slop Vocabulary4 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMcrates/eframe/src/native/glow_integration.rs1220 // Create GL display. This may probably create a window too on most platforms. Definitely on `MS windows`. NeverCOMMENT
MEDIUMcrates/egui_kittest/src/lib.rs990 /// See also: <https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field>COMMENT
MEDIUMcrates/egui_kittest/src/lib.rs1024 See: https://doc.rust-lang.org/cargo/reference/cargo-targets.html#the-harness-field"CODE
MEDIUMcrates/egui_kittest/src/snapshot.rs854/// # let harness = MockHarness;COMMENT
Fake / Example Data8 hits · 10 pts
SeverityFileLineSnippetContext
LOW⚡crates/egui_demo_lib/src/lib.rs59pub const LOREM_IPSUM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididuntCODE
LOW⚡crates/egui_demo_lib/src/lib.rs59pub const LOREM_IPSUM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididuntCODE
LOW⚡crates/egui_demo_lib/src/lib.rs61pub const LOREM_IPSUM_LONG: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidCODE
LOW⚡crates/egui_demo_lib/src/lib.rs61pub const LOREM_IPSUM_LONG: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incidCODE
LOWcrates/egui_demo_lib/src/demo/text_layout.rs133 ui.selectable_value(lorem_ipsum, true, "Lorem Ipsum");CODE
LOWcrates/egui_demo_lib/src/demo/modals.rs21 name: "John Doe".to_owned(),CODE
LOWexamples/custom_font_style/src/main.rs73pub const LOREM_IPSUM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididuntCODE
LOWexamples/custom_font_style/src/main.rs73pub const LOREM_IPSUM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididuntCODE
Slop Phrases3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMscripts/accept_snapshots.sh3# Its main use is in the update_kittest_snapshots CI job, but you can also use it locally.COMMENT
MEDIUMscripts/build_demo_web.sh99# if this fails with "error: cannot import from modules (`env`) with `--no-modules`", you can use:COMMENT
LOW.vscode/settings.json24 // Don't forget to put it in a comment again before committing.COMMENT
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/generate_changelog.py136CODE
LOWscripts/generate_changelog.py244CODE
LOWscripts/lint.py150CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOW.github/workflows/enforce_branch_name.yml20 # Check if PR is from a forkCOMMENT
LOW.github/workflows/enforce_branch_name.yml22 # Check if PR is from the master/main branch of a forkCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWcrates/egui_kittest/src/snapshot.rs61/// Example usage:COMMENT
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/generate_changelog.py49def fetch_pr_info_from_commit_info(commit_info: CommitInfo) -> Optional[PrInfo]:CODE