Repository Analysis

processing/p5.js

p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. Looking for p5.js 2.0? http://beta.p5js.org

0.7 Likely human-written View on GitHub
0.7
Adjusted Score
0.7
Raw Score
100%
Time Factor
2026-05-29
Last Push
23,716
Stars
JavaScript
Language
338,190
Lines of Code
913
Files
81
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 31MEDIUM 4LOW 46

Pattern Findings

81 matches across 8 categories. Click a row to expand file-level details.

Cross-Language Confusion (JS/TS)31 hits · 190 pts
SeverityFileLineSnippet
HIGHtest/manual-test-examples/p5.Table/matchRow/sketch.js22 print(result.getString('name')); // Prints "Snake"
HIGHtest/manual-test-examples/p5.Table/getObject/sketch.js21 print('Without a header column:', table.getObject());
HIGHtest/manual-test-examples/p5.Table/getObject/sketch.js22 print('With a header column:', table.getObject('name'));
HIGHtest/manual-test-examples/p5.Table/findRows/sketch.js27 print(rows[i].getString('name') + ': ' + rows[i].getString('type'));
HIGHtest/manual-test-examples/p5.Table/matchRows/sketch.js27 print(rows[i].getString('name') + ': ' + rows[i].getString('type'));
HIGHtest/manual-test-examples/p5.Table/trim/sketch.js21 print(table.getColumn('name'));
HIGHtest/manual-test-examples/p5.Table/trim/sketch.js22 print(table.getColumn('type'));
HIGHtest/manual-test-examples/p5.Table/trim/sketch.js25 print(table.getColumn('name'));
HIGHtest/manual-test-examples/p5.Table/trim/sketch.js26 print(table.getColumn('type'));
HIGH…t/manual-test-examples/p5.Table/removeTokens/sketch.js21 print(table.getColumn('name'));
HIGH…t/manual-test-examples/p5.Table/removeTokens/sketch.js22 print(table.getColumn('type'));
HIGH…t/manual-test-examples/p5.Table/removeTokens/sketch.js26 print(table.getColumn('name'));
HIGH…t/manual-test-examples/p5.Table/removeTokens/sketch.js27 print(table.getColumn('type'));
HIGHtest/manual-test-examples/p5.Table/getColumn/sketch.js21 print(table.getColumn('name'));
HIGH…ual-test-examples/addons/p5.sound/peakDetect/sketch.js32 print('source duration: ' + src_length);
HIGH…manual-test-examples/async/loadJSON_callback/sketch.js46 print(result); // result is ready!
HIGH…ual-test-examples/async/loadStrings_callback/sketch.js18 print('In setup(), there are ' + result.length + ' lines in the result');
HIGH…ual-test-examples/async/loadStrings_callback/sketch.js27 print(
HIGH…ual-test-examples/async/loadStrings_callback/sketch.js30 print('Click the mouse to display a different random line!');
HIGH…al-test-examples/async/loadStrings_manyLines/sketch.js21 print('In setup(), there are ' + result.length + ' lines in the result');
HIGH…al-test-examples/async/loadStrings_manyLines/sketch.js30 print(
HIGH…al-test-examples/async/loadStrings_manyLines/sketch.js33 print('Click the mouse to display a different random line!');
HIGH…nual-test-examples/async/loadStrings_preload/sketch.js28 print(
HIGH…nual-test-examples/async/loadStrings_preload/sketch.js31 print('Click the mouse to display a different random line!');
HIGH…l-test-examples/learningprocessing/chp6/example_6_7.js29 print(' The mouse was pressed! ');
HIGH…l-test-examples/learningprocessing/chp6/example_6_4.js13 print(x);
HIGH…/learningprocessing/chp10/example_10_4/example_10_4.js23 print(' 5 seconds have passed! ');
HIGH…/learningprocessing/chp10/example_10_9/example_10_9.js32 print(' 2 seconds have passed! ');
HIGH…l-test-examples/learningprocessing/chp3/example_3_6.js48 print('Take me to your leader!');
HIGH…l-test-examples/learningprocessing/chp4/example_4_5.js25 print(key);
HIGHsrc/data/p5.TypedDict.js313 print() {
Over-Commented Block25 hits · 25 pts
SeverityFileLineSnippet
LOWtest/unit/io/loadJSON.js121 sketch.preload = function() {
LOWtest/manual-test-examples/p5.Table/saveTable/sketch.js21 save(table, 'animals.csv');
LOW…manual-test-examples/async/loadJSON_callback/sketch.js1// This example gets weather for any city based on user input.
LOW…manual-test-examples/webgl/geometryImmediate/sketch.js61 // QUAD_STRIP and TRIANGLE_STRIP need the vertices of each shared side
LOW…l-test-examples/learningprocessing/chp3/example_3_1.js1// Learning Processing
LOW…/manual-test-examples/saveData/saveJSONArray/sketch.js21}
LOW…ples/tutorials/Integrating-other-libraries/0/sketch.js1// This shows an example of using the "Api example" code from
LOWdocs/yuidoc-p5-theme/assets/js/render.js201 // p.preload is an empty function created by the p5.sound library in order to use the p5.js preload system
LOWdocs/yuidoc-p5-theme/assets/js/reference.js3361 // The Bash man page says
LOWdocs/yuidoc-p5-theme/assets/js/reference.js3381 // so /(?:^|[|&;<>\s])/ is more appropriate.
LOWdocs/yuidoc-p5-theme/assets/js/reference.js3981 }
LOWlib/addons/p5.sound.js7261 // * @param {Number} [freq2] Frequency value for band with index 2
LOWlib/addons/p5.sound.js7321
LOWlib/addons/p5.sound.js7341// *
LOWsrc/core/friendly_errors/stacktrace.js1/**
LOWsrc/core/friendly_errors/fes_core.js1041 // If we find that we're logging lots of false positives, we can
LOWsrc/core/friendly_errors/validate_params.js41
LOWsrc/core/friendly_errors/validate_params.js61 p5Constructors[key] = p5[key];
LOWsrc/core/friendly_errors/validate_params.js81 // - seen: true
LOWsrc/core/friendly_errors/sketch_reader.js281 for (let i = 0; i < tempArray.length; i++) {
LOWsrc/webgl/p5.Matrix.js961
LOWsrc/webgl/p5.Matrix.js981 // const X = 2*znear/(right-left);
LOWsrc/webgl/p5.Matrix.js1001//[
LOWsrc/webgl/p5.Camera.js3441
LOWsrc/image/loading_displaying.js681 if (frameDelay === 0) {
Fake / Example Data10 hits · 10 pts
SeverityFileLineSnippet
LOWtest/unit/typography/p5.Font.js22 let textString = 'Lorem ipsum dolor sit amet.';
LOWtest/unit/typography/p5.Font.js22 let textString = 'Lorem ipsum dolor sit amet.';
LOWtest/unit/dom/dom.js1566 const testContent = 'Lorem ipsum';
LOWtest/manual-test-examples/p5.Font/simple/sketch.js162 "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a gall
LOWtest/manual-test-examples/p5.Font/system/sketch.js20 'Simple long Text: Lorem Ipsum is simply dummy text of the printing and typesetting industry. ',
LOWtest/manual-test-examples/p5.Font/callback/sketch.js13 'Simple long Text: Lorem Ipsum is simply dummy text of the printing and typesetting industry. ',
LOWtest/manual-test-examples/p5.Font/custom/sketch.js24 'Simple long Text: Lorem Ipsum is simply dummy text of the printing and typesetting industry. ',
LOWtest/manual-test-examples/p5.Font/custom/sketch.js593 var text = 'Lorem ipsum dolor sit amet.';
LOWtest/manual-test-examples/p5.Font/custom/sketch.js593 var text = 'Lorem ipsum dolor sit amet.';
LOWtest/js/modernizr.js5if("reportValidity"in A)return!0;var e,t=!1;return Modernizr.formvalidationapi=!0,A.addEventListener("submit",function(A
AI Slop Vocabulary3 hits · 10 pts
SeverityFileLineSnippet
MEDIUMtest/js/modernizr.js2 * https://modernizr.com/download/?-adownload-ambientlight-animation-apng-appearance-applicationcache-atobbtoa-audio-aud
MEDIUMtest/js/modernizr.js4if(!Modernizr.audio.wav)return void addTest("audiopreload",!1);r.src="data:audio/wav;base64,UklGRvwZAABXQVZFZm10IBAAAAAB
MEDIUMtest/js/modernizr.js4if(!Modernizr.audio.wav)return void addTest("audiopreload",!1);r.src="data:audio/wav;base64,UklGRvwZAABXQVZFZm10IBAAAAAB
Hyper-Verbose Identifiers8 hits · 8 pts
SeverityFileLineSnippet
LOWtest/test-reference.html216 .filter(function excludeIfNoBrowserSupportFor(filename) {
LOWtest/unit/core/structure.js73 function assertCanPreserveRenderState(work) {
LOWtest/unit/webgl/p5.Framebuffer.js225 function setupAndReturnFramebuffer() {
LOWtest/unit/webgl/p5.Geometry.js173 function assertGeometryRendersMatch(drawGeometry, lightingModes) {
LOWdocs/preprocessor.js261function renderItemDescriptionsAsMarkdown(item) {
LOWdocs/preprocessor.js271function renderDescriptionsAsMarkdown(data) {
LOWdocs/yuidoc-p5-theme/assets/js/reference.js2830 function allowAnywhereFoldCaseAndRenumberGroups(regex) {
LOWdocs/yuidoc-p5-theme/assets/js/reference.js3582 function recombineTagsAndDecorations(job) {
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippet
LOW.github/first-timers.yml1# You can create the issue in a different repo than where the problem is. Just make sure you have installed the bot on t
MEDIUM.github/first-timers.yml5# you can change the labels to suit your needs if "first-timers-only" is not what you are looking for.
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippet
LOWsrc/webgl/p5.Texture.js373 // for webgl 1 we need to check if the texture is power of two
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWtest/js/sinon.js5155 handleRequest: function handleRequest(xhr) {