A simple and easy-to-use library to enjoy videogames programming
This report summarizes scanner evidence for raysan5/raylib, a C project with 35,499 GitHub stars. SynthScan examined 398,982 lines of code across 466 source files, recording 1415 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 3.2 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 1393 finding(s).
Are imports declared and package/API names verified? 12 finding(s).
Are wrappers, guards, and repeated structures necessary? 10 finding(s).
Which changes need focused human review? 1415 finding(s).
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.
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.
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.
The scanner identified 1415 distinct pattern matches across 8 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 1 | cmake_minimum_required(VERSION 3.22) | COMMENT |
| LOW | tools/rlparser/rlparser.c | 61 | #include <stdlib.h> // Required for: malloc(), calloc(), realloc(), free(), atoi(), strtol() | COMMENT |
| LOW | tools/rexm/rexm.c | 61 | #else | COMMENT |
| LOW | tools/rexm/rexm.c | 701 | // WARNING: This function uses TextFormat() extensively inside, | COMMENT |
| LOW | tools/rexm/rexm.c | 1561 | // STEP 2: Build example (PLATFORM_DESKTOP) | COMMENT |
| LOW | projects/Zig/src/core_basic_window.c | 21 | COMMENT | |
| LOW | projects/CMake/core_basic_window.c | 21 | COMMENT | |
| LOW | projects/scripts/build-osx.sh | 1 | #!/bin/sh | COMMENT |
| LOW | projects/scripts/build-rpi.sh | 1 | #!/bin/sh | COMMENT |
| LOW | projects/scripts/build-linux.sh | 1 | #!/bin/sh | COMMENT |
| LOW | projects/VSCode/main.c | 21 | COMMENT | |
| LOW | examples/examples_list.txt | 1 | # | COMMENT |
| LOW | examples/textures/textures_portal_window.c | 21 | * | COMMENT |
| LOW | examples/textures/textures_portal_window.c | 181 | COMMENT | |
| LOW | examples/textures/raygui.h | 361 | COMMENT | |
| LOW | examples/textures/raygui.h | 381 | #endif | COMMENT |
| LOW | examples/textures/raygui.h | 401 | // Macros to define required UI inputs, including mapping to gamepad controls | COMMENT |
| LOW | examples/textures/raygui.h | 421 | #if defined(PLATFORM_WEB) | COMMENT |
| LOW | examples/textures/raygui.h | 441 | #define GUI_BUTTON_DOWN 0 | COMMENT |
| LOW | examples/textures/raygui.h | 641 | BORDER_WIDTH = 12, // Control border size, 0 for no border | COMMENT |
| LOW | examples/textures/raygui.h | 1161 | #include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()] | COMMENT |
| LOW | examples/textures/raygui.h | 1181 | #define RAYGUI_CLITERAL(name) (name) | COMMENT |
| LOW | examples/textures/raygui.h | 1201 | // One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels) | COMMENT |
| LOW | examples/textures/raygui.h | 1481 | COMMENT | |
| LOW | examples/textures/raygui.h | 1521 | //---------------------------------------------------------------------------------- | COMMENT |
| LOW | examples/textures/raygui.h | 1541 | // To use raygui as standalone library, below functions must be defined by the user | COMMENT |
| LOW | examples/textures/raygui.h | 1701 | { | COMMENT |
| LOW | examples/textures/raygui.h | 4421 | } | COMMENT |
| LOW | examples/textures/raygui.h | 4761 | // 4 | 2 | short | Version: 200, 400, 600 | COMMENT |
| LOW | examples/textures/raygui.h | 4781 | COMMENT | |
| LOW | examples/textures/raygui.h | 4801 | // ... | 16 | Rectangle | Glyph rectangle (in image) | COMMENT |
| LOW | examples/textures/raygui.h | 5241 | char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName) | COMMENT |
| LOW | examples/textures/raygui.h | 6101 | COMMENT | |
| LOW | examples/core/core_undo_redo.c | 21 | #include <string.h> // Required for: memcpy(), strcmp() | COMMENT |
| LOW | examples/core/msf_gif.h | 161 | //These functions are equivalent to the ones above, but they write results to a file incrementally, | COMMENT |
| LOW | examples/core/msf_gif.h | 181 | COMMENT | |
| LOW | examples/core/msf_gif.h | 201 | #include <stdlib.h> //malloc, etc. | COMMENT |
| LOW | examples/core/core_3d_camera_fps.c | 21 | COMMENT | |
| LOW | examples/core/core_window_web.c | 21 | #if defined(PLATFORM_WEB) | COMMENT |
| LOW | examples/core/raygui.h | 361 | COMMENT | |
| LOW | examples/core/raygui.h | 381 | #endif | COMMENT |
| LOW | examples/core/raygui.h | 401 | // Macros to define required UI inputs, including mapping to gamepad controls | COMMENT |
| LOW | examples/core/raygui.h | 421 | #if defined(PLATFORM_WEB) | COMMENT |
| LOW | examples/core/raygui.h | 441 | #define GUI_BUTTON_DOWN 0 | COMMENT |
| LOW | examples/core/raygui.h | 641 | BORDER_WIDTH = 12, // Control border size, 0 for no border | COMMENT |
| LOW | examples/core/raygui.h | 1161 | #include <stdarg.h> // Required for: va_list, va_start(), vfprintf(), va_end() [TextFormat()] | COMMENT |
| LOW | examples/core/raygui.h | 1181 | #define RAYGUI_CLITERAL(name) (name) | COMMENT |
| LOW | examples/core/raygui.h | 1201 | // One icon is defined by 8 int, (8 int*32 bit = 256 bit = 16*16 pixels) | COMMENT |
| LOW | examples/core/raygui.h | 1481 | COMMENT | |
| LOW | examples/core/raygui.h | 1521 | //---------------------------------------------------------------------------------- | COMMENT |
| LOW | examples/core/raygui.h | 1541 | // To use raygui as standalone library, below functions must be defined by the user | COMMENT |
| LOW | examples/core/raygui.h | 1701 | { | COMMENT |
| LOW | examples/core/raygui.h | 4421 | } | COMMENT |
| LOW | examples/core/raygui.h | 4761 | // 4 | 2 | short | Version: 200, 400, 600 | COMMENT |
| LOW | examples/core/raygui.h | 4781 | COMMENT | |
| LOW | examples/core/raygui.h | 4801 | // ... | 16 | Rectangle | Glyph rectangle (in image) | COMMENT |
| LOW | examples/core/raygui.h | 5241 | char **GuiLoadIconsFromMemory(const unsigned char *fileData, int dataSize, bool loadIconsName) | COMMENT |
| LOW | examples/core/raygui.h | 6101 | COMMENT | |
| LOW | examples/core/core_input_gamepad.c | 21 | COMMENT | |
| LOW | examples/others/rlgl_standalone.c | 61 | //#define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported | COMMENT |
| 1293 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/textures/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/textures/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/core/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/core/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/shapes/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/shapes/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/models/models_waving_cubes.c | 94 | // NOTE: This function is quite costly to be done per cube and frame, | COMMENT |
| LOW | examples/models/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/models/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/audio/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/audio/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/shaders/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/shaders/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | examples/text/raygui.h | 6349 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | examples/text/raygui.h | 6367 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | src/rmodels.c | 1215 | // NOTE: This function takes care of all model elements, for a detailed control | COMMENT |
| LOW | src/rlgl.h | 637 | // NOTE: This functions are used to completely abstract raylib code from OpenGL layer, | COMMENT |
| LOW | src/rtext.c | 1624 | // NOTE: This function replaces atoi() [stdlib.h] | COMMENT |
| LOW | src/rtext.c | 1645 | // NOTE: This function replaces atof() [stdlib.h] | COMMENT |
| LOW | src/rcore.c | 1844 | // NOTE: This function is expected to be called before window creation, | COMMENT |
| LOW | src/platforms/rcore_web.c | 996 | // NOTE: This function is only safe to use if the provided URL is safe | COMMENT |
| LOW | src/platforms/rcore_memory.c | 384 | // NOTE: This function is only safe to use if you control the URL given. | COMMENT |
| LOW | src/platforms/rcore_drm.c | 1557 | // NOTE: This function use and modify global module variables: | COMMENT |
| LOW | src/platforms/rcore_drm.c | 1589 | // NOTE: This function use and modify global module variables: | COMMENT |
| LOW | src/platforms/rcore_android.c | 1000 | // NOTE: This function use and modify global module variables: | COMMENT |
| LOW | src/external/rlsw.h | 5595 | // NOTE: This function should only render affine axis-aligned quads | COMMENT |
| LOW | src/external/glfw/src/init.c | 179 | // NOTE: This function destroys the provided string | COMMENT |
| LOW | src/external/glfw/src/glx_context.c | 427 | // NOTE: This function must not call any X11 functions, as it is called | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/external/glfw/CMakeLists.txt | 50 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/external/glfw/CMakeLists.txt | 52 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/external/glfw/CMakeLists.txt | 66 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/external/glfw/CMakeLists.txt | 69 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/external/glfw/CMakeLists.txt | 74 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/external/glfw/CMakeLists.txt | 76 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/external/glfw/CMakeLists.txt | 90 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/external/glfw/CMakeLists.txt | 92 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/external/glfw/CMakeLists.txt | 107 | #-------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/external/glfw/CMakeLists.txt | 110 | #-------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | examples/core/resources/text_file.txt | 1 | Starting of the Lorem ipsum dolor sit amet file | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 1 | Starting of the Lorem ipsum dolor sit amet file | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 2 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 2 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 13 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 13 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at interdum ex, et iaculis quam. Mauris consectetu | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 18 | Ending of the Lorem ipsum dolor sit amet file | CODE |
| LOW⚡ | examples/core/resources/text_file.txt | 18 | Ending of the Lorem ipsum dolor sit amet file | CODE |
| LOW | examples/text/text_rectangle_bounds.c | 41 | a long text for testing.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ | CODE |
| LOW | examples/text/text_rectangle_bounds.c | 41 | a long text for testing.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/core/core_custom_frame_control.c | 82 | #ifdef PLATFORM_WEB // NOTE: On web platform for some reason the PollInputEvents only works after th | COMMENT |
| MEDIUM | src/shell.html | 252 | // To make your application robust, you may want to override this behavior before shipping! | COMMENT |
| MEDIUM | src/rlgl.h | 2341 | // Init state: Cubemap seamless | COMMENT |
| MEDIUM | src/external/stb_vorbis.c | 51 | // 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memory | COMMENT |
| MEDIUM | src/external/rlsw.h | 3295 | // This test is robust for points with w > 0 or w < 0, correctly | COMMENT |
| MEDIUM | src/external/rlsw.h | 3407 | // This test is robust for points with w > 0 or w < 0 within the triangle, | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | projects/scripts/build-osx.sh | 108 | # Create the raylib cache directory | COMMENT |
| MEDIUM | projects/scripts/build-rpi.sh | 108 | # Create the raylib cache directory | COMMENT |
| MEDIUM | projects/scripts/build-linux.sh | 108 | # Create the raylib cache directory | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/external/sdefl.h | 17 | ## Usage: | COMMENT |
| LOW | src/external/sinfl.h | 18 | ## Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/external/dr_flac.h | 5956 | /* We found a FLAC frame. We need to check if it contains the sample we're looking for. */ | COMMENT |