AI Slop Code Risk Monitor

openframeworks/openFrameworks

SlopCodeMonitor badge for openframeworks/openFrameworks Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

openFrameworks is a community-developed cross platform toolkit for creative coding in C++.

3.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for openframeworks/openFrameworks, a C++ project with 10,458 GitHub stars. SynthScan examined 345,785 lines of code across 1815 source files, recording 1366 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 3.8 (Low 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.

3.8
Adjusted Signal
3.8
Raw Pattern Score
100%
Time Factor
2026-11-01
Last Push
10.5K
Stars
C++
Language
345.8K
Lines of Code
1.8K
Files
1.4K
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 16.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.1/100 · LOW

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

Agent Over-Engineering Ratio 1.5/100 · LOW

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

PR Review Velocity Impact 18.8/100 · LOW

Which changes need focused human review? 1366 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 37LOW 1329

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 1366 distinct pattern matches across 11 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 Block1293 hits · 1150 pts
SeverityFileLineSnippetContext
LOW.travis.yml21 - ubuntu-toolchain-r-testCOMMENT
LOWaddons/ofxKinect/libs/libfreenect/include/libfreenect.h41COMMENT
LOWaddons/ofxKinect/libs/libfreenect/include/libfreenect.h181COMMENT
LOWaddons/ofxKinect/libs/libfreenect/src/cameras.c21 * of the CONTRIB file.COMMENT
LOWaddons/ofxKinect/libs/libfreenect/src/usb_libusb10.h21 * of the CONTRIB file.COMMENT
LOW…ons/ofxKinect/libs/libfreenect/src/freenect_internal.h61 unsigned int fn_fw_k4w_size;COMMENT
LOW…ons/ofxKinect/libs/libfreenect/src/freenect_internal.h121 conversion_union.u = fn_le32(conversion_union.u);COMMENT
LOWaddons/ofxKinect/libs/libfreenect/src/tilt.c21 * of the CONTRIB file.COMMENT
LOWaddons/ofxKinect/libs/libfreenect/src/registration.c41#define DEPTH_SENSOR_X_RES 1280COMMENT
LOWaddons/ofxKinect/src/ofxKinect.h41 // mac and linux need thisCOMMENT
LOWaddons/ofxKinect/src/ofxKinect.h61COMMENT
LOWaddons/ofxKinect/src/ofxKinect.h81 /// call this before open(), has no effect while the connection is runningCOMMENT
LOWaddons/ofxKinect/src/ofxKinect.h201COMMENT
LOWaddons/ofxKinect/src/ofxKinect.h221COMMENT
LOWaddons/ofxGui/src/ofxGui.h1#pragma onceCOMMENT
LOWaddons/ofxGui/src/ofxColorPicker.h1//COMMENT
LOWaddons/ofxNetwork/docs/Instructions.txt21COMMENT
LOWaddons/ofxNetwork/src/ofxTCPManager.h41SetTimeoutAccept()COMMENT
LOWaddons/ofxNetwork/src/ofxTCPManager.h61 #include <arpa/inet.h>COMMENT
LOWaddons/ofxNetwork/src/ofxTCPClient.h41 bool sendRawMsg(const char * msg, int size);COMMENT
LOWaddons/ofxNetwork/src/ofxNetwork.h1#pragma onceCOMMENT
LOWaddons/ofxNetwork/src/ofxUDPManager.h61...COMMENT
LOWaddons/ofxNetwork/src/ofxUDPManager.h81 #include <netinet/in.h>COMMENT
LOWaddons/ofxNetwork/src/ofxTCPServer.h61 //if you are trying to send something other than just ascii stringsCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvShortImage.h21COMMENT
LOWaddons/ofxOpenCv/src/ofxCvShortImage.h61 void addWeighted( ofxCvGrayscaleImage& mom, float f );COMMENT
LOWaddons/ofxOpenCv/src/ofxCvShortImage.h81 COMMENT
LOWaddons/ofxOpenCv/src/ofxCvShortImage.h101 // virtual void scale( float scaleX, float sclaeY ); //in base classCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvCompat.h1#pragma onceCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvCompat.h21#endifCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvCompat.h41#define CV_INTER_CUBIC cv::INTER_CUBICCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvConstants.h1#pragma onceCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvColorImage.h21 ofxCvColorImage();COMMENT
LOWaddons/ofxOpenCv/src/ofxCvColorImage.h61 using ofxCvImage::operator-=; //force inheritance COMMENT
LOWaddons/ofxOpenCv/src/ofxCvColorImage.h81 //virtual void draw( float x, float y ); //in base classCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvColorImage.h101 // Image Transformation OperationsCOMMENT
LOWaddons/ofxOpenCv/src/ofxOpenCv.h1#pragma onceCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvImage.cpp161//--------------------------------------------------------------------------------COMMENT
LOWaddons/ofxOpenCv/src/ofxCvFloatImage.h41 virtual float getNativeScaleMax() {return scaleMax;}; COMMENT
LOWaddons/ofxOpenCv/src/ofxCvFloatImage.h81 COMMENT
LOWaddons/ofxOpenCv/src/ofxCvFloatImage.h101 //virtual void resetAnchor(); //in base class COMMENT
LOWaddons/ofxOpenCv/src/ofxCvFloatImage.h121 // virtual void rotate( float angle, float centerX, float centerY ); //in base classCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvGrayscaleImage.h21 using ofxCvImage::setFromPixels;COMMENT
LOWaddons/ofxOpenCv/src/ofxCvGrayscaleImage.h61 // virtual void operator *= ( ofxCvImage& mom ); //in base class COMMENT
LOWaddons/ofxOpenCv/src/ofxCvGrayscaleImage.h101 // virtual void invert(); //in base classCOMMENT
LOWaddons/ofxOpenCv/src/ofxCvGrayscaleImage.h121 // ofPoint& C, ofPoint& D ); //in base classCOMMENT
LOWaddons/ofxPoco/src/ofxXmlPoco.h1#pragma onceCOMMENT
LOWaddons/ofxVectorGraphics/libs/CreEPS.cpp41// umlauts. If you plan to use umlauts only with LaTeX font output,COMMENT
LOWaddons/ofxVectorGraphics/src/ofxVectorGraphics.cpp381 //by finding the approrpriate control points COMMENT
LOWaddons/ofxXmlSettings/libs/tinyxml.h213. This notice may not be removed or altered from any sourceCOMMENT
LOWaddons/ofxXmlSettings/libs/tinyxml.h41// Help out windows:COMMENT
LOWaddons/ofxXmlSettings/libs/tinyxml.h61// test. If you get compilation troubles, undefine TIXML_SAFECOMMENT
LOWaddons/ofxXmlSettings/libs/tinyxmlparser.cpp213. This notice may not be removed or altered from any source COMMENT
LOWaddons/ofxXmlSettings/libs/tinyxmlparser.cpp41// is less flexible than it appears. Changing the entriesCOMMENT
LOWaddons/ofxXmlSettings/libs/tinyxmlparser.cpp141 return 1; // What else to do? The unicode set is huge...get the english ones right.COMMENT
LOWaddons/ofxXmlSettings/libs/tinyxml.cpp1001 data.reserve( length );COMMENT
LOWaddons/ofxXmlSettings/src/ofxXmlSettings.h101 //-- numTagsCOMMENT
LOWaddons/ofxSvg/src/ofxSvgElements.cpp841 tMeshMesh.draw();COMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp781// ofxSvgCssClass::sGetFloat(ryAttr.getValue()))COMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp2361//bool ofxSvg::remove( std::vector<std::shared_ptr<ofxSvgElement> > aelements ) {COMMENT
1233 more matches not shown…
Decorative Section Separators34 hits · 102 pts
SeverityFileLineSnippetContext
MEDIUMscripts/of_build.sh59# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh61# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh110# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh112# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh200# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh202# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh355# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh357# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh556# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh558# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh678# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh680# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh1076# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh1078# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh1174# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of_build.sh1176# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of.sh86# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/of.sh301# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/of.sh956# -----------------------------------------------------------------------------COMMENT
MEDIUMscripts/of.sh2000# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/of.sh2002# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh47# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh49# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh75# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh77# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh94# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh96# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh124# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh126# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh161# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh246# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh248# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh295# ---------------------------------------------------------------------------COMMENT
MEDIUMscripts/dev/smoke_test_nightly.sh297# ---------------------------------------------------------------------------COMMENT
Verbosity Indicators9 hits · 17 pts
SeverityFileLineSnippetContext
LOWaddons/ofxSvg/src/ofxSvgElements.cpp93 // Step 2: Replace known patterns from IllustratorCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1026 // Step 1: Compute (x1', y1') - the coordinates of the start point in the transformed coordinate systemCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1030 // Step 2: Correct radii if necessaryCOMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp1045 // Step 3: Compute (cx', cy') - the center point in the transformed coordinate systemCOMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp1059 // Step 4: Compute the center point in the original coordinate systemCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1840 // Step 1: Translate to pivot (move pivot to origin)COMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1843 // Step 2: Apply rotationCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1846 // Step 3: Translate back to original positionCOMMENT
LOWlibs/openFrameworks/utils/ofSystemUtils.cpp655 //Step 1: Registering the Window ClassCOMMENT
Structural Annotation Overuse9 hits · 17 pts
SeverityFileLineSnippetContext
LOWaddons/ofxSvg/src/ofxSvgElements.cpp93 // Step 2: Replace known patterns from IllustratorCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1026 // Step 1: Compute (x1', y1') - the coordinates of the start point in the transformed coordinate systemCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1030 // Step 2: Correct radii if necessaryCOMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp1045 // Step 3: Compute (cx', cy') - the center point in the transformed coordinate systemCOMMENT
LOWaddons/ofxSvg/src/ofxSvg.cpp1059 // Step 4: Compute the center point in the original coordinate systemCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1840 // Step 1: Translate to pivot (move pivot to origin)COMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1843 // Step 2: Apply rotationCOMMENT
LOW⚡addons/ofxSvg/src/ofxSvg.cpp1846 // Step 3: Translate back to original positionCOMMENT
LOWlibs/openFrameworks/utils/ofSystemUtils.cpp655 //Step 1: Registering the Window ClassCOMMENT
Redundant / Tautological Comments8 hits · 12 pts
SeverityFileLineSnippetContext
LOWscripts/osx/xcode_project.sh226 # Check if the .app file existsCOMMENT
LOWscripts/ci/package_builds.sh7# Check if ROOT is emptyCOMMENT
LOWscripts/ci/package_builds.sh9 # Set ROOT to ../../../ if it's emptyCOMMENT
LOWscripts/ci/emscripten/examples_to_build.sh184 # Check if the folder existsCOMMENT
LOWscripts/ci/emscripten/examples_to_build.sh209 # Check if the file is a regular fileCOMMENT
LOWscripts/ci/emscripten/examples_to_build.sh247 # Check if a file was foundCOMMENT
LOWscripts/emscripten/download_libs_via_vcpkg.sh15# Check if vcpkg is installedCOMMENT
LOWscripts/dev/download_libs.sh765# # Check if the file existsCOMMENT
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMlibs/openFrameworks/utils/ofLog.h409 /// and can be used as a direct replacement. Essentially, the secondCOMMENT
MEDIUMlibs/openFrameworks/gl/ofShader.cpp639 // We need to find a robust way of extracing this information fromCOMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/ci/linux/armv7l/arch-bootstrap_downloadonly.sh12# Usage:COMMENT
LOWscripts/ci/linux/armv7l/arch-bootstrap.sh12# Usage:COMMENT
LOWscripts/dev/smoke_test_nightly.sh21# Usage:COMMENT
Fake / Example Data4 hits · 4 pts
SeverityFileLineSnippetContext
LOWtests/utils/buffer/src/main.cpp146 lines.push_back("Lorem ipsum dolor sit amet,");CODE
LOWtests/utils/buffer/src/main.cpp146 lines.push_back("Lorem ipsum dolor sit amet,");CODE
LOWtests/utils/buffer/src/main.cpp183 lines.push_back("Lorem ipsum dolor sit amet,");CODE
LOWtests/utils/buffer/src/main.cpp183 lines.push_back("Lorem ipsum dolor sit amet,");CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMscripts/osx/snapshotAllExamples.sh6# Define the directory to the examples/graphicsCOMMENT
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippetContext
LOWexamples/android/androidGuiExample/src/ofApp.cpp18 gui.setup("panel"); // most of the time you don't need a name but don't forget to call setupCODE
LOWexamples/gui/guiFromParametersExample/src/ofApp.cpp12 gui.setup("panel"); // most of the time you don't need a name but don't forget to call setupCODE
TODO Padding1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ons/ofxKinect/libs/libfreenect/src/freenect_internal.h178 freenect_sample_51* audio_out_ring; // TODO: implement sending user-provided data in callbacksCODE