diff --git a/public/search-indices/en.json b/public/search-indices/en.json index 3c63f82947..f9f75117fe 100644 --- a/public/search-indices/en.json +++ b/public/search-indices/en.json @@ -1 +1 @@ -{"contributor-docs":{"๐ธ Welcome! ๐บ\n":{"relativeUrl":"/contribute/README","description":"interest contributing p5js collaborative project contributions volunteers community contributors appreciates involvement forms acknowledge capacity time financial means participate actively ways expand meaning word contributor experienced developer starting unique perspectives skills experiences enrich encourage involved works includes documentation teaching writing code making art design activism organizing curating imagine [contribute page](https://p5js.org/contribute/) overview contribute [all-contributors](https://github.com/kentcdodds/all-contributors/) specification @all-contributors bot handle adding people READMEmd file add issue PR comment ``` @[your GitHub handle] [your contribution type] find relevant type [here](https://allcontributors.org/docs/en/emoji-key/). automatically list merging docs published [website](https://p5js.org/contribute/), hosted [GitHub repository](https://github.com/processing/p5.js/tree/main/contributor_docs/). Contributing stress free experience levels fixing small typo refactoring complex 3D rendering functionalities things familiar read [community statement](https://p5js.org/about/#community-statement). prioritizing work expands access inclusion accessibility [our statement]/access/ details Started ready start started reasons purpose split roughly categories * Source including Non-source Depending kind section ## [Source contribution]/contributor_guidelines/ typical p5js-website repository follow steps Open Discuss Approved opening Pull Request Make merged Head [this link]/contributor_guidelines/ guided step navigate table contents page skip part refresher stick workflow strictly contributed projects feel hoops jump simple aimed make easy stewards/maintainers meaningfully spending working accepted ensure proposals fixes adequately discussed considered begin save steward/maintainer additional review outright happen result **We learning opportunity** measure success volume received limit long takes complete pace check period inactivity stewards maintainers support information related area general maintenance [steward guidelines]/steward_guidelines/ non-source exhaustively listed involve repositories examples tutorials website planned reach channel email social media [Discourse forum](https://discourse.processing.org/c/p5js/10/), Discord **Create** Inspire sketches designers artists coders programmers showcase creative amazing sketch gallery Dont forget tag @p5xjs [Instagram](https://www.instagram.com/p5xjs/) [X](https://twitter.com/p5xjs/), share **Teach** Teach workshop class friend collaborator Share syllabus video materials **Organize** Host events Curate exhibition Activate local **Donate** open-source made supported dedicated remain restrictions impact life position give back donation Processing Foundation donations directly fund development features improved designed inclusive welcomes background resources level thought dont [let know]mailtohello@p5jsorg participation important contributes lively"},"Our Focus on Access\n":{"relativeUrl":"/contribute/access","description":"{/* commitment access means contributors users library */} [2019 Contributors Conference](https://p5js.org/events/contributors-conference-2019/), p5js made add features increase inclusion accessibility accept feature requests support efforts commit work acknowledging dismantling preventing barriers intersecting[^1] experiences diversity impact participation include alignments gender race ethnicity sexuality language location cetera center marginalized groups continued comfort privileged community collectively exploring meaning learning practice teach choose expansive intersectional coalitionary frameworks part core values outlined [Community Statement](https://p5js.org/about/#community-statement). ## Kinds Increasing focused expanding raw number people making approachable excluded consequence structural oppression extends tools platforms offers includes makeup decision-making actions leadership resist technological culture speed growth competition prioritize intentionality slowness accommodation accountability acts collective care Access equitable * People speak languages English Black Indigenous Color ethnicities Lesbian gay bisexual queer questioning pansexual asexual Trans genderfluid agender intersex two-spirit women genders blind d/Deaf[^2] hard hearing disabled/have disability neurodivergent chronically ill[^3] lower income lack financial cultural capital prior experience open source creative coding diverse educational backgrounds age including children elders variety skill internet religious systematically historically underrepresented intersections thereof recognize complexity terms describe respective identities Language nuanced evolving contested exhaustive list provide attempt accountable commitments ### Examples examples Translating documentation materials decentering linguistic imperialism[^4] Rolando Vargas [Processing Kuna Language](https://medium.com/@ProcessingOrg/culture-as-translation-processing-in-kuna-language-with-rolando-vargas-and-edinson-izquierdo-8079f14851f7/), Felipe Santos Gomes Julia Brasil Katherine Finn Zander Marcela Mancinos [Pรช Cinco Internationalization Popularization Portuguese Speakers](https://medium.com/processing-foundation/translating-p5-js-into-portuguese-for-the-brazilian-community-14b969e77ab1/)) Improving assistive technologies screen readers Katie Lius [Adding Alt Text p5.js](https://medium.com/processing-foundation/adding-alt-text-e2c7684e44f8/), Claire Kearney-Volpes [P5 Accessibility Project](https://medium.com/processing-foundation/p5-accessibility-115d84535fa8/)) [Web Content Guidelines](https://www.w3.org/TR/WCAG21/) working easier follow projects Making error messages helpful supportive tool [p5js Friendly Error System FES]/friendly_error_system/ Mentoring supporting learners communities digital arts Hosting events Day 2022](https://p5js.org/events/p5js-access-day-2022/), [The Web W3C TPAC 2020)](https://medium.com/processing-foundation/p5-js-x-w3c-tpac-bee4c621a053/) access-centered organizing tactics ASL interpretation live captioning accessible venues Supporting creation resources Adekemi Sijuwade-Ukadikes [A11y Syllabus](http://a11ysyllabus.site/)) Publishing reports WCAG guidelines plain focus beginners [OSACC Report](https://github.com/processing/OSACC-p5.js-Access-Report/)) Maintenance accepting effort criteria reflected issue pull request templates affirm intention maintain existing set fix bugs area codebase consistency makes improve Performance increases powerful hardware Support drawing to/reading framebuffers Consistency API Add arcVertex creating arcs beginShape/endShape *** living document continue conversation invite engage describes ideas suggestions share Github emailing [hello@p5jsorg]mailtohello@p5jsorg version Statement revised collaboration Evelyn Masso Nat Decker Bobby Joe Smith III Sammie Veeler Sonia Suhyun Choi Xin Kate Hollenbach Lauren Lee McCarthy Caroline Sinders Qianqian Ye Tristan Jovani Magno Espinoza Tanvi Sharma Tsige Tafesse Sarah Ciston Open Source Arts Conference finalized published Processing Foundation Fellowship [^1] Crenshaw Kimberlรฉ Demarginalizing intersection sex black feminist critique antidiscrimination doctrine theory antiracist politics University Chicago Legal Forum 139โ167 ISSN 0892-5593 Full text Archiveorg [^2] Capital Deaf refers culturally case deaf audiological term identity [^3] differing preferences person-first identity-first Read [Unpacking debate autism community](https://news.northeastern.edu/2018/07/12/unpacking-the-debate-over-person-first-vs-identity-first-language-in-the-autism-community/), [Disability-Affirming Person-First versus Identity-First Language](https://editorstorontoblog.com/2024/02/23/disability-affirming-language-person-first-versus-identity-first-language/), [Person-First Glossary](https://ogs.ny.gov/system/files/documents/2024/02/person-first-and-identity-first-glossary_english_final.pdf). [^4] Linguistic Imperialism ongoing domination/prioritization/imposition expense native due imperial expansion globalization"},"Contributing to the p5.js Reference\n":{"relativeUrl":"/contribute/contributing_to_the_p5js_reference","description":"{/* Write edit p5js reference format */} author code [reference](https://p5js.org/reference/) page website including alongside librarys source specialized comments include description functions signature parameters return usage examples words content function/variables built document show write eventually rendered correctly follow guide editing writing function variable ## quick introduction work lines library ``` /** * Calculates sine angle `sin` geometric tasks creative coding values returned oscillate -1 input increases takes account current angleMode @method sin @param {Number} @return @example draw { background200 = frameCount sint + linex circlex describe'A white ball string oscillates down' } sinx pointx series black dots form wave pattern' cost infinity symbol' */ actual JavaScript defines Reference start `/**` end `*/` line starting `*` block manner interpreted documentation familiar style [JSDoc](https://jsdoc.app/). JSDoc similar tool called [YUIDoc](https://yui.github.io/yuidoc/), syntax comment divided individual elements Lets break section compare [`sin()`](https://p5js.org/reference/p5/sin/). top text markdown HTML concise describe details quirks behaviors typically sections `@` symbol keywords `@method` define case note brackets `` `@param` arguments accepts keyword stored curly `{}` type parameter word rest `@return` generically {type} Description optional add square [name] ### Additional info Constants defined [`constants.js`](https://github.com/processing/p5.js/blob/main/src/core/constants.js), `{Constant}` valid enumerated `either` {Constant} horizAlign horizontal alignment LEFT CENTER types data tag left Chaining method returns parent object skip @chainable signatures multiple options individually [`background()`](https://p5js.org/reference/p5/background/) number Syntax Choose version list template additional tags background {String} colorstring color formats integer rgb rgba percentage 3-digit hex 6-digit [a] alpha gray specifies Multiple create separate difference addition Limit feature unnecessary noise variables looked references constants Variables structure system mouseX position mouse relative canvas top-left corner 2-D -width/2 -height/2 WebGL touch hold recent point @property @readOnly // Move background244 linemouseX describe'horizontal moves x-position' `mouseX` `@property` defining `@readonly` present internally overwritten directly user Adding `mouseX`s talked `@example` run visit [Screenshot red showing section]src/content/contributor-docs/images/reference-screenshotpng relevant const color255 fillc rect15 Sets redValue redc fillredValue rect50 rectangles edges rectangle yellow opening closing insert basic principle good things simple minimal meaningful explain works complicated 100x100 pixels `setup` included automatically wrapped default created wont practices closed separated blank arc50 PI QUARTER_PI OPEN describe'An ellipse arc open' describe'The bottom half arc' execute class `norender` describe'ellipse part automated tests requires interaction `notest` setup createCanvas100 saveCanvasc myCanvas' jpg' external asset files put [/docs/yuidoc-p5-theme/assets](https://github.com/processing/p5.js/tree/main/docs/yuidoc-p5-theme/assets/) folder reuse link assets/filenameext [tint()](https://p5js.org/reference/p5/tint/) Add `describe` Finally required screen-reader accessible Include happening xoff background204 noisexoff width linen height vertical randomly right' noiseScale background0 [web accessibility contributor documentation]/web_accessibility/#describe tools needed situationally `@private` property private marked reason mark internal features `_start` _start calls preload @private p5prototype_start `@module` related file Modules correspond group split Inside module submodules `@submodule` `@for` relationship `p5` effectively `@requires` imported modules depends @module Color @submodule Creating Reading @for p5 @requires core convention subfolder `src/` inside subfolders adding subfolders/files shouldnt `@class` Class constructors `@constructor` classs constructor `p5Color` stores mode level maxes active construction interpret passed object's determine output formatting saturation array ideal RGBA floating normalized calculate closest screen colors levels Screen renderer representations calculated results cached performance floating-point numbers recommended instance @class p5Color @constructor {p5} [pInst] pointer {Number[]|String} vals green blue channel CSS Generating previewing repository set generate preview needing build main command npm docs `docs/reference/datajson` minification render continuous docsdev launch live update time make refresh making running browser `docs/` cases `docs/yuidoc-p5-theme/assets` steps checkout [JSDoc](https://jsdoc.app/) [YUIDoc](https://yui.github.io/yuidoc/). issues [#6519](https://github.com/processing/p5.js/issues/6519/) [#6045](https://github.com/processing/p5.js/issues/6045/). [contributor guidelines]/contributor_guidelines/ place"},"Contributor Guidelines\n":{"relativeUrl":"/contribute/contributor_guidelines","description":"{/* Essential information contributing p5js GitHub */} contributor guidelines document contributors contribute code refresh memories technical steps contributions repositories writing tutorials planning classes organizing events relevant pages Stewards maintainers find [steward guidelines]/steward_guidelines/ helpful reviewing issues pull requests long comprehensive signpost points utilize table contents sections Feel free skip planned **If start section step-by-step setup development process Quick Started Developers section** Table Contents * [All issues]#all-about-issues [What issues]#what-are-issues [Issue templates]#issue-templates [Found bug]#found-a-bug [Existing Feature Enhancement]#existing-feature-enhancement [New Request]#new-feature-request [Discussion]#discussion [Working codebase]#working-on-the-p5js-codebase [Quick Developers]#quick-get-started-for-developers [Using Github edit functionality]#using-the-github-edit-functionality [Forking working fork]#forking-p5js-and-working-from-your-fork Desktop]#using-github-desktop git command line interface]#using-the-git-command-line-interface [Codebase breakdown]#codebase-breakdown [Build setup]#build-setup [Git workflow]#git-workflow [Source code]#source-code [Unit tests]#unit-tests [Inline documentation]#inline-documentation [Accessibility]#accessibility [Code standard]#code-standard [Software Design principles]#software-design-principles [Pull requests]#pull-requests [Creating request]#creating-a-pull-request request information]#pull-request-information [Title]#title [Resolves]#resolves [Changes]#changes [Screenshots change]#screenshots-of-the-change [PR Checklist]#pr-checklist [Rebase resolve conflicts]#rebase-and-resolve-conflicts [Discuss amend]#discuss-and-amend *** majority activity repo short great place contribution journey ## [A cropped screenshot library repository showing top corner red box drawn surrounding Issues tab]src/content/contributor-docs/images/issues-tabpng Issue generic post aims describe issue bug report add feature discussion works related Comments added account including bots discuss topics project opened wide variety reasons source Topics debugging inviting collaborators unrelated discussed [forum](https://discourse.processing.com) platforms [Discord](https://discord.gg/SHQ8dH25r9/). created easy-to-use templates aid deciding topic posted p5js's make easier stewards understand review file receive reply faster [Screenshot title Warning logged Safari filter shader 2D mode #6597]src/content/contributor-docs/images/github-issuepng simply tab click button side presented options corresponds template redirects question recommend choosing option ensure receives attention promptly [Cropped repository's page green highlighted it]src/content/contributor-docs/images/new-issuepng ### bug\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Bug\\&projects=\\&template=found-a-bug.yml) encounter incorrect behavior behaving documentation [this template](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Bug\\&projects=\\&template=found-a-bug.yml). note debug sketch problem [Discourse forum](https://discourse.processing.org) fields fill *Most sub-area p5js* - helps identify respond automatically tagging [labels](https://github.com/processing/p5.js/labels/). *p5js version* version number `` tag link p5js/p5minjs similar `142` numbers separated periods *Web browser isolate behaviors browsers follow instructions Chrome Firefox address bar navigate `chrome//version` `aboutsupport` menu item choose *Operating System* include OS `macOS 125` bugs stem *Steps reproduce this* arguably important share list detailed replicating Sharing basic sample demonstrates replicate facing formulating solution **Replication key** aimed provide sketch's environment solutions **Be avoid statements** image function work specific display loaded GIF size things expect expected actual fix reported description simple suggestion support **You approved implementation** proposed accepted approach filed fixing closed approval reports [area steward maintainer](https://github.com/processing/p5.js#stewards) begin Enhancement\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Enhancement\\&projects=\\&template=existing-feature-enhancement.yml) propose functionality existing features functions constants rendering define color `color` accept colors *Increasing Access* required field insert statement adding enhancement [increase access]/access/ people historically marginalized creative arts technology **No proposals this** offer members community argument addresses accessibility *Feature details* proposal good includes clear case needed guarantee Request\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Feature+Request\\&projects=\\&template=feature-request.yml) drawing native HTML elements `createTable` overlap cases whichever feel form identical Existing Enhancement [previous section]#existing-feature-enhancement details maintainers](https://github.com/processing/p5.js#stewards) [\"Discussion\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Discussion\\&projects=\\&template=discussion.yml) filing fit fitting rare practice adopt Web API [new request]#new-feature-request additional [feature enchancement]#existing-feature-enchancement announcement local coding event forum contacting Processing Foundation publicity opening Labels panel panels labels area bare minimum text link](https://github.com/processing/p5.js/issues/6517/) [**โฌ back top**]#contributor-guidelines Working codebase Prerequisites proceed minimally familiar nodejs v18 Introduction implementation ready Similarly joined discussions original author volunteer submit assign jump queue PR willingness assigned prioritize serve order accepting closed** weeks individual leave polite comment progress generally pace basis takes time sensitive directly explain deadlines deadline finish reassigned exception rule Generally confident hard limit spend trouble aspect hesitate guide check README **within week** questions updates week reassign confirm work/contribute p5js'๐ธ developer improving sub-projects [Friendly Error Systems]/friendly_error_system/ [Create fork p5.js.](https://docs.github.com/en/get-started/quickstart/fork-a-repo/) [Clone computer.](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository/) [Add upstream command](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork/): ``` remote https://github.com/processing/p5.js Make machine [NodeJs](https://nodejs.org/en/download/) installed node -v Install dependencies npm ci Create branch `main` descriptive checkout -b [branch_name] making frequently run tests ensures broken test Add unit commit create Request]#pull-requests viewing web interface content pencil icon convenient provided simplifies processes covering quick edits view src/color/color\\_conversionjs arrow pointing image]src/content/contributor-docs/images/edit-filepng recommended main complex built tested locally fluent compared editing Forking step meaning open purpose means creating copy storing Fork labeled 593k outlined dark orange]src/content/contributor-docs/images/forkpng direct write access official Desktop program lets graphical user typing commands terminal switch [download install Desktop.](https://desktop.github.com/) application sign signed projects Select named `yourUsername/p5js` blue Clone change default settings continue [The signing half screen lists bottom right]src/content/contributor-docs/images/github-desktop-initpng cloned plan parent Continue cloning asks purposes]src/content/contributor-docs/images/github-desktop-forkpng `git` fork's URL clicking Code `https://github.com/limzykenneth/p5.js.git`. files landing orange outline]src/content/contributor-docs/images/code-buttonpng clone download Run folder store [git_url] Replace `[git_url]` copied minutes depending speed internet connection coffee finished downloaded `p5js` preferred editor Codebase breakdown key folders `src` eventually combined final p5minjs lives [`test`]/unit_testing/ testing examples `tasks` custom build `Gruntfilejs` configuration `contributor_docs` configurations kinds modifications Build set Assuming downloads Pretty Git workflow parts subsections building scratch complete errors running `lib/` `p5minjs` starting implies branched commits affecting branches Branches enable multiple isolated confidence mess affect Current Branch header window enter purposes describing selection entering exist appears]src/content/contributor-docs/images/github-desktop-create-branchpng `git branch_name` replacing `branch_name` separate `npm test` Running breaking moving committing made collection saved essentially records current state arise general aim lump big guideline completed subtask sentence app show changed left sidebar Type high-level elaborate blank Click Commit finalize circled lower window]src/content/contributor-docs/images/github-desktop-commitpng Check status listed [restore](https://git-scm.com/docs/git-restore/) intended diff intend Stage -m [your_commit_message] `[your_commit_message]` replaced message avoiding statements `Documentation 1` `Add circle function` Repeat periodically Source visit documented reference website Notice typos src/core/shape/2d\\_primitivesjs Part underline it]src/content/contributor-docs/images/reference-code-linkpng Unit [here]/unit_testing/ Note implementations included Inline inline [here]/contributing_to_the_p5js_reference/ Accessibility [here]/web_accessibility/ Friendly System [here]/friendly_error_system/ standard style enforced [ESLlint](https://eslint.org/). pass linting easiest ESLint plugin error highlighting popular editors Software principles mind design priorities differ coming familiarize **Access** foremost decisions increase groups Read **Beginner Friendly** friendly beginner coders offering low barrier interactive visual cutting-edge HTML5/Canvas/DOM APIs **Educational** focused curriculum supports educational supporting class curricula introduce core engaging **JavaScript community** practices accessible beginners modeling proper JavaScript patterns usage abstracting open-source wider creation dissemination **Processing inspired language transition Java easy Pull applicable committed preparing merged formally merge forked history Creating push uploading changes[A online red]src/content/contributor-docs/images/publish-branchpng uploaded prompting Clicking preview Press Request pushing items pane Review marked circle]src/content/contributor-docs/images/preview-pull-requestpng -u origin dropdown Contribute Open response request]src/content/contributor-docs/images/new-branchpng yellow call action Compare request]src/content/contributor-docs/images/recent-pushespng prepopulated template]src/content/contributor-docs/images/new-prpng Title briefly Resolves `Resolves #[Add here]` replace `[Add addressing/fixing [above]#all-about-issues #1234` close `Resolves` `Addresses` Include **Important** \\~10 \\~100 lines specifically previously Files Changed `packagejson` `package-lockjson` formatting Screenshots optional circumstances renders visuals canvas Checklist checklist tick `[ ]` `[x]` Rebase conflicts Fix shaders rectMode applied #6603]src/content/contributor-docs/images/opened-prpng inspect pay match times Commits base resolved true [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing/) Conflicts recently resolving Basic instruction Resolve button[A conflicting filenames highlighted]src/content/contributor-docs/images/resolve-conflictspng shown `>>>>>>` `=======` shows GitHub's conflict resolution markers highlighted]src/content/contributor-docs/images/conflicts-interfacepng Remove Mark addressed remove mark upper enabled]src/content/contributor-docs/images/mark-as-resolvedpng enabled]src/content/contributor-docs/images/commit-mergepng complicated prefer manual method https://github.com/processing/p5.js` fetch upstream` rebase upstream/main` lib/p5js lib/p5minjs --continue push` Discuss amend maintainer days patient meantime reviewed happen hurray panic perfectly normal requested [same before]#git-workflow pushed Leave reviewer"},"Creating an Addon Library\n":{"relativeUrl":"/contribute/creating_libraries","description":"{/* Extend p5js functionalities addon library */} JavaScript code extends adds core functionality wide range doesnt aim cover Web API Addon libraries extend needing incorporate features guide steps creating loads simple CSV file implementing `loadCSV` function examples create * Provide simplified interface [p5.ble.js](https://github.com/ITPNYU/p5.ble.js) [p5.serialserver](https://github.com/p5-serial/p5.serialserver) Implement specialized algorithms [p5.pattern](https://github.com/SYM380/p5.pattern) [p5.mapper](https://github.com/jdeboi/p5.mapper) Test widely browsers [p5.webserial](https://github.com/gohai/p5.webserial/) [p5.joystick](https://github.com/Vamoss/p5.joystick) alternative implementations existing [nรบmero](https://github.com/nickmcintyre/numero/) [p5.cmyk.js](https://github.com/jtnimoy/p5.cmyk.js) ## Prerequisites foundation Prototype-based object orientation Javascript Step lets blank call p5loadcsvjs main adding methods p5prototype p5 add method ```js p5prototypeloadCSV = function{ consolelog'I load soon' } ``` includes project global `createCanvas` `background` classes as` p5Element` or` p5Graphics` prototypes `p5Elementprototype` extended `shout` exclamation mark end elements HTML p5Elementprototypeshout { thiseltinnerHTML += ' attached `p5prototype` method` loadCSV` logs message console Run sketch the` ` tag setup createCanvas400 loadCSV ```html tags Running print single accept argument defined parameter filename consolelog`I ${filename} soon` test // Prints datacsv loadCSV'datacsv' access functions variables `circle` `PI` `this` `hour` `minute` customize give information called keyword attach Dont arrow syntax => created refer window === true refers consolelogthis ${thishour}${thisminute}` looked handy implement algorithm perform drawings previous started explore source module written inside details work hood utilize advanced made files asynchronous p5jss loading `loadJSON` `loadStrings` make functionfilename{ result [] fetchfilename thenres restext thendata datasplit'\\n'forEachline resultpushlinesplit'' return creates empty array variable `result` Fetch parse split line rows row words run pass path log output setup{ myCSV printmyCSV notice logging data reason `preload` nature makes returned `fetch` finish fetching Simply moving case solve problem preload{ prints told addons wait `registerPreloadMethod` filename{ this_decrementPreload p5prototyperegisterPreloadMethod'loadCSV' Note things `p5prototyperegisterPreloadMethod` passing string parsed pushed `this_decrementPreload` `myCSV` populated due inherent limitations technique type overwritten body set properties push reassign ``result datasplit`\\n``` bit magic happening firstly additional fetchcode> running related objects passed reference types strings numbers means points original `let []` contrast returning copied lose relation behavior modify long dont separate registerPreloadMethod this\\_decrementPreload internal list track detects counter larger waiting defer `setup` starting `draw` loop Loading decrement calling effectively signaling complete reaches loadings start expected callback support `p5prototypes` major feature action hooks Action lifetime runs clean removed `remove` enable order execution `init` โ Called initialized initialization `p5` constructor executed mode automatically assigned `window` active `beforePreload` `afterPreload` `beforeSetup` `afterSetup` `pre` beginning repeatedly `post` hook snippet p5prototypedoRemoveStuff cleanup p5prototyperegisterMethodremove p5prototypesetDefaultBackground Set background pink default thisbackground#ed225d p5prototyperegisterMethodpre unregister longer needed p5prototypeunregisterMethod'remove' extra tips authoring **Must extend** **or prototype p5\\* classes** offer constants instantiated mix offering convenience **Naming conventions** **Don't overwrite properties** extending careful names intend replace **p5js modes instance mode** bound allowing users prefix native `Math` `console` shouldnt named **Class use** `PascalCase`** `camelCase`**** Classes prefixed namespace **do include the** **prefix class names** non-prefixed p5prototypep5MyClass p5prototypemyAddonMyClass p5prototypemyMethod filenames word lowercase** distinguish p5soundjs encouraged follow format naming **Packaging** **Create JS library** easy projects suggest [bundler](https://rollupjs.org/) provide options normal sketching/debugging [minified](https://terser.org/) version faster **Contributed hosted documented maintained creators** GitHub website fully open **Documentation key** documentation find contributed wont included similar [library overview page](https://p5js.org/reference/p5.sound), [class page](https://p5js.org/reference/p5/p5.Vector), [method page](https://p5js.org/reference/p5/arc/). **Examples great too** show people online download anything[ ](http://jsfiddle.net/) collection web editor showcase works **Submit ready distribution youd [p5js.org/libraries](https://p5js.org/libraries/) page submit pull request repository [this instruction](https://github.com/processing/p5.js-website/blob/main/docs/contributing_libraries.md)!"},"Documentation Style Guide\n":{"relativeUrl":"/contribute/documentation_style_guide","description":"{/* reference give documentation consistent voice */} guidelines writing p5js document remix resources * Ruby Rails [API Documentation Guidelines](https://guides.rubyonrails.org/api_documentation_guidelines.html) CC BY-SA WordPress [accessibility](https://make.wordpress.org/docs/style-guide/general-guidelines/accessibility/) [inclusivity](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/) CC0 Airbnb [JavaScript Style Guide](https://airbnb.io/javascript/) MIT community large diverse people learn code subset students Kโ12 classes reading guide write effective inclusive accessible prose purposes simple samples ## Table Contents ### Writing [YUIDoc]#yuidoc [English]#english [Oxford Comma]#oxford-comma [Wording]#wording [Unbiased Documentation]#unbiased-documentation [Accessibility Disability]#accessibility-and-disability Code [Code Samples]#code-samples [Comments]#comments [Whitespace]#whitespace [Semicolons]#semicolons [Naming Conventions]#naming-conventions [Variables]#variables [Strings]#strings [Boolean Operators]#boolean-operators [Conditionals]#conditionals [Iteration]#iteration [Objects]#objects [Arrays]#arrays [Functions]#functions [Arrow Functions]#arrow-functions [Chaining]#chaining [Classes]#classes [Assets]#assets YUIDoc generate API docs navigate root directory run `npm install` execute ``` $ npm grunt yuidev output docs/reference Refer [inline guide]/contributing_to_the_p5js_reference/ information **[โฌ back top]#table-of-contents** English American color center modularize [a list British spelling differences here](https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences/). Oxford Comma comma](https://en.wikipedia.org/wiki/Serial_comma/) red white blue Wording Write declarative sentences Brevity point present tense Returns object Returned return Start comments upper case Follow regular punctuation rules ```javascript // Draws fractal Julia set function drawFractalc radius maxIter { } Communicate current things explicitly implicitly idioms recommended Reorder sections emphasize favored approaches needed model practices approachable beginners comprehensive Explore edge cases combination arguments bugs beginner's Spell names correctly CSS HTML JavaScript WebGL doubt refer authoritative source official Unbiased bias kind person documenting demanding/sensitive topics time educate Ensure doesnt hurt offend unintentionally unbiased gender identity expression sexual orientation race ethnicity language neuro-type size disability class religion culture subculture political opinion age skill level occupation background Make examples Avoid politicized content remain neutral accessibility insult harm Dont make generalizations countries cultures includes positive prejudiced discriminatory minority communities terms related historical events Prefer wordings avoid yous declare variable `let` style variables **Pronouns** | Recommended ----------- ------------------ Accessibility Disability Emphasize reader underlining inconveniences disabled [approved terminology](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/#accessibility-terminology) specific disabilities Maintain uniform structure important points stylistically visually screen test [List readers](https://en.wikipedia.org/wiki/List_of_screen_readers/). multi-platform types devices operating systems Create input gesture based controllers mice keyboards ableist pragmatic approach semantics add purely sake matches element group links tables tabular formats span tags rowspan colspan Tables prove difficult readers **Accessibility terminology** terminology adapted [Writing documentation](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/#accessibility-terminology). people-first CDC's [Communicating People Disabilities](https://www.cdc.gov/ncbddd/disabilityandhealth/materials/factsheets/fs-communicating-with-people.html). --------------------------------------------------------------- ------------------------------------------------------------------ handicapped differently abled challenged abnormal normal healthy able-bodied \\[disability] victim suffering affected stricken unable speak synthetic speech dumb mute deaf low-hearing hearing-impaired blind low-vision vision-impaired visually-challenged cognitive developmental mentally-challenged slow-learner limited mobility physical crippled Samples Choose meaningful cover basics gotchas advanced syntax explain feature works draw circles circle convey idea follow Comments `//` single line Place newline subject comment Put empty block Bad magicWord = Please' Remember Good keyIsPressed === true thing1 note thing2 space easier read //Remember multiline /** */ //Bad /* Whitespace Indent blocks spaces setup โโโโcreateCanvas400 โcreateCanvas400 โโcreateCanvas400 leading brace setup{ createCanvas400 opening parenthesis control statements `if` `for` argument ifkeyIsPressed doStuff createCanvas operators y=x+5 + Semicolons Yep > JavaScript's [automatic semicolon insertion](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion) lead subtle Naming Conventions letter descriptive fx vectorFieldx objects functions instances camelCase OBJEcttsssss {} this_is_my_object thisIsMyObject PascalCase player constructorname thisname Player trailing underscores private properties methods Spy constructorsecret this_secret secret thissecret Variables `var` declared confusing scoping reasonable circlex var throws ReferenceError `const` reason reassigned sketches helpful default flower ๐ธ' const declaration assignment declarations positions getPositions startSearch dragonball z' Assign place scoped - unnecessary search getCharactername default' character charactersfindc => cname false unary increments decrements `++` `--` Unary increment decrement insertion](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion). silent errors incrementing decrementing values expressive update num `+= 1` `num++` num++ --num += -= Strings quotes `''` strings Hilma af Klint template literals interpolation newlines `Hilma Klint` Klint' concatenate characters Broken hard searchable essay \\ simplest convenient definitions' concatenation Template concise provide proper string features Dave' textname conversation serve purpose anymore Goodbye text`${name} Goodbye` unnecessarily escape Backslashes readability bad \\'this\\ \\i\\s \\quoted\\' good Air cool' Boolean Operators `===` `==` `=` shortcuts booleans understand mouseIsPressed == ' collectionlength `switch` parentheses mixing exceptions arithmetic `+` `-` `**` avoids huh && || / Conditionals braces circlemouseX mouseY `else` preceding closing thing3 executes `return` statement mouseIsOnLeft mouseX number letters abc' selection conditionals refrigeratorIsRunning goCatchIt Iteration `while` `do-while` loops iterate fixed times numPetals Pure side effects `forEach` `map` `every` `filter` `find` `findIndex` `reduce` `some` `` arrays `Objectkeys` `Objectvalues` `Objectentries` produce iterating diameters [50 10] circle0 Objects literal creation ball Object quote invalid identifiers improves highlighting engines optimizing performance secretObject x' y' top-secret' classified' dot notation access turtle Leonardo' dodgerblue' weapon ๐ก๏ธ' food ๐' turtleName turtle['name'] turtlename bracket `[]` getPropprop turtle[prop] getProp'name' commas mathematician firstName Ada lastName Lovelace Ada' Lovelace' Add comma artist Lauren' McCarthy McCarthy' Arrays array images Array [] [Array#push](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/push/) direct items lyrics lyrics[lyricslength] rough edges smooth' lyricspush'Little `slice` method copy numbersCopy Function foo parameter mutate createBalldiameter diameter put parameters drawSpiralangle length drawSpirallength angle Arrow Functions arrow anonymous Callbacks common creates version context `this` complex rewrite loadImage'assets/moonwalkjpg' img imageimg preload Complex preprocessing processImage processImageimg implicit Omit body returns [1 3]mapnumber squared ** `${number} ${squared}` ${number 2}` include reduces changing Chaining individual calls chaining accommodate users familiar concept fill0 strokeWeight6 textSize20 fill0strokeWeight6textSize20 Classes `class` manipulating `prototype` directly exception explaining [create libraries]/creating_libraries/ Moverx thisx thisy thisradius Moverprototypeupdate Moverprototyperender circlethisx Mover constructorx render `extends` inheritance RandomMover extends random-1 custom `toString` toString `Mover ${thisx} ${thisy}` constructor delegates parent Dot DragonBall Ball superx numStars thisnumStars duplicate members Duplicate member prefer duplicates means bug thisxspeed thisyspeed reset Assets load assets folder called models project organization required website folders online Examples [src/data/examples/assets](https://github.com/processing/p5.js-website/tree/main/src/data/examples/) Reference Pages [src/templates/pages/reference/assets](https://github.com/processing/p5.js-website/tree/main/src/templates/pages/reference/assets/) Learn [src/assets/learn](https://github.com/processing/p5.js-website/tree/main/src/assets/learn/) loadImage'moonwalkjpg'"},"Friendly Errors System Contribution Guide\n":{"relativeUrl":"/contribute/fes_contribution_guide","description":"{/* overview Friendly Error System codebase reference developers */} `core/friendly_errors` folder code p5js Systems FES responsible generating messages Errors starting `๐ธ says` console supplementing default browser-generated error houses functions types errors gather locations including handling file load autoplay parameter checking library custom implemented contributors document starts FES's main section find full information description syntax parameters location individual part notes previous Development Notes outlining limitations future directions [Development Notes]#-development-notes contributing ## Overview * `p5_friendlyError` formats prints `_report` input message `p5_validateParameters` validate received values wrong type missing `p5_friendlyFileLoadError` guide users related `p5_friendlyAutoplayError` browser's policy diagram outlines connect [A files uses]src/content/contributor-docs/images/fessvg Individual `fes_corejs` `_friendlyError` `_friendlyAutoplayError` helper formatting testing `validate_paramsjs` `_validateParameters` validation `file_errorsjs` `_friendlyFileLoadError `and `browser_errorsjs` list browser generated global class `fesglobalErrors` `stacktracejs` parse stack borrowed [stacktrace.js](https://github.com/stacktracejs/stacktrace.js)). ๐ Reference Functions ### #### Description primary function directly output **Note** `p5_fesLogger` set running tests `consolelog` Mocha case `_fesLogger` pass string tested asserted Syntax ```js _reportmessage func color ``` Parameters @param {String} Message printed [func] {Number|String} [color] CSS `[func]` append link end `[color]` property current version Location core/friendly\\_errors/fes\\_corejs creates p5 call offer `_friendlyFileLoadError` inside `image/loading_displaying/loadImage` `io/files/loadFont` `io/files/loadTable` `io/files/loadJSON` `io/files/loadStrings` `io/files/loadXML` `io/files/loadBytes` sequence _friendlyFileLoadError _report _friendlyFileLoadErrorerrorType filePath {Number} errorType Number Path caused `errorType` refers specific enumerated `core/friendly_errors/file_errorsjs` File categorized distinct cases categorization designed facilitate delivery precise informative scenarios read data font show large Examples Loading /// myFont preload { = loadFont'assets/OpenSans-Regularttf' } setup fill'#ED225D' textFontmyFont textSize36 text'p5*js' draw {} generate addition browsers unsupported ๐ธ problem loading path assets/OpenSans-Regularttf correct hosting online local server + info https://github.com/processing/p5.js/wiki/Local-server /friendly\\_errors/file\\_errorsjs called internally linked playing media video due calls `translator` print key `fesautoplay` keys `translations/en/translationjson` runs matching `docs/reference/datajson` created function's inline documentation checks number `fesfriendlyParamError*` `p5_validateParametersFUNCT_NAME ARGUMENTS` `p5prototype_validateParametersFUNCT_NAME requires recommended static general purposes remained debugging unit `accessibility/outputs` `color/creating_reading` `color/setting` `core/environment` `core/rendering` `core/shape/2d_primitives` `core/shape/attributes` `core/shape/curves` `core/shape/vertex` `core/transform` `data/p5TypedDict` `dom/dom` `events/acceleration` `events/keyboard` `image/image` `image/loading_displaying` `image/p5Image` `image/pixel` `io/files` `math/calculation` `math/random` `typography/attributes` `typography/loading_displaying` `utilities/string_functions` `webgl/3d_primitives` `webgl/interaction` `webgl/light` `webgl/loading` `webgl/material` `webgl/p5Camera` validateParameters buildArgTypeCache addType lookupParamDoc scoreOverload testParamTypes testParamType getOverloadErrors _friendlyParamError ValidationError report friendlyWelcome _validateParametersfunc args {Array} User arguments Missing Parameter arc1 [sketchjs line 13] arc expecting (https://p5js.org/reference/p5/arc) mismatch 1' MathPI 14] core/friendly\\_errors/validate\\_paramsjs `fesErrorMonitor` monitors guess source provide additional guidance includes trace sequential program leading point thrown Stack traces determining internal user `fesglobalErrors*` comprehensive `fesglobalErrorssyntax*` `fesglobalErrorsreference*` `fesglobalErrorstype*` `processStack` `feswrongPreload` `feslibraryError` stacktrace `printFriendlyStack` `fesglobalErrorsstackTop` `fesglobalErrorsstackSubseq` spell-check `handleMisspelling` `fesmisspelling` `_fesErrorMonitor` automatically triggered `error` events unhandled promise rejections `unhandledrejection` `window` manually catch block someCode catcherr p5_fesErrorMonitorerr works subset `ReferenceError` `SyntaxError` `TypeError` complete supported roughly _fesErrorMonitor processStack printFriendlyError ReferenceError _handleMisspelling computeEditDistance printFriendlyStack SyntaxError TypeError fesErrorMonitorevent {*} event Internal // background background200 8] properties undefined reading background' occurred stated loadImage loadJSON loadFont loadStrings (https://p5js.org/reference/p5/preload) cnv createCanvas200 cnvmouseClicked 12] bind' mouseClicked issue passed (https://p5js.org/reference/p5/mouseClicked) Scope += 5] defined scope check spelling letter-casing JavaScript case-sensitive https://p5js.org/examples/data-variable-scope.html Spelling xolor1 2] accidentally written xolor (https://p5js.org/reference/p5/color) `checkForUserDefinedFunctions` Checks user-defined `setup` `draw` `mouseMoved` capitalization mistake `fescheckUserDefinedFns` checkForUserDefinedFunctionscontext context Current Set window mode instance loadImage'myimagepng' preLoad intentional /friendly\\_errors/fes\\_corejs `helpForMisusedAtTopLevelCode` `fesmisusedTopLevel` err {Boolean} log false ๐ Limitations False Positive versus Negative Cases encounter positives negatives positive alarm warns fine hand negative doesnt alert important identify fix save time make things confusing fixing real problems easier less-than-ideal situations design chosen eliminate choose avoid incorrect warnings distract mislead Related `fesGlobalErrors` detect overwritten variables declared `const` `var` Variables undetected limitation `let` handles variable instantiation resolved functionality web editor details pull request \\[[#4730](https://github.com/processing/p5.js/pull/4730/)]. Performance Issue enabled disabled `p5minjs` prevent slowing process error-checking system significantly slow \\~10x [Friendly performance test](https://github.com/processing/p5.js-website/tree/main/src/assets/learn/performance/code/friendly-error-system/). disable top sketch p5disableFriendlyErrors true disables stuff drawing note action features reduce argument impact providing detailed fails attempt override space Thoughts Future Work Decouple \\[[#5629](https://github.com/processing/p5.js/issues/5629/)] Eliminate Identify Add test coverage - intuitive clear translatable discussion internationalization i18n Book](https://almchung.github.io/p5-fes-i18n-book/en/). common generalize `bezierVertex` `quadraticVertex` required object initiated `nf` `nfc` `nfp` `nfs` Conclusion README outlined structure explains organization purpose making navigate understand Additionally provided included discuss potential areas improvement development excited share insights community Survey conducted 2021-2022 findings [21-22 Report Comic](https://almchung.github.io/p5jsFESsurvey/) Full Report](https://observablehq.com/@almchung/p5-fes-21-survey/). TODO uncomment publish article ways add methods recommend [How Messages]#/ takes adding step-by-step"},"๐ธ p5.js Friendly Error System (FES)\n":{"relativeUrl":"/contribute/friendly_error_system","description":"{/* overview system p5js provide errors friendly language */} ## Overview Friendly Error System FES ๐ธ aims programmers providing error messages simple supplements browser's console adding alternative description links helpful references prints window [p5js Web Editor] browser JavaScript single minified file p5 p5minjs omits https://editor.p5js.org/ Lowering Barriers Debugging design tool match people lower barriers debugging exception evaluate existing hear directly ran community survey gather feedback future wishes Errors insights members contributors results summary comic full report * [21-22 Survey Report Comic] Full Report] https://almchung.github.io/p5jsFESsurvey/ https://observablehq.com/@almchung/p5-fes-21-survey Writing Messages contribute library writing translating part [internationalization] effort generate content [i18next]-based `translator` function dynamic message generation languages including English - default contributions world ๐ https://github.com/processing/p5.js/blob/main/contributor_docs/archive/internationalization.md [i18next] https://www.i18next.com/ #### Practices writers prioritize lowering barrier understanding increasing accessibility process [Friendly i18n Book] discusses challenges practices cross-cultural context points book Understand audience make assumptions learn inclusive strive bias harm Adhere Code Conduct] sentences breaking sentence smaller blocks utilizing i18next's [interpolation] feature Prioritize communication great experience Avoid figures speech Introduce technical concept term time consistency link external resource written beginner-friendly plenty short practical examples https://almchung.github.io/p5-fes-i18n-book/ https://www.i18next.com/translation-function/interpolation https://github.com/processing/p5.js/blob/main/CODE_OF_CONDUCT.md#p5js-code-of-conduct [expert blind spots] https://tilt.colostate.edu/TipsAndGuides/Tip/181 public project separate [repo] https://github.com/almchung/p5-fes-i18n-book Location Translation Files based i18next imported `src/core/internationalizationjs` generates text data JSON translation ``` translations/{{detected locale code default=en}}/translationjson detected Korean designator `ko` read translated `translations/ko/translationjson` assemble final include regional information `es-PE` Spanish Peru Structure `translationjson` [format i18next](https://www.i18next.com/misc/json-format/). basic format file's item key double quotation marks `` closed curly brackets `{}` ```json { } ASCII logo saved \\n /\\\\| |/\\\\ \\\\ ` / \\\\/|_|\\\\/ \\n\\n supports interpolation pass variable dynamically `{{}}` set placeholder greeting {{who}} `greeting` `who` ```javascript translator'greeting' result generated `fes`'s `fileLoadError` demonstrates image problem loading {{suggestion}} call pre-generated `suggestion` translator'fesfileLoadErrorimage' suggestion Add Modify [internationalization doc] step-by-step guide modifying files Understanding Works section give displays detailed functions [FES Reference + Dev Notes] https://github.com/processing/p5.js/tree/main/src/core/friendly_errors#fes-reference-and-notes-from-developers calls multiple locations situations throws user API custom cases benefit find core components inside `src/core/friendly_errors` `translations/` Message Generators responsible catching generating [`_friendlyFileLoadError`] catches [`_validateParameters`] checks input parameters inline documents \\[`_fesErrorMonitor`] handles global reference [Dev /fes_contribution_guidemd#_friendlyerror /fes_contribution_guidemd#_validateparameters [`_fesErrorMontitor`] /fes_contribution_guidemd#feserrormonitor /fes_contribution_guidemd#-development-notes Displayer `fes_corejs/_friendlyError` p5_friendlyError translator'fesglobalErrorstypenotfunc' translationObj called Turning [disable performance] `p5disableFriendlyErrors` turn `true` p5disableFriendlyErrors = true setup createCanvas100 automatically https://github.com/processing/p5.js/wiki/Optimizing-p5.js-Code-for-Performance#disable-the-friendly-error-system-fes"},"How to add Friendly Error Messages\n":{"relativeUrl":"/contribute/how-to-add-friendly-error-messages","description":"{/* support Friendly Errors method Follow step-by-step guide */} walks steps write Error FE messages System FES ๐ธ supports custom error handling outputs logs user dynamically generated [i18next](https://www.i18next.com/)-based `translator` p5js provide translations matching environment ## โ๏ธNo `p5minjs` * integrated \\[i18next] codebase usage limited unminified build minified version includes basic framework internationalization code actual implementation Browserify task `src/core/initjs` specific logic avoid loading setting result adding affect size Prerequisites begin identify cases describes case requires number types arguments [โ Adding Parameter Validation FES]#-adding-parameter-validation-using-fes involves type file catch errors files [๐ฅ Adding File Loading FES]#-handling-file-loading-error-messages-with-fes written detects occurred show [๐ Library Messages FES]#-adding-library-error-messages-using-fes โ parameter validation ### Step โ Double-check inline documentation ensure [inline documentation]/contributing_to_the_p5js_reference/ full list parameters `circle` starts description ``` /** Draws circle canvas round shape point edge distance center default set location sets shape's width height diameter origin changed ellipseMode function @method @param {Number} x-coordinate y-coordinate @chainable @example circle30 describe'A white black outline middle gray canvas' */ validate Call `p5_validateParameters` back call `validate_params` format `p5_validateParameters'[name method]' arguments` produce message ```js p5_validateParameters'circle' called provided match expectations line p5prototypecircle = { const args Arrayprototypeslicecallarguments argspusharguments[2] return this_renderEllipseargs } Build test typical action rebuild `p5js` `npm run build` find `/lib/empty-example/indexhtml` replace script `/p5minjs` `/p5js` Note `lib/p5minjs` doesnt `lib/p5js` edit `/lib/empty-example/sketchjs` Missing Wrong expressions // circle100 required Notice successfully draws hello' generate [sketchjs 9] expecting received (https://p5js.org/reference/p5/circle) 14] 12] Number string Congratulations ๐ ๐ฅ Handling Check load divided distinct helpful occurs lets separate situations read data font large found top `core/friendly_errors/file_errorsjs` add `fileLoadErrorCases` existing applied string-based corresponds `case 3` translator'fesfileLoadErrorstrings' suggestion loadStrings scenario remember skip ahead [**Step 4**]#step-4 2**]#step-2 create Discuss issue board ticket discuss creating confirm duplicate Write short paragraph describing loads [issue board](https://github.com/processing/p5.js/issues/), press Issue button choose ๐ก Existing Feature Enhancement option empty form Add title lines \\[a high-level case] Increasing access section enter prepared beginning step check box sub-area question Lastly enhancement details detailing confirming maintainers ready Inside `fileLoadErrorCases`s `switch` statement end {{next number}} translator'fesfileLoadError{{tag name}}' {{name method}} double angle brackets `{{}}` instance previous start 12` braces final `p5_friendlyFileLoadError` `p5_friendlyFileLoadError[case number] [file path]` inside statements `loadStrings` [`httpDo.call()`](https://p5js.org/reference/p5/httpDo/) callback executed p5prototypehttpDocall args[0] GET' text' => [ omitted ] functionerr p5_friendlyFileLoadError3 calls `p5_friendlyFileLoadError3 [the argument problem text checking path assets/wrongnametxt correct hosting online running local server + info https://github.com/processing/p5.js/wiki/Local-server implementing ๐ detect users applicable providing fail-safes values missing Identify [This MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Control_flow_and_error_handling/) good overview options control flow JavaScripts native constructs \\\\ `p5_friendlyError` `p5_friendlyError'[custom message]' [method name]'` Replace including square `bezierVertex` p5_friendlyError vertex calling bezierVertex' bezierVertex 19] library stated passed (https://p5js.org/reference/p5/bezierVertex) โ๏ธ Writing international audiences writers prioritize lowering barrier understanding increasing accessibility debugging process 7] shown Korean browser `ko-KR` locale ์ค7] ์ต์ 3๊ฐ์ ์ธ์argument๋ฅผ ๋ฐ๋ ํจ์ circle์ ์ธ์๊ฐ 1๊ฐ๋ง ์ ๋ ฅ๋์์ต๋๋ค [Friendly i18n Book](https://almchung.github.io/p5-fes-i18n-book/) discusses challenges practices writing cross-cultural context main points book Understand audience make assumptions learn language inclusive strive friendly bias harm simple sentences breaking sentence smaller blocks utilize [i18next's interpolation feature.](https://www.i18next.com/translation-function/interpolation/) Prioritize communication great experience languages Avoid figures speech Introduce technical concept term time consistency link external resource beginner-friendly plenty practical examples public project contribute [this repo.](https://github.com/almchung/p5-fes-i18n-book/) ๐ Optional Unit tests unit bugs early delivering intended contributors accidentally break interfere functionality guides testing [Unit Testing Test Driven Development](https://archive.p5js.org/learn/tdd.html) Andy Timmons [Contributors Doc Testing]/unit_testing/ suite'validateParameters multi-format' test'color optional incorrect type' assertvalidationErrorfunction p5_validateParameters'color' [0 A'] Conclusion instructions include Additionally excited share insights community Survey conducted 2021-2022 findings formats [21-22 Report Comic](https://almchung.github.io/p5jsFESsurvey/) Full Report](https://observablehq.com/@almchung/p5-fes-21-survey/) in-depth information design aspects refer [FES README document]/friendly_error_system/ document detailed explanations development notes beneficial seeking deeper"},"Release process\n":{"relativeUrl":"/contribute/release_process","description":"{/* updates GitHub turned version library */} ## Approach * follow [semver](https://semver.org/) versioning pattern means `MAJORMINORPATCH` Requirements Git nodejs NPM installed system build push access remote repository Secret `NPM_TOKEN` set `ACCESS_TOKEN` Security tokens release steps run fully [repository secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) created [here](https://docs.npmjs.com/creating-and-viewing-access-tokens/) create read publish token user belongs project personal `p5js` `p5js-website` `p5js-release` repositories generated [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token/) scopes choose `repo` `workflow` recommended organization specific account limit account's write required Usage ```sh $ git checkout main npm [major|minor|patch] Choose tag origin v142 Replace number ``` actual Actions CI Monitor check results commands executed action monitored [Actions tab](https://github.com/processing/p5.js/actions/) p5js repo page job clicking give detailed log running [Screenshot job]src/content/contributor-docs/images/release-actionpng completed released Check [release](https://github.com/processing/p5.js/releases/) [NPM](https://www.npmjs.com/package/p5/) pages latest view draft make changelog website updated deploy relevant page](https://github.com/processing/p5.js-website/actions/) desired [Downloads page](https://p5js.org/download/) CDNs bit time day update automatically pull *** happening Action [New release]/github/workflows/releaseyml triggered matches `v***` `npm ___` command Clone setup extract install dependencies `npm` test test` Create files uploaded releases Update Copy `datajson` `dataminjson` location `p5minjs` `p5soundminjs` `datayml` file `enjson` based Commit back Bower libraries principle concentrate place environment step defined workflow part configuration Testing testing difficult [act](https://github.com/nektos/act/) locally tested developed requires temporary modifications definition roughly document precise change requirements present mocha Chrome tests needed `apt` setting rest eye error messages information packages missing pushing commented avoid accidentally unintended"},"Steward Guidelines\n":{"relativeUrl":"/contribute/steward_guidelines","description":"{/* Learn manage review contributions p5js */} contribution active GitHub repositories find guide stewardship expect stewards volunteer started steward read ## Table Contents * [Stewardship]#stewardship [Community Care]#community-care [Areas]#areas [Becoming Steward]#becoming-a-steward [Getting Started Stewardship]#getting-started-with-stewardship [Issues]#issues [Bug report]#bug-report [Feature request]#feature-request enhancement]#feature-enhancement [Discussion]#discussion [Pull Requests]#pull-requests [Simple fix]#simple-fix fix]#bug-fix [New feature/feature enhancement]#new-feature-feature-enhancement [Dependabot]#dependabot [Build Process]#build-process [Main build task]#main-build-task [Miscellaneous tasks]#miscellaneous-tasks [Release Process]#release-process [Tips Tricks]#tips--tricks [Reply templates]#reply-templates [GitHub CLI]#github-cli [Managing notifications]#managing-notifications *** Stewardship ### Community Care open source ethos includes [accessibility education collaboration transparency agency](https://www.opensourceethos.net/). live practice values write code lot community care practices part definition Welcoming contributors **friendly comments** helpful **code reviews** Helping **facilitate feature discussions** resolve technical disagreements means making connections past discussion offering input prior relevant experience Suggesting features working Participating releases software **supporting** bug fixing completion guiding reviewing PRs Fixing bugs rest guidelines provide tips tricks effectively contribute helpfully written stated adapt shown suit workflow invited happy API design feedback concrete roles Contributors make Issues Comments Code Reviews Maintainers merge admin parts codebase Stewards responsibility stewarding area comment issues reviews tagged contributor check current repository's README file tag - mindful emphasize patience mindfulness work open-source project hope regularly chime guidance Areas areas responsible match Labels cases couple exceptions list **Accessibility** specifically refers digital web accessibility including screen reader support `describe` reference website **Core** Refers core rendering environment **DevOps** process unit testing aspects development **Documentation** Includes exposed docs content i18n Internationalization / **Translation** translations `es` `hi` `ko` `zh` **Graphics** subareas WebGL [p5.strands](https://beta.p5js.org/tutorials/intro-to-p5-strands/) **Color** Color ColorMode improvements color usage **Typography** topics handling text font **Math** external Math internal performance **Shapes** custom shapes 111x 2x versions **Maintainers** group **p5soundjs** [new p5.sound.js](https://github.com/processing/p5.sound.js) add-on library **p5js-website** Non-content [reference website](https://p5js.org/) structure automations focus change time depending applying proposals Steward ways *Nomination* maintainers conversation Discord Discourse *Application* creating PR update `stewardsyml` proposed mind 1-3 **translation stewards** application additional supporting material related interested participating remain recent minor middle number frequent patches rightmost expected 4-6 months necessarily writing step remove pause reapply future guideline handy Feature request section [access statement]/access/ helping answer questions apply Processing Foundation [guideline answering questions](https://discourse.processing.org/t/guidelines-answering-questions/2145/) giving constructive Join [p5js Discord](https://discord.com/invite/SHQ8dH25r9/) `#contribute-to-p5` suggest improved encourage start issue place discussions steps depend kind repo templates](https://github.com/processing/p5.js/blob/main/.github/ISSUE_TEMPLATE/) order organize kinds authors information problems filled-out template determining fields filled incorrect Bug report Found typical addressing reports Replicate goal reviewer attempt replicate question reported opened p5js-website Transfer access leave filed direct link provided close replication replicated required determine fix straightforward tricky refer principles]/contributor_guidelinesmd#software-design-principles decision case-by-case basis author Approve leaving assigning cog button side Assignee Leave recognizing replicable Attempt add `help wanted` label signal needing info version browser OS differs specific Add setup occur editor locally case redirected [web repo](https://github.com/processing/p5.js-web-editor/). back stems user behavior Determine documentation implementation friendly error system prevent mistake made Kindly redirect [forum](https://discourse.processing.org/) [Discord](https://discord.com/invite/SHQ8dH25r9/) Request requests commitment increase increases communities historically marginalized field details [here]/access/ Increasing Access sufficiently statement member reviewers assessed inclusion based criteria fit scope [design drawing primitive shape considered adopt browser-based IOT protocol narrow avoid excessive bloat rarely implement addon unclear fits good idea proof-of-concept helps give users importance complete solution fully integrated breaking conflict existing functions variables sketches Features conflicts [major release](https://docs.npmjs.com/about-semantic-versioning/), achieved functionalities simple native JavaScript easy-to-use libraries providing function join array strings `join[Hello world]` `[Hello world]join` preferred requirement considerations fulfilled approve begin documented enhancement Existing Enhancement similar difference blurry deals requesting added Similar accepted point [section above]#feature-request Inclusion enhancements attention paid potential modifying previous valid signatures behave approved maintainer Discussion type minimal gather topic general coalescing sorts closed finishes resulting created correct applied removed Additional requested included repositories/contribution process/contribution forum labels glance Pull Requests happen pull push encouraged follow > contributing found [here](https://github.com/processing/p5.js/blob/main/.github/PULL_REQUEST_TEMPLATE.md). discussed meaning [issue workflow]#issues reviewed instances typo fixes require merged exception exists words doubt applies solve referenced edit original post Resolves #OOOO Addresses automatically Simple small directly Check Files Changed tab ensure automated CI test passes [The files changed viewing GitHub]src/content/contributor-docs/images/files-changedpng checks passed indicator highlighted button]src/content/contributor-docs/images/all-checks-passedpng ideally initially implemented tested CLI streamline Tricks]#tips-tricks [ ] address behaviors agreed significant impact modern standard coding pass tests include line comments lines [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request). suggestion block changes\\ Suggest Change request]src/content/contributor-docs/images/suggest-changepng\\ [A suggested appearing fences tag]src/content/contributor-docs/images/suggested-value-changepng\\ previewed diff]src/content/contributor-docs/images/suggestion-previewpng multiple dont single-line times procedure [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request/) multiple-line single clarification choose Comment option circled Finish Review menu]src/content/contributor-docs/images/comment-reviewpng mark Approved choosing desired @[all-contributors](https://allcontributors.org/docs/en/emoji-key/) bot called READMEmd `[contribution` `type]` full types `@all-contributors` `please` `add` `@[GitHub` `handle]` `for` notable Dependabot visible admins skip [semver](https://semver.org/) patch semver long quick changelog updated dependency recommended major affect target processes functioning due dependencies bump numbers drop official Nodejs Build cover commands happening scenes [contributors guidelines]/contributor_guidelinesmd#working-on-p5js-codebase detailed Gruntfilejs main definitions tools limited Grunt Browserify YUIDoc ESLint Babel Uglify Mocha `default` task backward document explainer Main ``` gruntregisterTask'default' ['lint' test'] run `grunt` npm script `npm test` default consisting `lint` `test` #### Task gruntregisterTask'lint' ['lintsource' lintsamples'] consists tasks `lintsource` `lintsamples` subdivided `eslintbuild` `eslintsource` `eslinttest` scripts `yui` `yuidocprod` `cleanreference` `minjson` extract JSON unused minify generated `dataminjson` `eslint-samplessource` [/tasks/build/eslint-samplesjs]/tasks/build/eslint-samplesjs convention built lint examples ```js gruntregisterTask'test' build' connectserver' mochaChrome' mochaTest' nycreport `build` gruntregisterTask'build' browserify' browserifymin' uglify' browserifytest Tasks `browserify` defined [/tasks/build/browserifyjs]/tasks/build/browserifyjs differences builds `browserifymin` intermediate minified data needed FES `uglify` takes output final p5minjs configuration `browserifytest` building identical coverage reporting [Istanbul](https://istanbul.js.org/)). `fsreadFileSync` nodejs replaced file's actual `brfs-babel` inline shader separate node\\_modules transpiled [Browserslist](https://browsersl.ist/) packagejson ES6 import statements CommonJS `require` browserify understands enables newer syntax worrying compatibility bundling bundled `pretty-fast` meant cleaned formatting bit consistent anticipate inspected left linked closer connectserver spins local server hosting Chrome mochaChrome [/tasks/test/mocha-chromejs]/tasks/test/mocha-chromejs Puppeteer spin headless remote controlled runs HTML `/test` folder unminified suites mochaTest `mochaChrome` subset set expanded Finally print console Test monitoring points 100% covers Miscellaneous `npx grunt [step]` covered yuidev spinning serves functionally page [http://localhost:9001/docs/reference/](http://localhost:9001/docs/reference/). monitor rebuild `yuidev` move repository preview slightly simplified confident show correctly Note modifications styling layout watch watchmain watchquick series thing `watch` running detecting `watchmain` `watchquick` Depending save manually Release [release\\_processmd]/release_process/ Tips overwhelming put things easier utilize Reply templates [Saved Replies](https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/about-saved-replies/) authoring reply responding replies redirecting accepting Saved Replies efficient create ##### Closing Reproduce reproduce feel free reopen sample demonstrates Snippet closing organizational purposes snippet illustrates Forum tutorials GSOC discuss [forum](https://discourse.processing.org/c/summer-of-code/). interest clear explanation [expands access]/access/ Addon great starting [Creating Library]/creating_libraries/ Issue reminder tracking keeping ahead Merged Reviewing complex difficult git PR's Fortunately CLI](https://cli.github.com/) tool greatly installing logging command `gh pr checkout [pull_request_id]` fetching fork branch checking switching `git main` visit webpage Managing notifications tabs clicking Watch eye icon top opposite [Cropped screenshot corner showing buttons center Sponsor Fork Starred]src/content/contributor-docs/images/github-repo-metricspng watching events mentions handle activities subscribed [notification page](https://github.com/notifications/), marked dismissed email inbox receive emails customize unsubscribing completely [notifications settings page](https://github.com/settings/notifications/). Setting issues/PRs overwhelmed endless balance @mentions"},"Unit Testing\n":{"relativeUrl":"/contribute/unit_testing","description":"{/* Guide writing tests p5js source code */} Unit testing essential part large codebase stay bug-free small pieces aim test individual components larger base correctness making function class creating object instances correctly unit ensure functions librarys introduce bugs unexpected behavior called regression Tests run `npm test` command terminal guide walk process implementing adding feature existing changing implement relevant ## Prerequisites * foundation Contributor guidelines local development setup inside Files folders test-related files located `test` folder wont focus `unit` subfolder subfolders roughly correspond `src` time counterpart composed modules module public Testing frameworks [Mocha](https://mochajs.org) runner responsible running providing solid framework reporting results long output Mocha doesnt assertion library collection handy lets properties values equal type throws error [Chai's `assert` `expect`)](https://www.chaijs.com/api/assert/) write statements behave Writing start pick variable Lets `p5prototypekeyIsPressed` beginning understand expected *expected behavior* `keyIsPressed` `true` key pressed `false` keys cases boolean - alphabet number special multiple `suite` built-in provided environment file `test/unit/events/keyboardjs` find additional `setup` `teardown` describes case checks single feature/behavior tested argument passed description suite/test purpose give clear suite press ```js suite'p5prototypekeyIsPressed' { test'keyIsPressed boolean' //write } true press' false pressed' ``` structured written Chai's `myp5` defined top section callback creates instance mode sketch myp5 setupfunctiondone p5functionp psetup = `p` parameter access variables assigned functionalities Remember previously mentioned Chai //Asserts assertisBooleanmyp5keyIsPressed create actual practice means condition similar statement throw Chais `assertisBoolean` check `myp5keyIsPressed` [documentation](https://www.chaijs.com/api/assert/) kinds things method behaves correct Adding add component Generally path `test/unit` `src/color/p5Colorjs` `test/unit/color/p5Colorjs` added make copy rename match delete inserting keeping teardown suite'module_name' myID myCanvasID' cnv pcreateCanvas100 cnvidmyID teardownfunction myp5remove `spec` `test/unit/specjs` loaded // test/unit/specjs var spec typography ['attributes' loadFont' p5Font' yourModule'] grouped representing function/variable expand suite'p5prototypeyourFunction' test'should [test something]' assertions suites needed didnt Conventions conventions practices follow `test`s self-contained rely Test minimal thing accepts arguments Prefer `expect` Running straightforward takes simply bit repetitive tricks streamline `npx grunt watchmain` automatically build save manually frequent mark skipped `skip` `only` syntax suiteskip'p5prototypeyourFunction' suiteonly'p5prototypeyourFunction' `grunt yuidev` launch server reference live [`http://127.0.0.1:9001/test/test.html`](http://127.0.0.1:9001/test/test.html) browser debugger middle log complex objects filter search term `grep=` URL [`http://127.0.0.1:9001/test/test.html?grep=framebuffer`](http://127.0.0.1:9001/test/test.html?grep=framebuffer) Visual sketches unexpectedly change implementation features visual lives `test/unit/visual/cases` Inside sample calls `screenshot` visualTest'2D maintain size' functionp5 screenshot p5createCanvas50 p5WEBGL p5noStroke p5fill'red' p5rectModep5CENTER p5rect0 p5width/2 p5height/2 filename list `test/visual/visualTestListjs` Additionally continuous integration pull request `visual` generate screenshots intentionally matching `test/unit/visual/screenshots` re-run inspect [http://127.0.0.1:9001/test/visual.html](http://127.0.0.1:9001/test/visual.html) CI optimizing speed advantageous concise avoid unnecessary frames minimize canvas size load assets specific functionality address scenarios involving operations asynchronous 3D model rendering returning promise resolves completing ensuring efficiency approach visualSuite'3D Model rendering' visualTest'OBJ displayed correctly' Return Promise waits operation complete return Promiseresolve => Load asynchronously p5loadModel'unit/assets/teapotobj' p5background200 p5rotateX10 p5rotateY10 p5modelmodel comparison Resolve completion resolve *Both 1x include system diffing algorithm robust system* operating systems browsers render graphics subtle variations differences normal fail Common acceptable Single-pixel shifts line positions Slight anti-aliasing Text font weight kerning Minor curve smoothness text rendered macOS slightly Linux applies thin lines curves graphical elements image earlier caused environments [Example]src/content/contributor-docs/images/pixelmatch2png sophisticated distinguish Initial Compares pixels moderate threshold identify [pixelmatch](https://github.com/mapbox/pixelmatch/) pixel Cluster identification Groups connected difference Breadth-First Search BFS Pattern recognition specifically identifies Line shift clusters represent element shifted 1px Isolated noise Smart failure criteria Applies thresholds Ignores smaller total significant Permits minor typical platforms [Example]src/content/contributor-docs/images/pixelmatchpng balances sensitivity real tolerating platform-specific parameters const MIN_CLUSTER_SIZE Minimum cluster MAX_TOTAL_DIFF_PIXELS Maximum allowed analyzing neighborhood 80% โค2 neighbors classified structural intelligent ensures due catching important note improved pass failed detecting showing visually meaningful makes reliable reduces failures require manual investigation ### efficient sizes dimensions close 50x50 resizes images canvases result faster Focus visible details intricate hard Design demonstrate reduced cramming variants call times visualTest'stroke variations' stroke p5stroke0 p5strokeWeight1 p5line10 Screenshot thick p5strokeWeight5"},"p5.js Web Accessibility\n":{"relativeUrl":"/contribute/web_accessibility","description":"{/* Understand p5js Web Accessibility features make sketch accessible */} document describes structure web accessibility contributors sketches [screen reader](https://en.wikipedia.org/wiki/Screen_reader/)-accessible, visit [Writing Accessible Canvas Descriptions](https://p5js.org/tutorials/writing-accessible-canvas-descriptions/) tutorial screen reader [Using Screen Reader tutorial](https://p5js.org/tutorials/p5js-with-screen-reader/). canvas HTML element grid pixels doesnt provide reader-accessible information shapes drawn functions readers providing [fallback text](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage#accessible_content) descriptions Ill describe details implementation ## Prerequisites * foundation Contributor guidelines local development setup inside label code Library-generated outputs basic supports library-generated `textOutput` `gridOutput` user-generated `describe` `describeElement` inserted child elements `` work snippet serve ```js function { createCanvas400 } draw background#ccccff textOutput fillorange ellipse100 fillfuchsia rect300 ``` [An orange circle pink square light purple canvas]src/content/contributor-docs/images/sketch-with-shapespng creates output present general description includes size color number > lavender blue list position area shape top left covering 1% canvas\\ fuchsia bottom 2% selected table provided location coordinates location=top area=1%\\ = generates ```html Text Output white lays content form based spatial background objects object types cell depending type circle\\ individually *orange %* *fuchsia generated Grid % user passes `LABEL` argument additional created \\ visible version embedded non-screen users display create unnecessary redundancy recommend part process removing publishing sharing [A text earlier it]src/content/contributor-docs/images/sketch-text-outputpng ### Outputs located [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js), updated distributed library section support #### outputsjs [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js) public methods activate setting `this_accessibleOutputstext` `this_accessibleOutputsgrid `to `true` calling `this_createOutput'textOutput' Fallback'` `this_createOutput'gridOutput' passed parameter method activates `this_accessibleOutputstextLabel` calls Label'` file private `_createOutput` Depending vary initializes `thisingredients` stores data including `shapes` `colors` `pShapes` string previous `thisdummyDOM` exist HTMLCollection DOM `_updateAccsOutput` called end `setup` `draw` accessibleOutputs differs current update `_updateTextOutput` `_updateGridOutput` Calling ingredients helps avoid overwhelming access divs constantly updating `_addAccsOutput` `this_accessibleOutputs` returns true `this_accessibleOutputsgrid` `_accsBackground` `background` resets `thisingredientsshapes` `this_rgbColorName` store `thisingredientscolorsbackground` `_accsCanvasColors` fill stroke updates colors saving `thisingredientscolorsfill` `thisingredientscolorsstroke` names `_accsOutput` Builds creating src/accessibility call helper gather needed include `_getMiddle` Returns middle point centroid rectangles arcs ellipses triangles quadrilaterals `_getPos` left' mid right' `_canvasLocator` 10\\*10 mapped `_getArea` percentage total outputjs `p5prototypetriangle` `p5prototype_renderRect` `p5prototypequad` `p5prototypepoint` `p5prototypeline` `p5prototype_renderEllipse` `p5prototypearc` `p5prototyperedraw` `p5prototyperesizeCanvas` `this_setup` `p5Renderer2Dprototypestroke` `p5Renderer2Dprototypefill` `p5Renderer2Dprototypebackground` textOutputjs [src/accessibility/textOutput.js](https://github.com/processing/p5.js/blob/main/src/accessibility/textOutput.js) main build summary Building supported `p5` prototype `_textSummary` `_shapeDetails` `_shapeList` gridOutputjs [src/accessibility/gridOutput.js](https://github.com/processing/p5.js/blob/main/src/accessibility/gridOutput.js) `this_accessibleOutputsgridLabel` maps `_gridSummary` `_gridMap` `_gridShapeDetails` line color\\_namerjs naming important [src/accessibility/color\\_namer.js](https://github.com/processing/p5.js/blob/main/src/accessibility/color_namer.js) `_rgbColorName` receives RGBA values [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js). `p5color_conversion_rgbaToHSBA` HSV `_calculateColor` [colorNamer.js](https://github.com/MathuraMG/color-namer/), developed [2018 Processing Foundation fellowship](https://medium.com/processing-foundation/making-p5-js-accessible-e2ce366e05a0/) consultation blind expert comparing stored `colorLookUp` array returning closest User-generated author-defined optional determines displayed [src/accessibility/describe.js](https://github.com/processing/p5.js/blob/main/src/accessibility/describe.js): `_descriptionText` Checks `FALLBACK` ensures ends punctuation mark ' adds improve readability `_describeHTML` Creates fallback tag adjacent background'pink' fill'red' noStroke circle67 circle83 triangle91 describe'A red heart bottom-right corner' LABEL page reading corner]src/content/contributor-docs/images/sketch-text-output2png describeElement groups meaning custom-drawn made multiple lines Heart corner `_elementName` checks colon character `_describeElementHTML` div describeElement'Heart' circle666 circle832 triangle912 yellow background' corner]src/content/contributor-docs/images/sketch-text-output3png"},"WebGL Contribution Guide\n":{"relativeUrl":"/contribute/webgl_contribution_guide","description":"{/* started working p5js WebGL mode source code */} reading page interested helping work grateful exists explain structure contributions offer tips making ## Resources * Read [p5js architecture overview]/webgl_mode_architecture/ understand differs 2D valuable reference implementation specifics shaders strokes [contributor guidelines]/contributor_guidelines/ information create issues set codebase test helpful bit browser's API p5js's built top [WebGL fundamentals](https://webglfundamentals.org/) core rendering concepts [The Book Shaders](https://thebookofshaders.com/) explains techniques Planning organize open [in GitHub Project](https://github.com/orgs/processing/projects/20/), divide types **System-level changes** longer-term goals far-reaching implications require discussion planning jumping **Bugs solution yet** bug reports debugging narrow ready fixed found discuss fix solutions PR** bugs decided free write **Minor enhancements** features obvious spot current needing fit agreed worth **2D features** exist expected behavior feature implemented match user requirements clear **Features contexts** ways methods coordinates 3D break generally begin **Feature requests** change requests make things mode's roadmap **Documentation** documentation Put Code related `src/webgl` subdirectory directory top-level functions split files based subject area commands light `lightingjs` materials `materialsjs` implementing user-facing classes file class occasionally internal utility `p5Framebufferjs` includes `p5Framebuffer` additionally consists framebuffer-specific subclasses main `p5RendererGL` large handles lot reason functionality description put #### `p5RendererGLjs` Initialization `p5RendererGLImmediatejs` Functionality **immediate mode** drawing shapes stored reused `beginShape` `endShape` `p5RendererGLRetainedjs` **retained reuse `sphere` `materialjs` Management blend modes `3d_primitivesjs` User-facing draw `triangle` define geometry treating input generic shape `Textjs` text Testing ### Consistency hard manually verify add unit tests confident pass adding works check consistency resulting pixels ```js test'coplanar 2D' function { const getColors = functionmode myp5createCanvas20 myp5pixelDensity1 myp5background255 myp5strokeCapmyp5SQUARE myp5strokeJoinmyp5MITER === myp5WEBGL myp5translate-myp5width/2 -myp5height/2 } myp5stroke'black' myp5strokeWeight4 myp5fill'red' myp5rect10 myp5fill'blue' myp5rect0 myp5loadPixels return [myp5pixels] assertdeepEqualgetColorsmyp5P2D getColorsmyp5WEBGL ``` turn antialiasing slightly straight lines axes WebGL-only comparing ensure color expect day robust system compares full image snapshots results pixel test'color interpolation' renderer myp5createCanvas256 // upper lower center myp5beginShape myp5fill200 myp5vertex-128 -128 myp5vertex128 myp5fill0 myp5endShapemyp5CLOSE assertequalrenderer_useVertexColor true assertdeepEqualmyp5get128 [100 255] Performance #1 concern hit performance Typically creating sketches compare frame rates advice measure Disable friendly errors `p5disableFriendlyErrors true` sketch `p5minjs` include error Display average rate sense steady state frameRateP avgFrameRates [] frameRateSum numSamples setup createP frameRatePposition0 frameRate / avgFrameRatespushrate += avgFrameRateslength > -= avgFrameRatesshift frameRatePhtmlroundframeRateSum + avg fps' cases stress parts pipeline complicated model long curve simple `line` called times loop"},"p5.js WebGL Mode Architecture\n":{"relativeUrl":"/contribute/webgl_mode_architecture","description":"{/* overview design decisions make WebGL mode motivation */} document intended contributors library makers extend codebase sketches reading tutorials [on p5js Tutorials page](https://p5js.org/tutorials/#webgl) ## renderers run 2D user [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/) built web browser rendering high-performance 3D graphics key difference direct access computer's GPU allowing performantly render shapes perform image processing tasks track progress issues [a GitHub Project.](https://github.com/orgs/processing/projects/20/) Goals evaluating feature aligns goals **Features beginner-friendly** provide beginner-friendly introduction features offers means offer simple APIs cameras lighting shaders support advanced interfere simplicity core **Improving parity mode** frictionless transition making click easily users create work shader aims superset mode's **Simplicity extensibility paramount** small extensible libraries Keeping makes easier optimize reduce bug surface area Extension avenue include **Improve performance** fast interfering previous Good performance accessible wide variety viewers devices designing ensure performant implementation give preference Design differences browser's canvas context levels abstraction generally lower-level higher-level motivates fundamental p5js's modes * **WebGL creates deeply nested data structures** passes commands leading shallow call stacks contrast responsible breaking triangles caching future reuse complicated logic necessitates splitting code number classes `p5Texture` `p5RenderBuffer` `p5DataArray` implementations readable maintainable customization** control curves rendered converting picks default `curveDetail` API lets line segments predict balance quality case high- low-level APIs** finer-grained faced task picking level high unable advantage low pass managing complexity Drawing ### Creating fills strokes geometry drawn consists draw shape ready component composed calls function `circle` `beginShape` `vertex` renderer [break series points](https://github.com/processing/p5.js/blob/main/src/webgl/3d_primitives.js). points connected lines trigonometry figure place circle `curveVertex` `bezierVertex` look-up tables turn Bรฉzier curve #### Fills outline filled drawing functions `beginShapeTRIANGLE_STRIP` made [libtess](https://github.com/brendankenny/libtess.js/) break [p5.RendererGL.Immediate.js](https://github.com/processing/p5.js/blob/main/src/webgl/p5.RendererGL.Immediate.js), polygon outlines `_processVertices` libtess turns format screen Strokes varying widths styles expand centers form expansion types joins caps illustrated Generated https://codepen.io/davepvm/pen/ZEVdppQ connect add join miter extends edges rectangles intersect point bevel connects corners straight round circular arc switching recompute quad extent bounds display pixels present selected style illustrate fits similar strategy stroke disconnected ends cap square extended determines calculated change based camera's perspective avoid recalculation store information camera-dependent **center line** model space shown red **direction tangent start end blue pink helps compute **a flag uniquely identifies corner shape** Combined normal 90-degree rotation determine direction thickness combine camera intrinsics produce final positions Rendering retained **immediate **retained **Immediate optimized frame time drew spend storing saves memory variations `quadraticVertex` called `endShape` `rect` rounded `bezier` `curve` `line` `image` Retained redrawing dont re-triangulating sending saved `p5Geometry` object stores triangle uploaded buffers Calling `freeGeometry` clears re-upload `sphere` `cone` internally `buildGeometry` runs collects p5Geometry returns redrawn efficiently Materials lights single pick write materials system scene reacts light including color shininess Custom material behavior Shaders **Color Shader** flat colors activated `fill` `stroke` **Lighting complex textures Activated calling `lights` `ambientLight` `directionalLight` `pointLight` `spotLight` adds list added contribute shading fill **Normal/Debug `normalMaterial` Lights Users set parameters position contributes view-independent view-dependent reflections reflection matches desired setting `specularColor` **color shader** properties **Fill color** Set applies `beginShape`/`endShape` apply vertex texture `texture` override mixed diffuse describes bright dark areas due directly cast **Specular material** specular reflected highlights shape's parameter `specularMaterial` unspecified **Shininess** `shininess` sharp **Ambient ambient Ambient constant omnidirectional `ambientMaterial` **Emissive `emissiveMaterial` producing Shader turned attributes uniforms reference custom supply automatically writers unclear Future section describe plans improving improve publicly documenting supporting Global objects contexts global `uniform mat4 uModelViewMatrix` matrix convert object-space camera-space uProjectionMatrix` mat3 uNormalMatrix` normals Additionally per-vertex `attribute vec3 aPosition` aNormal` pointing outward vec2 aTexCoord` coordinate referring location aVertexColor` optional bool uUseLighting` provided `uUseLighting` passed ##### int uAmbientLightCount` maximum uAmbientColor[5]` Directional uDirectionalLightCount` directional uLightingDirection[5]` Light directions uDirectionalDiffuseColors[5]` uDirectionalSpecularColors[5]` Point uPointLightCount` uPointLightLocation[5]` Locations uPointLightDiffuseColors[5]` Diffuse uPointLightSpecularColors[5]` Specular Spot uSpotLightCount` spot float uSpotLightAngle[5]` cone radii uSpotLightConc[5]` Concentration focus uSpotLightDiffuseColors[5]` uSpotLightSpecularColors[5]` uSpotLightLocation[5]` locations uSpotLightDirection[5]` Fill vec4 uMaterialColor` uUseVertexColor` Per-vertex isTexture` sampler2D uSampler` uTint` tint multiplier uSpecular` show uShininess` uSpecularMatColor` blend uHasSetAmbient` uAmbientMatColor` inputs Lines supplied uViewport` vector `[minX minY maxX maxY]` rectangle uPerspective` boolean projection uStrokeJoin` enum representing represent `ROUND` `MITER` `BEVEL` uStrokeCap` `PROJECT` `SQUARE` aTangentIn` segment aTangentOut` aSide` part details Points uPointSize` radius Classes ```mermaid --- title classDiagram class Base[p5Renderer] { } P2D[p5Renderer2D] WebGL[p5RendererGL] Geometry[p5Geometry] Shader[p5Shader] Texture[p5Texture] Framebuffer[p5Framebuffer] Base <|-- P2D o-- Geometry *-- Texture Framebuffer ``` entry **p5RendererGL** Top-level current conform common `p5Renderer` interface split `p5RendererGLImmediatejs` `p5RendererGLRetainedjs` references models stored `retainedModegeometry` map `modelyourGeometry` geometry's resources main `p5Graphics` entries represented `p5Shader` `shaderyourShader` handles compiling source uniform type `p5Image` `p5MediaElement` `p5Framebuffer` asset data's representation send images manually updated assets changed video Textures unique Framebuffers surfaces Unlike `p5Framebuffer`s live transferred CPU bottleneck extra transfer reason functional aim building blocks craft extensions block considered confidently commit major milestone sufficient ecosystem lacking extension **Extend richer content** accomplish supported stable update animated gltf group multiple imported unsupported **Enable brittle shaders** integrates forced scratch copy paste parts versions internal naming structure import pieces positioning augment [an issue open task.](https://github.com/processing/p5.js/issues/6144/) strike method introduce tune output faster lower-quality Line bottlenecks state benefit lower fidelity higher options methods usage patterns `endShapeshouldClose count` supports instanced efficient"}},"examples":{"Shape Primitives":{"relativeUrl":"/examples/shapes-and-color-shape-primitives","description":"program demonstrates basic shape primitive functions square rect ellipse circle arc line triangle quad"},"Color":{"relativeUrl":"/examples/shapes-and-color-color","description":"expands Shape Primitives adding color background fills canvas stroke sets drawing lines fill inside shapes noStroke noFill turn line Colors represented ways demonstrates options"},"Drawing Lines":{"relativeUrl":"/examples/animation-and-variables-drawing-lines","description":"Click drag mouse draw line demonstrates built-in variables mouseX mouseY store current position previous represented pmouseX pmouseY * shows colorMode HSB hue-saturation-brightness variable sets hue"},"Animation with Events":{"relativeUrl":"/examples/animation-and-variables-animation-with-events","description":"demonstrates loop noLoop pause resume animation Clicking mouse toggles stopped user press key advance frame Note click set focus canvas presses registered Advancing single accomplished calling redraw function results call draw"},"Mobile Device Movement":{"relativeUrl":"/examples/animation-and-variables-mobile-device-movement","description":"deviceMoved function runs mobile device displaying sketch moves accelerationX accelerationY accelerationZ values set position size circle works devices"},"Conditions":{"relativeUrl":"/examples/animation-and-variables-conditions","description":"statements block code run condition true animates mouse held statement line read p5 reference MDN Comparison operators form conditions comparing values hue circle resets comparison Logical combined && checks black fill horizontal center canvas white circle's position || reverses speed reaches left edge"},"Words":{"relativeUrl":"/examples/imported-media-words","description":"text function inserting canvas change font size loadFont fontSize functions aligned left center textAlign shapes colored fill"},"Copy Image Data":{"relativeUrl":"/examples/imported-media-copy-image-data","description":"copy method simulate coloring image copying colored top black-and-white cursor dragged"},"Alpha Mask":{"relativeUrl":"/examples/imported-media-alpha-mask","description":"mask method create image transparency parts run locally files running local server"},"Image Transparency":{"relativeUrl":"/examples/imported-media-image-transparency","description":"program overlays image modifying alpha tint function Move cursor left canvas change image's position run locally file running local server"},"Audio Player":{"relativeUrl":"/examples/imported-media-create-audio","description":"createAudio creates audio player displays player's controls adjusts speed playback normal mouse left edge window faster moves information media elements players p5MediaElement reference page file public domain piano loop Josef Pres"},"Video Player":{"relativeUrl":"/examples/imported-media-video","description":"noCanvas createVideo functions upload video DOM embedding canvas building embedded element visit Video Canvas"},"Video on Canvas":{"relativeUrl":"/examples/imported-media-video-canvas","description":"createVideo image functions upload video canvas capture passed constructor add filters filter method run locally running local server build embedding visit Video"},"Video Capture":{"relativeUrl":"/examples/imported-media-video-capture","description":"createCapture image functions device's video capture draw canvas passed constructor add filters filter method strategies uploading presenting styling videos visit Video Canvas examples"},"Image Drop":{"relativeUrl":"/examples/input-elements-image-drop","description":"drop p5js element method registers callback time file loaded uploaded created p5File class check type write conditional statements responding"},"Input and Button":{"relativeUrl":"/examples/input-elements-input-button","description":"createElement createInput createButton functions string text submitted input display canvas"},"Form Elements":{"relativeUrl":"/examples/input-elements-dom-form-elements","description":"Document Object Model DOM represents resulting structure web page p5js's form elements createInput createSelect createRadio build ways information submitted select input radio button update based"},"Translate":{"relativeUrl":"/examples/transformation-translate","description":"translate function moves origin coordinate system location push pop functions save restore drawing settings fill color Note draw shapes rectangle circle time"},"Rotate":{"relativeUrl":"/examples/transformation-rotate","description":"rotate function rotates current coordinate system origin Note default upper left corner canvas order center translate push pop functions save restore"},"Scale":{"relativeUrl":"/examples/transformation-scale","description":"scale function scales current coordinate system factor push pop functions save restore square size drawn origin scaling factors"},"Linear Interpolation":{"relativeUrl":"/examples/calculating-values-interpolate","description":"Interpolation calculates values number halfway types interpolation rates change Linear abbreviated lerp constant rate function linearly interpolates numbers Move mouse screen symbol follow drawing frame animation ellipse moves part distance current position cursor"},"Map":{"relativeUrl":"/examples/calculating-values-map","description":"map function converts range cursor's horizontal position 0-720 0-360 resulting circle's hue Map vertical 0-400 20-300 diameter"},"Random":{"relativeUrl":"/examples/calculating-values-random","description":"demonstrates random function user presses mouse button position color circle change randomly"},"Constrain":{"relativeUrl":"/examples/calculating-values-constrain","description":"draws circle cursor's position rectangle passing mouse's coordinates constrain function"},"Clock":{"relativeUrl":"/examples/calculating-values-clock","description":"current time read minute hour functions map calculate angle hands transformations set position"},"Color Interpolation":{"relativeUrl":"/examples/repetition-color-interpolation","description":"Interpolation calculates values number halfway types interpolation rates change Linear abbreviated lerp constant rate function linearly interpolates numbers lerpColor demonstrated colors stripeCount variable adjusts horizontal stripes Setting higher individual gradient"},"Color Wheel":{"relativeUrl":"/examples/repetition-color-wheel","description":"illustrates appearance hues loop repeat transformations initializes variable called angle rotation circle hue time repeats drawn relative center canvas push pop functions make affect individual"},"Bezier":{"relativeUrl":"/examples/repetition-bezier","description":"bezier curves created control anchor points parameters function point curve middle set define shape"},"Kaleidoscope":{"relativeUrl":"/examples/repetition-kaleidoscope","description":"kaleidoscope optical instrument reflecting surfaces tilted angle translate rotate scale functions replicate resulting visual canvas"},"Noise":{"relativeUrl":"/examples/repetition-noise","description":"Perlin noise algorithm written Ken produce sequences random organic function p5 produces dots sized based values slider left sets distance offset calculation"},"Recursive Tree":{"relativeUrl":"/examples/repetition-recursive-tree","description":"rendering simple tree-like structure recursion branching angle calculated function horizontal mouse location Move left change Based Daniel Shiffman's Recursive Tree Processing"},"Random Poetry":{"relativeUrl":"/examples/listing-data-with-arrays-random-poetry","description":"floor random functions randomly select series items array draw sizes positions canvas"},"Sine and Cosine":{"relativeUrl":"/examples/angles-and-motion-sine-cosine","description":"demonstrates sine cosine mathematical functions animation shows uniform circular motion unit circle radius angle measured x-axis determines point defined coordinates"},"Aim":{"relativeUrl":"/examples/angles-and-motion-aim","description":"atan2 function calculates angle positions rotate shape eyes cursor"},"Triangle Strip":{"relativeUrl":"/examples/angles-and-motion-triangle-strip","description":"demonstrates create shape vertices TRIANGLE_STRIP mode beginShape endShape vertex functions"},"Circle Clicker":{"relativeUrl":"/examples/games-circle-clicker","description":"demonstrates game time limit score browser's local storage stores high played browser remains Clearing data clears"},"Ping Pong":{"relativeUrl":"/examples/games-ping-pong","description":"game inspired oldest arcade video games Atari's Pong two-player player controls paddle represented white rectangle keys move left arrow Players score points bouncing ball square past edge opponent's side canvas`"},"Snake":{"relativeUrl":"/examples/games-snake","description":"reproduction type arcade game called Snake Blockade released games structure player controls movements snake represented green line player's goal collide fruit red dot time collides grows longer grow long colliding edges play area array vectors store positions segments arrow keys control snake's movement"},"Geometries":{"relativeUrl":"/examples/3d-geometries","description":"p5's WEBGL mode includes primitive shapes plane box cylinder cone torus sphere ellipsoid Additionally model displays custom geometry loaded loadModel NASA's collection"},"Custom Geometry":{"relativeUrl":"/examples/3d-custom-geometry","description":"buildGeometry function stores shapes 3D model efficiently reused"},"Materials":{"relativeUrl":"/examples/3d-materials","description":"3D rendering material determines surface responds light p5's WEBGL mode supports ambient emissive normal specular materials source p5 displays color contexts typically emits visualizes direction part faces respond Ambient combined fill stroke Fill sets base object's vertices Additionally texture wraps object image model NASA's collection"},"Orbit Control":{"relativeUrl":"/examples/3d-orbit-control","description":"Orbit control mouse touch input adjust camera orientation 3D sketch rotate left click drag swipe screen pan multiple fingers move closer center scroll wheel pinch in/out"},"Filter Shader":{"relativeUrl":"/examples/3d-filter-shader","description":"Filter shaders apply effect canvas applied video"},"Adjusting Positions with a Shader":{"relativeUrl":"/examples/3d-adjusting-positions-with-a-shader","description":"Shaders adjust positions vertices shapes lets distort animate 3D models"},"Framebuffer Blur":{"relativeUrl":"/examples/3d-framebuffer-blur","description":"shader depth information p5Framebuffer apply blur real camera objects blurred closer farther lens's focus simulates effect sketch renders spheres framebuffer canvas"},"Create Graphics":{"relativeUrl":"/examples/advanced-canvas-rendering-create-graphics","description":"createGraphics function create p5Graphics object serve off-screen graphics buffer canvas Off-screen buffers dimensions properties current display surface existing space"},"Multiple Canvases":{"relativeUrl":"/examples/advanced-canvas-rendering-multiple-canvases","description":"default p5 runs Global Mode means functions global scope canvas-related apply single canvas run Instance methods instance class mode function defined parameter representing labeled variables typically belong function's Passing constructor"},"Shader as a Texture":{"relativeUrl":"/examples/advanced-canvas-rendering-shader-as-a-texture","description":"Shaders applied 2D/3D shapes textures learn shaders p5js"},"Snowflakes":{"relativeUrl":"/examples/classes-and-objects-snowflakes","description":"demonstrates particle system simulate motion falling snowflakes program defines snowflake class array hold objects"},"Shake Ball Bounce":{"relativeUrl":"/examples/classes-and-objects-shake-ball-bounce","description":"class create collection circles move canvas response tilt mobile device open page display sketch"},"Connected Particles":{"relativeUrl":"/examples/classes-and-objects-connected-particles","description":"custom classes Particle class stores position velocity hue renders circle current updates Path array objects created lines connecting particles user clicks mouse sketch creates instance drags adds path"},"Flocking":{"relativeUrl":"/examples/classes-and-objects-flocking","description":"Demonstration flocking behavior Full discussion implementation found Nature Code book Daniel Shiffman simulation based research Craig Reynolds term boid represent bird-like object"},"Local Storage":{"relativeUrl":"/examples/loading-and-saving-data-local-storage","description":"Browsers websites store data visitor's device called local storage getItem storeItem clearStorage removeItem functions control inspired Daniel Shiffman's Loading JSON Data Tabular examples Processing written Java class organize bubble visitor add bubbles saved revisits sketch reload"},"JSON":{"relativeUrl":"/examples/loading-and-saving-data-json","description":"JavaScript Object Notation JSON format writing data file syntax contexts based Daniel Shiffman's Loading Data Processing written Java class organize bubble sketch starts loads bubbles visitor add download updated load"},"Table":{"relativeUrl":"/examples/loading-and-saving-data-table","description":"Comma-Separated Values CSV format writing data file p5 work p5Table based Daniel Shiffman's Loading Tabular Data Processing class organize representing bubble sketch starts loads bubbles visitor add download updated load"},"Non-Orthogonal Reflection":{"relativeUrl":"/examples/math-and-physics-non-orthogonal-reflection","description":"demonstrates ball bouncing slanted surface implemented vector calculations reflection code makes extensive p5Vector class including createVector function create vectors methods add dot"},"Soft Body":{"relativeUrl":"/examples/math-and-physics-soft-body","description":"Physics simulation soft body experiencing acceleration mouse position shape created curves curveVertex curveTightness"},"Forces":{"relativeUrl":"/examples/math-and-physics-forces","description":"Demonstration multiple forces acting bodies Bodies experience gravity continuously fluid resistance water natureofcodecom force calculations performed p5Vector class including createVector function create vectors"},"Smoke Particles":{"relativeUrl":"/examples/math-and-physics-smoke-particle-system","description":"Smoke particle system demo based Dan Shiffman's original Processing code makes p5Vector class including createVector function calculations updating particles positions velocities performed methods implemented array objects Particle"},"Game of Life":{"relativeUrl":"/examples/math-and-physics-game-of-life","description":"Game Life cellular automaton created mathematician John Conway type simulation grid cells cell dead alive black squares represent living white runs switch based set rules live fewer neighbours dies lives unchanged generation life generate complex interactions Click canvas start randomized Clicking restart"},"Mandelbrot Set":{"relativeUrl":"/examples/math-and-physics-mandelbrot","description":"Colorful rendering Mandelbrot set based Daniel Shiffman's Processing"}},"libraries":{"AnimatorJs":{"relativeUrl":"/libraries/","description":"A javascript animation viewer based on a custom animation API primarily designed for p5.js and allows for dynamic, lightweight, real-time rendered browser animations controlled purely by code."},"BasicECSJs":{"relativeUrl":"/libraries/","description":"A basic javascript ECS system, with SceneManagers, Scenes and GameObjects with their own Start and Update functions."},"BasicUnitTesterJs":{"relativeUrl":"/libraries/","description":"BasicUnitTesterJs is a basic javascript unit tester designed to work on all JS platforms and be small and streamlined for the best developer experience."},"DoubleLinkedListLibJs":{"relativeUrl":"/libraries/","description":"A simple double linked list that stores the head, tail and length of the list"},"MatrixJs":{"relativeUrl":"/libraries/","description":"A basic javascript library for dynamic and powerful matrices based on lists wrapped around with a powerful class."},"OneWayLinkedListLibJs":{"relativeUrl":"/libraries/","description":"A simple one way linked list that stores the head, tail and length of the list"},"Pixyp5js":{"relativeUrl":"/libraries/","description":"A library for easily more easily dealing with pixels in images during runtime"},"Tilemapp5js":{"relativeUrl":"/libraries/","description":"A simple to use & performant tilemap p5.js library"},"TurtleGFX":{"relativeUrl":"/libraries/","description":"TurtleGFX allows to code with Turtle Graphics in JavaScript. Great for education and creative coding."},"TurtleGraphics":{"relativeUrl":"/libraries/","description":"Watch images being drawn using turtle graphics."},"VecJs":{"relativeUrl":"/libraries/","description":"A basic javascript library for dynamic vectors (e.g. vec2 & vec3) based on lists."},"WebGL2FBO":{"relativeUrl":"/libraries/","description":"A simple library for OOP encapsulation and abstraction of some of WebGL2 Framebuffers and the Renderbuffers they rely on"},"WebGL2Tex":{"relativeUrl":"/libraries/","description":"A simple library for OOP encapsulation and abstraction of some of the different WebGL2 textures while still giving full control over them."},"Zoomp5js":{"relativeUrl":"/libraries/","description":"A simple library for adding the zooming functionality to your p5.js project."},"BMWalker.js":{"relativeUrl":"/libraries/","description":"A simple JavaScript library for drawing the biological motion 'Walker'."},"c2.js":{"relativeUrl":"/libraries/","description":"c2.js is a JavaScript library for creative coding based on computational geometry, physics simulation, evolutionary algorithm and other modules."},"canvasGUI":{"relativeUrl":"/libraries/","description":"Create GUI controls directly on your canvas."},"concaveHull":{"relativeUrl":"/libraries/","description":"Calculate a Concave Hull from a set of points in 2D space"},"HY5":{"relativeUrl":"/libraries/","description":"hydra ๐ p5.js ~ share visuals between both frameworks!"},"lygia":{"relativeUrl":"/libraries/","description":"LYGIA is a shader library of reusable functions that will let you prototype, port or ship a project in just few minutes. It's very granular, flexible and efficient. Support multiple shading languages and can easily be added to any project, enviroment or framework of your choice. \n"},"ml5.js":{"relativeUrl":"/libraries/","description":"Friendly machine learning for the webโa neighborly approach to creating and exploring artificial intelligence in the browser."},"nรบmero":{"relativeUrl":"/libraries/","description":"A friendly and intuitive math library for p5.js."},"p5-phone":{"relativeUrl":"/libraries/","description":"Mobile hardware access for p5.js - Simplifies accessing phone hardware, locks default gestures, and adds an onscreen console."},"p5.5":{"relativeUrl":"/libraries/","description":"Add UI to p5.js and other goodies"},"p5.FIP":{"relativeUrl":"/libraries/","description":"Real-time image processing library - add filters and post-processing to your p5.js sketches."},"p5.Modbuttons":{"relativeUrl":"/libraries/","description":"a simple and modular button system for p5js"},"p5.Polar":{"relativeUrl":"/libraries/","description":"p5.Polar provides mathematical abstractions making it easy to create create beautiful, kaleidoscopic, radial patterns."},"p5.SceneManager":{"relativeUrl":"/libraries/","description":"p5.SceneManager helps you create sketches with multiple states / scenes. Each scene is a like a sketch within the main sketch."},"p5.Sprite":{"relativeUrl":"/libraries/","description":"A basic sprite library that supports both animated and static sprites for p5.js"},"p5.Utils":{"relativeUrl":"/libraries/","description":"p5.Utils is a tool collection for my coding class, featuring a pixel ruler, gradient fill color bindings, and other helpful shortcuts for beginners."},"p5.anaglyph":{"relativeUrl":"/libraries/","description":"A library for creating 3D stereoscopic 3D scenes and images using red/cyan glasses"},"p5.animS":{"relativeUrl":"/libraries/","description":"Animates p5.js shapes by rendering their drawing processes."},"p5.asciify":{"relativeUrl":"/libraries/","description":"Apply real-time ASCII conversion to your favorite WEBGL p5.js sketches instantly."},"p5.bezier":{"relativeUrl":"/libraries/","description":"p5.bezier helps draw Bรฉzier curves with more than four control points and closed curves."},"p5.ble":{"relativeUrl":"/libraries/","description":"A Javascript library that enables communication between your BLE devices and your p5.js sketch."},"p5.brush":{"relativeUrl":"/libraries/","description":"Unlock custom brushes, natural fill effects and intuitive hatching in p5.js."},"p5.capture":{"relativeUrl":"/libraries/","description":"Record your p5.js sketches effortlessly!"},"p5.cmyk":{"relativeUrl":"/libraries/","description":"CMYK color for p5.js"},"p5.collide2d":{"relativeUrl":"/libraries/","description":"p5.collide2D provides tools for calculating collision detection for 2D geometry with p5.js."},"p5.colorGenerator":{"relativeUrl":"/libraries/","description":"p5.colorGenerator generates harmonious color schemes by starting from a given base color or selecting a random color as a starting point."},"p5.comfyui-helper":{"relativeUrl":"/libraries/","description":"A library for interfacing with ComfyUI"},"p5.createLoop":{"relativeUrl":"/libraries/","description":"Create animation loops with noise and GIF exports in one line of code."},"p5.csg":{"relativeUrl":"/libraries/","description":"A library for constructive solid geometry. Do Boolean operations on your p5.Geometry to make new shapes!"},"p5.fab":{"relativeUrl":"/libraries/","description":"p5.fab controls digital fabrication machines from p5.js!\n"},"p5.fillGradient":{"relativeUrl":"/libraries/","description":"Fill shapes in p5.js with Linear, Radial and Conic Gradients."},"p5.filterRenderer":{"relativeUrl":"/libraries/","description":"A library for rendering 3D scenes with depth-of-field blur and with ambient occlusion shadows."},"p5.flex":{"relativeUrl":"/libraries/","description":"p5 container with responsive canvas feature."},"p5.fps":{"relativeUrl":"/libraries/","description":"Add a simple FPS counter to your sketches."},"p5.geolocation":{"relativeUrl":"/libraries/","description":"p5.geolocation provides techniques for acquiring, watching, calculating, and geofencing user locations for p5.js."},"p5.glitch":{"relativeUrl":"/libraries/","description":"p5.js library for glitching images and binary files in the web browser"},"p5.grain":{"relativeUrl":"/libraries/","description":"Conveniently add film grain, seamless texture overlays, and manipulate pixels to achieve nostalgic and artistic effects in p5.js sketches and artworks."},"p5.joystick":{"relativeUrl":"/libraries/","description":"Connect and play with physical joysticks."},"p5.localessage":{"relativeUrl":"/libraries/","description":"p5.localmessage provides a simple interface to send messages locally from one sketch to another."},"p5.mapper":{"relativeUrl":"/libraries/","description":"A projection mapping library for p5.js"},"p5.marching":{"relativeUrl":"/libraries/","description":"Raster to vector conversion, isosurfaces."},"p5.palette":{"relativeUrl":"/libraries/","description":"A library to manage color palettes in p5.js"},"p5.party":{"relativeUrl":"/libraries/","description":"quickly prototype networked multiplayer games and apps"},"p5.pattern":{"relativeUrl":"/libraries/","description":"A pattern drawing library for p5.js."},"p5.qol":{"relativeUrl":"/libraries/","description":"Extend p5 with Quality of Life utilities."},"p5.quadrille.js":{"relativeUrl":"/libraries/","description":"A library for creating puzzle and board games, and for visual computing experiments."},"p5.Riso":{"relativeUrl":"/libraries/","description":"p5.Riso is a library for generating files suitable for Risograph printing. It helps turn your sketches into multi-color prints."},"p5.scaler":{"relativeUrl":"/libraries/","description":"Smart scaling of p5.js sketches in a variety of ways (to fit the browser's inner dimensions, to fit the canvas DOM container, to a specific ratio, etc)."},"p5.serialserver":{"relativeUrl":"/libraries/","description":"p5.serialserver is a p5.js library that enables communication between your p5.js sketch and a serial enabled device, for example, an Arduino microcontroller."},"p5.simpleAR":{"relativeUrl":"/libraries/","description":"A simple JavaScript library that easily converts existing p5.js sketches to AR."},"p5.spatial.js":{"relativeUrl":"/libraries/","description":"Adds multichannel audio support for p5.sound.js."},"p5.speech":{"relativeUrl":"/libraries/","description":"p5.speech provides simple, clear access to the Web Speech and Speech Recognition APIs, allowing for the easy creation of sketches that can talk and listen."},"p5.teach.js":{"relativeUrl":"/libraries/","description":"A beginner friendly math animation library for p5.js"},"p5.toio":{"relativeUrl":"/libraries/","description":"A JavaScript library for controlling toioโขCore Cube from p5.js sketches."},"p5.touchgui":{"relativeUrl":"/libraries/","description":"p5.touchgui is intended to extend p5.js and make it easy to add buttons, sliders, and other GUI (graphical user interface) objects to your p5.js sketches, enabling you to focus on quickly iterating ideas with easily created GUI objects that work with both mouse and multi-touch input."},"p5.transparency":{"relativeUrl":"/libraries/","description":"In WebGL mode, you may have noticed that transparent images still occlude other objects as if they're opaque. This library provides helper functions you can surround each item with to make your items blend better."},"p5.treegl":{"relativeUrl":"/libraries/","description":"Shader development and space transformations WEBGL p5.js library."},"p5.tween":{"relativeUrl":"/libraries/","description":"With p5.tween you can create easily animations as tween in a few keyframes."},"p5.videorecorder":{"relativeUrl":"/libraries/","description":"Record your canvas as a video file with audio."},"p5.warp":{"relativeUrl":"/libraries/","description":"Fast 3D domain warping using shaders."},"p5.webserial":{"relativeUrl":"/libraries/","description":"A library for interacting with Serial devices from within the browser, based on Web Serial API (available on Chrome and Edge)."},"p5.woff2":{"relativeUrl":"/libraries/","description":"An addon to add support for WebGL rendering, textToPoints, and related text methods for woff2 fonts. Load a Google Fonts URL and you're good to go!"},"p5.xr":{"relativeUrl":"/libraries/","description":"A library for creating VR and AR sketches with p5."},"p5grid":{"relativeUrl":"/libraries/","description":"Hexagonal Tiling Library"},"p5jsDebugCam":{"relativeUrl":"/libraries/","description":"A basic keyboard only debug camera for p5.js"},"p5mirror":{"relativeUrl":"/libraries/","description":"A library to download your editor.p5js sketches into a git repo or locally"},"p5play":{"relativeUrl":"/libraries/","description":"JS game engine that uses p5.js for graphics and Box2D for physics."},"p5snap":{"relativeUrl":"/libraries/","description":"a command-line interface to create snapshots of sketches"},"p5videoKit":{"relativeUrl":"/libraries/","description":"A dashboard for mixing video in the browser"},"pretty-grid":{"relativeUrl":"/libraries/","description":"Create and manipulate grids with Javascript"},"rita.js":{"relativeUrl":"/libraries/","description":"tools for natural language and generative writing"},"Shader Park":{"relativeUrl":"/libraries/","description":"Explore shader programming through a JavaScript interface without the complexity of GLSL. Quickly script shaders using a P5.js style language."},"simple.js":{"relativeUrl":"/libraries/","description":"Helper functions and defaults for young and new coders."},"svg-shapes-p5js":{"relativeUrl":"/libraries/","description":"A SVG drawing library for p5.js."},"Total Serialism":{"relativeUrl":"/libraries/","description":"A toolbox full of methods for procedurally generating and transforming arrays mainly focused on algorithmic composition. Includes methods like markov-chain, cellular automaton, lindenmayer system, euclidean distribution and much more! Generate the array with your desired method and easily iterate over them in a for-loop to draw the results."},"UI Renderer":{"relativeUrl":"/libraries/","description":"Create a UI within your sketch, including utilities for different layouts and interactive sliders."},"WEBMIDI.js":{"relativeUrl":"/libraries/","description":"A user-friendly library to send and receive MIDI messages with ease."},"XYscope.js":{"relativeUrl":"/libraries/","description":"p5.js library to render graphics on analog vector displays"}},"events":{"p5.js Contributors Conference 2015":{"relativeUrl":"/events/contributors-conference-2015","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro VimeoEmbed ///components/VimeoEmbed/indexastro group approximately participants gathered spent week [Frank-Ratchye STUDIO Creative Inquiry](http://studioforcreativeinquiry.org/), advancing code documentation community outreach tools p5js programming environment Participants Hong Kong Seattle Los Angeles Boston York working professionals fields creative technology interaction design new-media arts included half-dozen undergraduate graduate students Carnegie Mellons Schools Art Architecture [A smile make p5 sign hands]/images/cc2015/2015_1jpg [Woman presenting statement laptop]/images/cc2015/2015_3jpg expressively speaks microphone male collaborators on]/images/cc2015/2015_4jpg [Participants attentively listen presentation]/images/cc2015/2015_5jpg reads female students]/images/cc2015/2015_6jpg sit circle white board sticky notes student microphone]/images/cc2015/2015_7jpg table laptops compare code]/images/cc2015/2015_8jpg [Whiteboard colored written programming]/images/cc2015/2015_9jpg speaking valuing skill sets powerpoint classroom]/images/cc2015/2015_10jpg podium auditorium stage skyping screen]/images/cc2015/2015_11jpg [Overhead view classroom laptops]/images/cc2015/2015_12jpg [Five people discussion circle]/images/cc2015/2015_13jpg sharing notes]/images/cc2015/2015_14jpg [Man participants]/images/cc2015/2015_15jpg jump throw hands air green lawn]/images/cc2015/2015_2jpg Introduction Casey Reas Johanna Hedva Stephanie Pi Phoenix Perry Taeyoon Choi Sara Hendren Epic Jefferson Chandler McWilliams Q&A ## [Jason Alderman](http://huah.net/jason/), [Sepand Ansari](http://sepans.com/), [Tega Brain](http://tegabrain.com/), [Emily Chen](https://medium.com/@emchenNYC/), [Andres Colubri](http://andrescolubri.net/), [Luca Damasco](https://twitter.com/lucapodular), [Guy de Bree](http://guydebree.com/), [Christine Carteret](http://www.cjdecarteret.com/), [Xy Feng](http://xystudio.cc/), [Sarah Groff-Palermo](http://www.sarahgp.com/), [Chris Hallberg](http://www.crhallberg.com/), [Val Head](http://valhead.com/), [Johanna Hedva](http://johannahedva.com/), [Kate Hollenbach](http://www.katehollenbach.com/), [Jennifer Jacobs](http://web.media.mit.edu/~jacobsj/), [Epic Jefferson](http://www.epicjefferson.com/), [Michelle Partogi](http://michellepartogi.com/), [Sam Lavigne](http://lav.io/), [Golan Levin](http://flong.com/), [Cici Liu](http://www.liuchangitp.com/), [Maya Man](http://www.mayaman.cc/), [Lauren McCarthy](http://lauren-mccarthy.com/), [David Newbury](http://www.workergnome.com/), [Paolo Pedercini](http://molleindustria.org/), [Luisa Pereira](http://luisaph.com/), [Miles Peyton](http://mileshiroo.info/), [Caroline Record](http://carolinerecord.com/), [Berenger Recoules](http://b2renger.github.io/), [Stephanie Pi](https://pibloginthesky.wordpress.com/), Sigal](http://jasonsigal.cc/), [Kevin Siwoff](http://studioindefinit.com/), [Charlotte Stiles](http://charlottestiles.com/) Diversity Alongside technical development main focuses conference diversity began panelโ[Diversity Voices Race Gender Ability Class FLOSS Internet](http://studioforcreativeinquiry.org/events/diversity-seven-voices-on-race-gender-ability-class-for-floss-and-the-internet). Organized Hedva](http://johannahedva.com/) panel place Tuesday Kresge Auditorium Mellon University Speakers [Casey Reas](http://reas.com/), [Phoenix Perry](http://phoenixperry.com/), [Taeyoon Choi](http://taeyoonchoi.com/), [Sara Hendren](http://ablersite.org/), [Chandler McWilliams](http://chandlermcwilliams.com/). poster Internet]/images/cc2015/diversity_640jpg Support contributor Inquiry](http://studioforcreativeinquiry.org/) academic laboratory atypical anti-disciplinary inter-institutional research intersections science culture event made grant [National Endowment Arts](https://arts.gov/), generous support [NYU Interactive Telecommunications Program](https://tisch.nyu.edu/itp) ITP [Processing Foundation](http://foundation.processing.org/), [TheArtificial](http://theartificial.nl/), [Bocoup](http://bocoup.com/), [Darius Kazemi](http://tinysubversions.com/), [Emergent Digital Practices | Denver] **Thank you** [The National Arts NEA]/images/logo/artworksjpg Frank-Ratchye Inquiry]/images/logo/frank-ratchyepng ITP]/images/logo/itppng Emergent program Denver]/images/logo/edppng [ITP]/images/logo/bocouppng Artificial]/images/logo/theartificialpng undefined"},"p5.js Contributors Conference 2019":{"relativeUrl":"/events/contributors-conference-2019","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro interdisciplinary group participants gathered Frank-Ratchye STUDIO Creative Inquiry advancing code documentation community outreach tools exploring current landscape p5js programming environment Comprising diverse range fields creative technology interaction design media arts conference aimed fostering dialogue multidisciplinary lens Working groups focused topic areas Access Music Code Performance Landscape Tech Internationalization Videos Qianqian Ye [Man podium giving presentation group]/images/cc2019/2019_1jpg [Participants sitting long table lunch discussion]/images/cc2019/2019_2jpg [Classroom working laptops]/images/cc2019/2019_4jpg meeting dark classroom]/images/cc2019/2019_5jpg [Woman classroom participants]/images/cc2019/2019_6jpg conversing busy classroom]/images/cc2019/2019_7jpg microphone speaking fellow classroom]/images/cc2019/2019_8jpg [Participant speaks front projected text problem anonymyzing data]/images/cc2019/2019_9jpg [Person reads add features increase access]/images/cc2019/2019_10jpg talking ]/images/cc2019/2019_11jpg [A man participants]/images/cc2019/2019_12jpg sit speakers listening intently]/images/cc2019/2019_13jpg sacred boundaries projection her]/images/cc2019/2019_15jpg [Overhead view panel people image 3d rendered it]/images/cc2019/2019_16jpg laptops observe screen]/images/cc2019/2019_17jpg lifesize teddy bear works laptop]/images/cc2019/2019_18jpg standing smiling]/images/cc2019/2019_19jpg [Four circle conversing]/images/cc2019/2019_20jpg eating together]/images/cc2019/2019_21jpg large shaped classroom]/images/cc2019/2019_22jpg energetically microphone]/images/cc2019/2019_23jpg [Group campfire made LCD monitors]/images/cc2019/campfirejpg photo smiling enthusiastically hands air]/images/cc2019/2019_24jpg Photos Jacquelyn Johnson ## Participants American Artist Omayeli Arenyeka Sina Bahram Aatish Bhatia Natalie Braginsky Jon Chambers Luca Damasco Aren Davey Ted Davis Carlos Garcia Stalgia Grigg Kate Hollenbach shawnรฉ michaelain holloway Claire Kearney-Volpe Sona Lee Kenneth Lim Evelyn Masso Lauren McCarthy LaJunรฉ McMillian Allison Parrish Luisa Pereira Guillermo Montecinos Aarรณn Montoya-Moraga Luis Morales-Navarro Shefali Nayak Everest Pipkin Olivia Ross Dorothy Santos Yasheng Jun Shern Chan Cassie Tarakajian Valley Xin Alex Yixuan Xu Outputs - Blackness Gender Virtual Space led art installations prototype notebook interface Created library system p5 Editor Prototypes connecting libraries Global Contributor's Toolkit write non-violent zine overhaul website accessibility Including updates screen reader improvements home download started reference pages contributions p5grid implementation highly flexible triangle square hexagon octagon girds p5multiplayer set template files building multi-device multiplayer game multiple clients connect host page L05 Experiments P5LIVE testing early implementations softCompile OSC interfacing added connectivity demo MIDI setup collaborative live-coding vj Collaborative performances performance Workshops closing Golan Levin Support contributor place Carnegie Mellon University academic laboratory atypical anti-disciplinary inter-institutional research intersections science culture event grant National Endowment Arts generous support Processing Foundation Mozilla Clinic Open Source COSA Denver NYU Tandon IDM ITP FHNW Academy Art Design DePaul College Computing Digital Media Parsons School Technology **Thank you** [The NEA]/images/logo/artworksjpg Inquiry]/images/logo/frank-ratchyepng [University Applied Sciences Northwestern Switzerland Design]/images/logo/northwestern-switzerlandjpg [Processing Foundation]/images/logo/processing-foundationpng [Clinic Arts]/images/logo/COSApng [NYU Engineering Integrated Media]/images/logo/nyujpg [Parsons Technology]/images/logo/Parsonsjpg ITP]/images/logo/itppng [DePaul University]/images/logo/depaulpng undefined"},"p5.js Access Day 2022":{"relativeUrl":"/events/p5js-access-day-2022","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js Access Day virtual conference talk access open-source software arts OSSTA greater issues day-long online event features themed-sessions โ Critical Web Accessibility Disability Arts Community Building Translation space contributors experienced practitioners projects share knowledge perspectives dreams building technical spaces Organizer curator [Qianqian Ye](https://qianqian-ye.com/) Event Coordinator Video Producer [Karen Abe](https://www.instagram.com/prod.ka/) ## Recap ASL Interpretation Opening Moderator [Kate Hollenbach](http://www.katehollenbach.com/), Speakers [Luis Morales-Navarro](http://luismn.com/), [Jes Daigle](https://twitter.com/techandautism) [Xiaowei Wang](https://www.xiaoweiwang.com/), [Natalee Decker](https://www.instagram.com/crip_fantasy/), [Kemi Sijuwade-Ukadike](https://www.linkedin.com/in/adekemisijuwade), [Kevin Gotkin](https://kevingotkin.com/) [Dorothy Santos](https://dorothysantos.com/), [Tiny Tech Zine](https://tinytechzines.org/), [Close Isnt Home](https://closeisnthome.com/), [Zainab Aliyu](https://zai.zone/) [Kenneth Lim](https://limzykenneth.com/), [Inhwa Yeom](https://yinhwa.art/), [Shaharyar Shamshi](https://shaharyarshamshi.xyz/), [Felipe Gomes](https://felipesg.cargo.site/) Closing Production - Advisor [Claire Kearney-Volpe](http://www.takinglifeseriously.com/index.html), [Saber Khan](https://www.edsaber.info/), [evelyn masso](https://outofambit.format.com/), [Lauren Lee McCarthy](http://lauren-mccarthy.com/), [Xin Xin](https://xin-xin.info/) Live [Pro Bono ASL](https://www.probonoasl.com/) Graphic Designer [Katie Chan](https://twitter.com/katiechaan) Support Abe](https://www.instagram.com/prod.ka/), [Jay Borgwardt](https://www.jayborgwardt.com/), [Yuehao Jiang](https://yuehaojiang.com/) Closed Captioning Transcription Ju Hye Kim Xiao Yi Wang-Beckval Wong](https://www.instagram.com/claireewongg/) made grant [Mozilla Foundation](https://foundation.mozilla.org/) Award generous support [Processing Foundation](https://processingfoundation.org/) [Frank-Ratchye STUDIO Creative Inquiry](http://studioforcreativeinquiry.org/). **Thank you** Foundation]/images/logo/mozilla-foundationpng [The Frank-Ratchye Inquiry]/images/logo/frank-ratchyepng Foundation]/images/logo/processing-foundationpng undefined"},"p5.js Community Salon 2023":{"relativeUrl":"/events/p5js-community-salon-2023","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js Community Salon public gathering community members share connect NYU ITP Thursday March 630-730pm event group speakers briefly work food social time ## Organizers organized Project Lead [Qianqian Ye](https://qianqian-ye.com), part IMA/ITP Fellowship supported Sonia Choi Communications Coordinator Processing Foundation Photo credit [Ziyuan Lin](https://www.ziyuanlin.com). Ye holding mic big tv screen grid contributor photos it]/images/p5js-salon-2023/salon-2JPG Speakers Zainab Aliyu [Zainab image book reading excerpt it]/images/p5js-salon-2023/salon-3JPG Aarati Akkapedi [Aarati whiteboard collection printed them]/images/p5js-salon-2023/salon-4JPG [Suhyun work]/images/p5js-salon-2023/salon-5JPG Don Hanson [Don front work]/images/p5js-salon-2023/salon-6JPG Shawnรฉ Michaelain Holloway [Shawnรฉ work]/images/p5js-salon-2023/salon-7JPG Tsige Tafesse [Tsige Open Call]/images/p5js-salon-2023/salon-8JPG Rachel Lim [Rachel Web Editor Features]/images/p5js-salon-2023/salon-9JPG Jackie Liu [Jackie series screenshots game project Chao bing]/images/p5js-salon-2023/salon-10JPG Olivia McKayla Ross [Olivia p5 salon poster it]/images/p5js-salon-2023/salon-11JPG Munus Shih [Munus pronouns facts him]/images/p5js-salon-2023/salon-12JPG Xin [Xin text work]/images/p5js-salon-2023/salon-13JPG Lavanya Suresh [Lavanya Kolams]/images/p5js-salon-2023/salon-14JPG [p5js poster]/images/p5js-salon-2023/0-banner-p5js-community-salonjpg [A presenters organizers smiling making silly faces camera kneeling standing upright]/images/p5js-salon-2023/salon-15JPG audience sitting crowded room curious expression]/images/p5js-salon-2023/salon-16JPG ### Recap Video Part Support **Thank you** [NYU ITP]/images/logo/itppng undefined"},"Sovereign Tech Fund x p5.js Documentation Accessibility Project":{"relativeUrl":"/events/stf-2024","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js selected receive total โฌ450000 rounds funding [Sovereign Tech Fund](https://sovereigntechfund.de/en) enhance [p5js Documentation organization accessibility](https://www.sovereigntechfund.de/tech/p5js). work part Sovereign Funds [Contribute Back Open Source Challenges](https://sovereigntechfund.de/en/challenges/). project addressed longstanding challenges scatterness limited accessibility documentation final deliverable includes updated website focus accessible organized translated contributor Additionally features curated collection community sketches add-ons library educational resources providing improved aims facilitate effective navigation feature exploration empowering users create richer innovative projects promotes inclusivity ensuring people diverse backgrounds skill levels cultures engage meaningfully ## Contributors brought approximately contributors 60-75 participating round team included experienced first-time forming global group dedicated writing translating designing engineering researching conducting reviews open-source typically operate independently fostered collective efforts encouraging collaboration individuals skills perspectives shift collaborative endeavors led cohesive synergistic approach advancing exemplifying strength community-driven initiatives landscape **Thank participated STF made ๐** Processing Foundation administrative support** ### Round *September December 2023* #### Internal Team * Project Lead Manager Qianqian Ye Doc Kenneth Lim Dave Pagurek Nick McIntyre Assistant Karen Abe Website Designer Stefanie Tam Tyler Yin Developer Bocoup cypress masso Stalgia Grigg Carmen Caรฑas Isaac Durazo Accessibility Consultant Andy Slater Proofreader Fivver Definition Workshop Organizer Winnie Koundinya Dhulipalla Facilitator Yasmine Boudiaf Jazmin Morris Participants UAL CCI Examples Caleb Foss Writer Darren Kessner Kathryn Lichlyter Reviewer Amy Chen Lance Cole Tutorials Writers Reviewers Joanne Amarisa Gregory Benedis-Grab Christine Belzie Tristan Bunn Julien Kris Ruth Ikegah Portia Morrell Jaleesa Trapp Akanksha Vyas WebGL Adam Ferriss Contributor Alm Chung Tanvi Kumar Luis Morales-Navarro Community Statement Code Conduct Oluwakemi Oritsejafor Zainab Aliyu *January April 2024* Copywriter Sarah Ciston sketch Curator Special Sinan Ascioglu OpenProcessing supporting Translation Researcher Spanish Steward Cristian Baรฑuelos Sebastiรกn Mรฉndez Diana Galindo Clavijo Xavier Gongora Marcela Martinez Galvan Emilio Ocelotl Reyes Marianne Teixido Guzmรกn Chinese Weijia Li Miaoye Chirui Cheng Lingxiao Wang Shengnan Angela Rong Yudi Wu Hindi Divyansh Srivastava Eshaan Aggarwal Akash Jaiswalm Aditya Rana Sanjay Singh Rajpoot Surbhi Pittie Korean Inhwa Yeom Sejin Yewon Jang Yunyoung Minwook Park Sunghun Hyunwoo Rhee Reference Technical Layla Quiรฑones Nat Decker thai Lu Cielo Saucedo Liam Coleman Revisions Kate Machmeyer Support supported Fund supports development improvement maintenance open digital infrastructure public interest goal strengthen source ecosystem sustainably focusing security resilience technological diversity code funded German Federal Ministry Economic Affairs Climate Action BMWK hosted Agency Disruptive Innovation GmbH SPRIND **Thanks project** Links [STF](https://www.sovereigntechfund.de/programs/challenges): Contribute Open-source Challenge [MEDIUM](https://medium.com/@ProcessingOrg/p5-js-receives-major-funding-from-the-sovereign-tech-fund-bbf61d1171fe): Receives Major Funding Fund]/images/logo/stfwebp undefined"}},"people":{"A Welles":{"relativeUrl":"/people/#a-welles"},"Aarati Akkapeddi ":{"relativeUrl":"/people/#aarati-akkapeddi-"},"Aaron Casanova":{"relativeUrl":"/people/#aaron-casanova"},"Aaron George":{"relativeUrl":"/people/#aaron-george"},"aarรณn montoya-moraga":{"relativeUrl":"/people/#aaron-montoya-moraga"},"Aaron Ni":{"relativeUrl":"/people/#aaron-ni"},"Aaron Welles":{"relativeUrl":"/people/#aaron-welles"},"Aatish Bhatia":{"relativeUrl":"/people/#aatish-bhatia"},"Abdiel Lopez":{"relativeUrl":"/people/#abdiel-lopez"},"Abe Pazos":{"relativeUrl":"/people/#abe-pazos"},"Abhay M Joshi":{"relativeUrl":"/people/#abhay-m-joshi"},"Abhi Gulati":{"relativeUrl":"/people/#abhi-gulati"},"Abhinav Kumar":{"relativeUrl":"/people/#abhinav-kumar"},"Abhinav Sagar":{"relativeUrl":"/people/#abhinav-sagar"},"Abhinav Srinivas":{"relativeUrl":"/people/#abhinav-srinivas"},"Abishake":{"relativeUrl":"/people/#abishake"},"Abu Harish Faridi":{"relativeUrl":"/people/#abu-harish-faridi"},"AC":{"relativeUrl":"/people/#ac"},"Acha":{"relativeUrl":"/people/#acha"},"Adam Ferriss":{"relativeUrl":"/people/#adam-ferriss"},"Adam Krรกl":{"relativeUrl":"/people/#adam-kral"},"Adam Smith":{"relativeUrl":"/people/#adam-smith"},"Adarsh":{"relativeUrl":"/people/#adarsh"},"Adil Rabbani":{"relativeUrl":"/people/#adil-rabbani"},"Aditya Deshpande":{"relativeUrl":"/people/#aditya-deshpande"},"Aditya Mohan":{"relativeUrl":"/people/#aditya-mohan"},"Aditya Rachman Putra":{"relativeUrl":"/people/#aditya-rachman-putra"},"Aditya Rana":{"relativeUrl":"/people/#aditya-rana"},"Aditya Shrivastav":{"relativeUrl":"/people/#aditya-shrivastav"},"Aditya Siddheshwar":{"relativeUrl":"/people/#aditya-siddheshwar"},"aditya123473892":{"relativeUrl":"/people/#aditya123473892"},"Adwaith D":{"relativeUrl":"/people/#adwaith-d"},"agrshch":{"relativeUrl":"/people/#agrshch"},"Ahmet Kaya":{"relativeUrl":"/people/#ahmet-kaya"},"Aidan Nelson":{"relativeUrl":"/people/#aidan-nelson"},"Aierie":{"relativeUrl":"/people/#aierie"},"Ajaya Mati":{"relativeUrl":"/people/#ajaya-mati"},"ajayTDM":{"relativeUrl":"/people/#ajaytdm"},"Ajeet Pratap Singh":{"relativeUrl":"/people/#ajeet-pratap-singh"},"Akash Jaiswal":{"relativeUrl":"/people/#akash-jaiswal"},"AKASH RAJ":{"relativeUrl":"/people/#akash-raj"},"Akash":{"relativeUrl":"/people/#akash"},"Akhil Raj":{"relativeUrl":"/people/#akhil-raj"},"Akshat Nema":{"relativeUrl":"/people/#akshat-nema"},"Akshay Padte":{"relativeUrl":"/people/#akshay-padte"},"al6862":{"relativeUrl":"/people/#al6862"},"Alberto Di Biase":{"relativeUrl":"/people/#alberto-di-biase"},"Alejandra Trejo":{"relativeUrl":"/people/#alejandra-trejo"},"Alejandro":{"relativeUrl":"/people/#alejandro"},"Alex Lyons":{"relativeUrl":"/people/#alex-lyons"},"Alex Troesch":{"relativeUrl":"/people/#alex-troesch"},"AliLordLoss":{"relativeUrl":"/people/#alilordloss"},"AlM Chng":{"relativeUrl":"/people/#alm-chng"},"Aloneduckling":{"relativeUrl":"/people/#aloneduckling"},"alp tuฤan":{"relativeUrl":"/people/#alp-tugan"},"Alza Alzaki":{"relativeUrl":"/people/#alza-alzaki"},"Amey Bhavsar":{"relativeUrl":"/people/#amey-bhavsar"},"anagondesign":{"relativeUrl":"/people/#anagondesign"},"Andrรกs Gรกrdos":{"relativeUrl":"/people/#andras-gardos"},"AndrasGG":{"relativeUrl":"/people/#andrasgg"},"andrei antonescu":{"relativeUrl":"/people/#andrei-antonescu"},"Andrew McWhae":{"relativeUrl":"/people/#andrew-mcwhae"},"Andy Timmons":{"relativeUrl":"/people/#andy-timmons"},"Animesh Sinha":{"relativeUrl":"/people/#animesh-sinha"},"Ankush Banik":{"relativeUrl":"/people/#ankush-banik"},"Anna Carreras":{"relativeUrl":"/people/#anna-carreras"},"Annie McKinnon":{"relativeUrl":"/people/#annie-mckinnon"},"anniezhengg":{"relativeUrl":"/people/#anniezhengg"},"Anshuman Maurya":{"relativeUrl":"/people/#anshuman-maurya"},"Anthony Su":{"relativeUrl":"/people/#anthony-su"},"Antoinette Bumatay-Chan":{"relativeUrl":"/people/#antoinette-bumatay-chan"},"Antonio Jesรบs Sรกnchez Padial":{"relativeUrl":"/people/#antonio-jesus-sanchez-padial"},"ANURAG GUPTA":{"relativeUrl":"/people/#anurag-gupta"},"Aqmalp99":{"relativeUrl":"/people/#aqmalp99"},"Arbaaz":{"relativeUrl":"/people/#arbaaz"},"Arihant Parsoya":{"relativeUrl":"/people/#arihant-parsoya"},"Arijit Kundu":{"relativeUrl":"/people/#arijit-kundu"},"Arijit":{"relativeUrl":"/people/#arijit"},"Armaan Gupta":{"relativeUrl":"/people/#armaan-gupta"},"Arsenije Savic":{"relativeUrl":"/people/#arsenije-savic"},"ArshM17":{"relativeUrl":"/people/#arshm17"},"Aryan Koundal":{"relativeUrl":"/people/#aryan-koundal"},"Aryan Singh":{"relativeUrl":"/people/#aryan-singh"},"Aryan Thakor":{"relativeUrl":"/people/#aryan-thakor"},"Ashish Karn":{"relativeUrl":"/people/#ashish-karn"},"ashish singh":{"relativeUrl":"/people/#ashish-singh"},"Ashley Kang":{"relativeUrl":"/people/#ashley-kang"},"Ashris":{"relativeUrl":"/people/#ashris"},"ashu8912":{"relativeUrl":"/people/#ashu8912"},"Ashwani Dey":{"relativeUrl":"/people/#ashwani-dey"},"AsukaMinato":{"relativeUrl":"/people/#asukaminato"},"Atmaja P.":{"relativeUrl":"/people/#atmaja-p-"},"Atul Varma":{"relativeUrl":"/people/#atul-varma"},"Austin Cawley-Edwards":{"relativeUrl":"/people/#austin-cawley-edwards"},"Austin Lee Slominski":{"relativeUrl":"/people/#austin-lee-slominski"},"Avelar":{"relativeUrl":"/people/#avelar"},"Ayush Jain":{"relativeUrl":"/people/#ayush-jain"},"Ayush Shankar":{"relativeUrl":"/people/#ayush-shankar"},"Ayush Sharma":{"relativeUrl":"/people/#ayush-sharma"},"Ayushman":{"relativeUrl":"/people/#ayushman"},"b2renger":{"relativeUrl":"/people/#b2renger"},"beau-muylle":{"relativeUrl":"/people/#beau-muylle"},"Ben Fry":{"relativeUrl":"/people/#ben-fry"},"Ben Gilbert":{"relativeUrl":"/people/#ben-gilbert"},"Ben Greenberg":{"relativeUrl":"/people/#ben-greenberg"},"Ben Hinchley":{"relativeUrl":"/people/#ben-hinchley"},"Ben Moren":{"relativeUrl":"/people/#ben-moren"},"Ben Scheiner":{"relativeUrl":"/people/#ben-scheiner"},"Ben Wendt":{"relativeUrl":"/people/#ben-wendt"},"Benjamin Davies":{"relativeUrl":"/people/#benjamin-davies"},"Benoรฎt Bourรฉ":{"relativeUrl":"/people/#benoit-boure"},"benpalevsky":{"relativeUrl":"/people/#benpalevsky"},"BerfinA":{"relativeUrl":"/people/#berfina"},"Berke รzgen":{"relativeUrl":"/people/#berke-ozgen"},"Bernice Wu":{"relativeUrl":"/people/#bernice-wu"},"Bharath Kumar R":{"relativeUrl":"/people/#bharath-kumar-r"},"blackboxlogic":{"relativeUrl":"/people/#blackboxlogic"},"Blaize Kaye":{"relativeUrl":"/people/#blaize-kaye"},"Boaz":{"relativeUrl":"/people/#boaz"},"Bob Holt":{"relativeUrl":"/people/#bob-holt"},"Bob Ippolito":{"relativeUrl":"/people/#bob-ippolito"},"Bobby Kazimiroff":{"relativeUrl":"/people/#bobby-kazimiroff"},"Bojidar Marinov":{"relativeUrl":"/people/#bojidar-marinov"},"Boris Bucha":{"relativeUrl":"/people/#boris-bucha"},"Brad Buchanan":{"relativeUrl":"/people/#brad-buchanan"},"Brad Smith":{"relativeUrl":"/people/#brad-smith"},"Brahvim":{"relativeUrl":"/people/#brahvim"},"Brett Cooper":{"relativeUrl":"/people/#brett-cooper"},"Brian Boucheron":{"relativeUrl":"/people/#brian-boucheron"},"Brian Whitman":{"relativeUrl":"/people/#brian-whitman"},"brightredchilli":{"relativeUrl":"/people/#brightredchilli"},"Bryan":{"relativeUrl":"/people/#bryan"},"bsubbaraman":{"relativeUrl":"/people/#bsubbaraman"},"Bulkan Evcimen":{"relativeUrl":"/people/#bulkan-evcimen"},"c-dacanay":{"relativeUrl":"/people/#c-dacanay"},"cab_kyabe":{"relativeUrl":"/people/#cab-kyabe"},"cacoollib":{"relativeUrl":"/people/#cacoollib"},"Caitlin":{"relativeUrl":"/people/#caitlin"},"Caleb Eggensperger":{"relativeUrl":"/people/#caleb-eggensperger"},"Caleb Foss":{"relativeUrl":"/people/#caleb-foss"},"Caleb Mazalevskis":{"relativeUrl":"/people/#caleb-mazalevskis"},"Callie":{"relativeUrl":"/people/#callie"},"Cameron Yick":{"relativeUrl":"/people/#cameron-yick"},"Camille Roux":{"relativeUrl":"/people/#camille-roux"},"Caroline Hermans":{"relativeUrl":"/people/#caroline-hermans"},"Caroline Record":{"relativeUrl":"/people/#caroline-record"},"Carrie Wang":{"relativeUrl":"/people/#carrie-wang"},"Casey Conchinha":{"relativeUrl":"/people/#casey-conchinha"},"Casey Reas":{"relativeUrl":"/people/#casey-reas"},"Cassie Tarakajian":{"relativeUrl":"/people/#cassie-tarakajian"},"cedarfall":{"relativeUrl":"/people/#cedarfall"},"Ceesjan Luiten":{"relativeUrl":"/people/#ceesjan-luiten"},"Chan Jun Shern":{"relativeUrl":"/people/#chan-jun-shern"},"Chandler McWilliams":{"relativeUrl":"/people/#chandler-mcwilliams"},"Char":{"relativeUrl":"/people/#char"},"charlotte ๐ธ":{"relativeUrl":"/people/#charlotte-๐ธ"},"chaski":{"relativeUrl":"/people/#chaski"},"chechenxu":{"relativeUrl":"/people/#chechenxu"},"Chelly Jin":{"relativeUrl":"/people/#chelly-jin"},"Chiciuc Nicuศor":{"relativeUrl":"/people/#chiciuc-nicusor"},"Chinmay Kadam":{"relativeUrl":"/people/#chinmay-kadam"},"Chiun Hau You":{"relativeUrl":"/people/#chiun-hau-you"},"Chloe Yan":{"relativeUrl":"/people/#chloe-yan"},"Chris Hallberg":{"relativeUrl":"/people/#chris-hallberg"},"Chris P.":{"relativeUrl":"/people/#chris-p-"},"Chris Thomson":{"relativeUrl":"/people/#chris-thomson"},"Chris":{"relativeUrl":"/people/#chris"},"Christine de Carteret":{"relativeUrl":"/people/#christine-de-carteret"},"Christopher Coleman":{"relativeUrl":"/people/#christopher-coleman"},"Christopher John Ryan":{"relativeUrl":"/people/#christopher-john-ryan"},"Claire K-V":{"relativeUrl":"/people/#claire-k-v"},"Claire Peng":{"relativeUrl":"/people/#claire-peng"},"Cliff Su":{"relativeUrl":"/people/#cliff-su"},"codeanticode":{"relativeUrl":"/people/#codeanticode"},"Coding for the Arts":{"relativeUrl":"/people/#coding-for-the-arts"},"Cody Fuller":{"relativeUrl":"/people/#cody-fuller"},"cog25":{"relativeUrl":"/people/#cog25"},"CommanderRoot":{"relativeUrl":"/people/#commanderroot"},"computational mama":{"relativeUrl":"/people/#computational-mama"},"Connie Liu":{"relativeUrl":"/people/#connie-liu"},"Constance Yu":{"relativeUrl":"/people/#constance-yu"},"Corey Farwell":{"relativeUrl":"/people/#corey-farwell"},"Corey Gouker":{"relativeUrl":"/people/#corey-gouker"},"Cosme Escobedo":{"relativeUrl":"/people/#cosme-escobedo"},"Craig Pickard":{"relativeUrl":"/people/#craig-pickard"},"crh82":{"relativeUrl":"/people/#crh82"},"Cristรณbal Valenzuela":{"relativeUrl":"/people/#cristobal-valenzuela"},"cypress masso":{"relativeUrl":"/people/#cypress-masso"},"Dabe Andre Enajada":{"relativeUrl":"/people/#dabe-andre-enajada"},"Dan Hoizner":{"relativeUrl":"/people/#dan-hoizner"},"Dan":{"relativeUrl":"/people/#dan"},"Dana Mulder":{"relativeUrl":"/people/#dana-mulder"},"Daniel Adams":{"relativeUrl":"/people/#daniel-adams"},"Daniel Grantham":{"relativeUrl":"/people/#daniel-grantham"},"Daniel Howe":{"relativeUrl":"/people/#daniel-howe"},"Daniel Marino":{"relativeUrl":"/people/#daniel-marino"},"Daniel Michel":{"relativeUrl":"/people/#daniel-michel"},"Daniel Sarno":{"relativeUrl":"/people/#daniel-sarno"},"Daniel Shiffman":{"relativeUrl":"/people/#daniel-shiffman"},"Darby Rathbone":{"relativeUrl":"/people/#darby-rathbone"},"Darรญo Hereรฑรบ":{"relativeUrl":"/people/#dario-herenu"},"Darius Morawiec":{"relativeUrl":"/people/#darius-morawiec"},"Darren Kessner":{"relativeUrl":"/people/#darren-kessner"},"Darren Shaw":{"relativeUrl":"/people/#darren-shaw"},"Dave Pagurek":{"relativeUrl":"/people/#dave-pagurek"},"Dave":{"relativeUrl":"/people/#dave"},"David Aerne":{"relativeUrl":"/people/#david-aerne"},"David Newbury":{"relativeUrl":"/people/#david-newbury"},"David Weiss":{"relativeUrl":"/people/#david-weiss"},"David White":{"relativeUrl":"/people/#david-white"},"David Wicks":{"relativeUrl":"/people/#david-wicks"},"David":{"relativeUrl":"/people/#david"},"davidblitz":{"relativeUrl":"/people/#davidblitz"},"Decoy4ever":{"relativeUrl":"/people/#decoy4ever"},"Derek Enlow":{"relativeUrl":"/people/#derek-enlow"},"Derek J. Kinsman":{"relativeUrl":"/people/#derek-j--kinsman"},"Derrick McMillen":{"relativeUrl":"/people/#derrick-mcmillen"},"Deveshi Dwivedi":{"relativeUrl":"/people/#deveshi-dwivedi"},"Devon Rifkin":{"relativeUrl":"/people/#devon-rifkin"},"Dewansh Thakur":{"relativeUrl":"/people/#dewansh-thakur"},"dhanush":{"relativeUrl":"/people/#dhanush"},"Dharshan":{"relativeUrl":"/people/#dharshan"},"Dhruv Sahnan":{"relativeUrl":"/people/#dhruv-sahnan"},"Diana Galindo":{"relativeUrl":"/people/#diana-galindo"},"digitalfrost":{"relativeUrl":"/people/#digitalfrost"},"Dipanshu Gupta":{"relativeUrl":"/people/#dipanshu-gupta"},"Divyansh013":{"relativeUrl":"/people/#divyansh013"},"DIVYANSHU RAJ":{"relativeUrl":"/people/#divyanshu-raj"},"Diya Solanki":{"relativeUrl":"/people/#diya-solanki"},"DIYgirls":{"relativeUrl":"/people/#diygirls"},"Dominic Jodoin":{"relativeUrl":"/people/#dominic-jodoin"},"Dorine Tipo ":{"relativeUrl":"/people/#dorine-tipo-"},"Dorothy R. Santos":{"relativeUrl":"/people/#dorothy-r--santos"},"Dr. Holomorfo":{"relativeUrl":"/people/#dr--holomorfo"},"dummyAccount22":{"relativeUrl":"/people/#dummyaccount22"},"Dusk":{"relativeUrl":"/people/#dusk"},"Dwiferdio Seagal Putra":{"relativeUrl":"/people/#dwiferdio-seagal-putra"},"e-Coucou":{"relativeUrl":"/people/#e-coucou"},"Ed Brannin":{"relativeUrl":"/people/#ed-brannin"},"Eden Cridge":{"relativeUrl":"/people/#eden-cridge"},"elgin mclaren":{"relativeUrl":"/people/#elgin-mclaren"},"Elliot-Hernandez":{"relativeUrl":"/people/#elliot-hernandez"},"EmilioOcelotl":{"relativeUrl":"/people/#emilioocelotl"},"Emily Chen":{"relativeUrl":"/people/#emily-chen"},"Emily Xie":{"relativeUrl":"/people/#emily-xie"},"Emma Krantz":{"relativeUrl":"/people/#emma-krantz"},"Epic Jefferson":{"relativeUrl":"/people/#epic-jefferson"},"epramer-godaddy":{"relativeUrl":"/people/#epramer-godaddy"},"Eric Rabinowitz":{"relativeUrl":"/people/#eric-rabinowitz"},"Erica Pramer":{"relativeUrl":"/people/#erica-pramer"},"Erik Butcher":{"relativeUrl":"/people/#erik-butcher"},"Eshaan Aggarwal":{"relativeUrl":"/people/#eshaan-aggarwal"},"eslteacher902010":{"relativeUrl":"/people/#eslteacher902010"},"Evelyn Eastmond":{"relativeUrl":"/people/#evelyn-eastmond"},"evelyn masso":{"relativeUrl":"/people/#evelyn-masso"},"everything became blue":{"relativeUrl":"/people/#everything-became-blue"},"Evorage":{"relativeUrl":"/people/#evorage"},"Ewan Johnstone":{"relativeUrl":"/people/#ewan-johnstone"},"Fabian Morรณn Zirfas":{"relativeUrl":"/people/#fabian-moron-zirfas"},"Faith Wuyue Yu":{"relativeUrl":"/people/#faith-wuyue-yu"},"FAL":{"relativeUrl":"/people/#fal"},"Federico Grandi":{"relativeUrl":"/people/#federico-grandi"},"feedzh":{"relativeUrl":"/people/#feedzh"},"Fenil Gandhi":{"relativeUrl":"/people/#fenil-gandhi"},"FerrinThreatt":{"relativeUrl":"/people/#ferrinthreatt"},"ffd8":{"relativeUrl":"/people/#ffd8"},"Fisher Diede":{"relativeUrl":"/people/#fisher-diede"},"FORCHA PEARL":{"relativeUrl":"/people/#forcha-pearl"},"Francesco Bigiarini":{"relativeUrl":"/people/#francesco-bigiarini"},"Franolich Design":{"relativeUrl":"/people/#franolich-design"},"Freddie Rawlins":{"relativeUrl":"/people/#freddie-rawlins"},"Frederik Ring":{"relativeUrl":"/people/#frederik-ring"},"fuder.eth":{"relativeUrl":"/people/#fuder-eth"},"Fun Planet":{"relativeUrl":"/people/#fun-planet"},"Gabriel Sroka":{"relativeUrl":"/people/#gabriel-sroka"},"Gareth Battensby":{"relativeUrl":"/people/#gareth-battensby"},"Gareth Williams":{"relativeUrl":"/people/#gareth-williams"},"Garima":{"relativeUrl":"/people/#garima"},"gauini":{"relativeUrl":"/people/#gauini"},"Gaurav Tiwary":{"relativeUrl":"/people/#gaurav-tiwary"},"Gene Kogan":{"relativeUrl":"/people/#gene-kogan"},"Geraldo Neto":{"relativeUrl":"/people/#geraldo-neto"},"ggorlen":{"relativeUrl":"/people/#ggorlen"},"Ghales":{"relativeUrl":"/people/#ghales"},"Golan Levin":{"relativeUrl":"/people/#golan-levin"},"GoToLoop":{"relativeUrl":"/people/#gotoloop"},"Gracia-zhang":{"relativeUrl":"/people/#gracia-zhang"},"Greg Albers":{"relativeUrl":"/people/#greg-albers"},"Greg Sadetsky":{"relativeUrl":"/people/#greg-sadetsky"},"Greg Stanton":{"relativeUrl":"/people/#greg-stanton"},"Gregor Martynus":{"relativeUrl":"/people/#gregor-martynus"},"Guilherme Silveira":{"relativeUrl":"/people/#guilherme-silveira"},"Guillermo Montecinos":{"relativeUrl":"/people/#guillermo-montecinos"},"Gus Becker":{"relativeUrl":"/people/#gus-becker"},"Haider Ali Punjabi":{"relativeUrl":"/people/#haider-ali-punjabi"},"Half Scheidl":{"relativeUrl":"/people/#half-scheidl"},"Hana Cho":{"relativeUrl":"/people/#hana-cho"},"harkirat singh":{"relativeUrl":"/people/#harkirat-singh"},"Harman Batheja":{"relativeUrl":"/people/#harman-batheja"},"Harrycheng233":{"relativeUrl":"/people/#harrycheng233"},"Harsh Agrawal":{"relativeUrl":"/people/#harsh-agrawal"},"Harsh Range":{"relativeUrl":"/people/#harsh-range"},"Harshil Goel":{"relativeUrl":"/people/#harshil-goel"},"Hilary Lau":{"relativeUrl":"/people/#hilary-lau"},"Himanshu Kholiya":{"relativeUrl":"/people/#himanshu-kholiya"},"Himanshu Malviya":{"relativeUrl":"/people/#himanshu-malviya"},"Hirad Sab":{"relativeUrl":"/people/#hirad-sab"},"Hitesh Kumar":{"relativeUrl":"/people/#hitesh-kumar"},"Homaid":{"relativeUrl":"/people/#homaid"},"hrishit":{"relativeUrl":"/people/#hrishit"},"HughJacks":{"relativeUrl":"/people/#hughjacks"},"hunahpu18":{"relativeUrl":"/people/#hunahpu18"},"hvillase":{"relativeUrl":"/people/#hvillase"},"iambiancafonseca":{"relativeUrl":"/people/#iambiancafonseca"},"IENGROUND":{"relativeUrl":"/people/#ienground"},"Ike Bischof":{"relativeUrl":"/people/#ike-bischof"},"Ikko Ashimine":{"relativeUrl":"/people/#ikko-ashimine"},"Ilona Brand":{"relativeUrl":"/people/#ilona-brand"},"INARI_DARKFOX":{"relativeUrl":"/people/#inari-darkfox"},"Inhwa":{"relativeUrl":"/people/#inhwa"},"Irina Mengqi Wang":{"relativeUrl":"/people/#irina-mengqi-wang"},"Isaac Durazo ":{"relativeUrl":"/people/#isaac-durazo-"},"ฤฐsmail Namdar":{"relativeUrl":"/people/#ismail-namdar"},"Ivy Feraco":{"relativeUrl":"/people/#ivy-feraco"},"J Wong":{"relativeUrl":"/people/#j-wong"},"Jack B. Du":{"relativeUrl":"/people/#jack-b--du"},"Jack Dempsey":{"relativeUrl":"/people/#jack-dempsey"},"Jack L":{"relativeUrl":"/people/#jack-l"},"Jackie Liu":{"relativeUrl":"/people/#jackie-liu"},"Jacques P. du Toit":{"relativeUrl":"/people/#jacques-p--du-toit"},"Jai Kotia":{"relativeUrl":"/people/#jai-kotia"},"Jai Vignesh J":{"relativeUrl":"/people/#jai-vignesh-j"},"Jakub Valtar":{"relativeUrl":"/people/#jakub-valtar"},"James Dunn":{"relativeUrl":"/people/#james-dunn"},"JangJunseok":{"relativeUrl":"/people/#jangjunseok"},"Janis Sepรบlveda":{"relativeUrl":"/people/#janis-sepulveda"},"Jared Berghold":{"relativeUrl":"/people/#jared-berghold"},"Jared Donovan":{"relativeUrl":"/people/#jared-donovan"},"Jared Sprague":{"relativeUrl":"/people/#jared-sprague"},"Jason Alderman":{"relativeUrl":"/people/#jason-alderman"},"Jason Mandel":{"relativeUrl":"/people/#jason-mandel"},"Jason Sigal":{"relativeUrl":"/people/#jason-sigal"},"Jatin Panjwani":{"relativeUrl":"/people/#jatin-panjwani"},"Jay Dev Jha":{"relativeUrl":"/people/#jay-dev-jha"},"Jay Gupta":{"relativeUrl":"/people/#jay-gupta"},"Jaymz Rhime":{"relativeUrl":"/people/#jaymz-rhime"},"Jean-Michaรซl Celerier":{"relativeUrl":"/people/#jean-michael-celerier"},"Jean Pierre Charalambos":{"relativeUrl":"/people/#jean-pierre-charalambos"},"jeanette":{"relativeUrl":"/people/#jeanette"},"Jen Kagan":{"relativeUrl":"/people/#jen-kagan"},"Jenna deBoisblanc":{"relativeUrl":"/people/#jenna-deboisblanc"},"Jenna":{"relativeUrl":"/people/#jenna"},"Jennifer Jacobs":{"relativeUrl":"/people/#jennifer-jacobs"},"Jenny Biette Kowalski":{"relativeUrl":"/people/#jenny-biette-kowalski"},"Jens Axel Sรธgaard":{"relativeUrl":"/people/#jens-axel-sรธgaard"},"jeong":{"relativeUrl":"/people/#jeong"},"jep":{"relativeUrl":"/people/#jep"},"Jerel Johnson":{"relativeUrl":"/people/#jerel-johnson"},"Jeremy Tuloup":{"relativeUrl":"/people/#jeremy-tuloup"},"Jess Klein":{"relativeUrl":"/people/#jess-klein"},"jesse cahn-thompson":{"relativeUrl":"/people/#jesse-cahn-thompson"},"Jesรบs Enrique Rascรณn":{"relativeUrl":"/people/#jesus-enrique-rascon"},"JetStarBlues":{"relativeUrl":"/people/#jetstarblues"},"Jiashan Wu":{"relativeUrl":"/people/#jiashan-wu"},"Jimish Fotariya":{"relativeUrl":"/people/#jimish-fotariya"},"Jithin KS":{"relativeUrl":"/people/#jithin-ks"},"Jiwon Park (hanpanic)":{"relativeUrl":"/people/#jiwon-park-(hanpanic)"},"JoeCastor":{"relativeUrl":"/people/#joecastor"},"Johan Karlsson":{"relativeUrl":"/people/#johan-karlsson"},"John Pasquarello":{"relativeUrl":"/people/#john-pasquarello"},"Jon Kaufman":{"relativeUrl":"/people/#jon-kaufman"},"Jonas Rinke":{"relativeUrl":"/people/#jonas-rinke"},"Jonathan Dahan":{"relativeUrl":"/people/#jonathan-dahan"},"Jonathan-David Schrรถder":{"relativeUrl":"/people/#jonathan-david-schroder"},"Jonathan Heindl":{"relativeUrl":"/people/#jonathan-heindl"},"Joonas Jokinen":{"relativeUrl":"/people/#joonas-jokinen"},"Jordan Philyaw":{"relativeUrl":"/people/#jordan-philyaw"},"Jordan Shaw":{"relativeUrl":"/people/#jordan-shaw"},"Jordan Sucher":{"relativeUrl":"/people/#jordan-sucher"},"Jorge Moreno":{"relativeUrl":"/people/#jorge-moreno"},"Josรฉ Miguel Tajuelo Garrigรณs":{"relativeUrl":"/people/#jose-miguel-tajuelo-garrigos"},"Joseph Aronson":{"relativeUrl":"/people/#joseph-aronson"},"Joseph Hong":{"relativeUrl":"/people/#joseph-hong"},"Joshua Marris":{"relativeUrl":"/people/#joshua-marris"},"Joshua Noble":{"relativeUrl":"/people/#joshua-noble"},"Joshua Storm Becker":{"relativeUrl":"/people/#joshua-storm-becker"},"Jstodd":{"relativeUrl":"/people/#jstodd"},"JT Nimoy":{"relativeUrl":"/people/#jt-nimoy"},"Juan Irache":{"relativeUrl":"/people/#juan-irache"},"juliane nagao":{"relativeUrl":"/people/#juliane-nagao"},"Julio Lab":{"relativeUrl":"/people/#julio-lab"},"JUNGMIN KANG":{"relativeUrl":"/people/#jungmin-kang"},"Juraj Onuska":{"relativeUrl":"/people/#juraj-onuska"},"Justin Kim":{"relativeUrl":"/people/#justin-kim"},"Jyotiraditya Pradhan":{"relativeUrl":"/people/#jyotiraditya-pradhan"},"K.Adam White":{"relativeUrl":"/people/#k-adam-white"},"kaabe1":{"relativeUrl":"/people/#kaabe1"},"Kai-han Chang":{"relativeUrl":"/people/#kai-han-chang"},"Karen":{"relativeUrl":"/people/#karen"},"karinaxlpz":{"relativeUrl":"/people/#karinaxlpz"},"Kate Grant":{"relativeUrl":"/people/#kate-grant"},"Kate Hollenbach":{"relativeUrl":"/people/#kate-hollenbach"},"Kathryn Isabelle Lawrence":{"relativeUrl":"/people/#kathryn-isabelle-lawrence"},"Kathryn Lichlyter":{"relativeUrl":"/people/#kathryn-lichlyter"},"Katie":{"relativeUrl":"/people/#katie"},"Katsuya Endoh":{"relativeUrl":"/people/#katsuya-endoh"},"Keith Tan":{"relativeUrl":"/people/#keith-tan"},"Ken Miller":{"relativeUrl":"/people/#ken-miller"},"Kenneth Lim":{"relativeUrl":"/people/#kenneth-lim"},"Keshav Gupta":{"relativeUrl":"/people/#keshav-gupta"},"Keshav Malik":{"relativeUrl":"/people/#keshav-malik"},"Kevin Barabash":{"relativeUrl":"/people/#kevin-barabash"},"Kevin Bradley":{"relativeUrl":"/people/#kevin-bradley"},"Kevin Grajeda":{"relativeUrl":"/people/#kevin-grajeda"},"Kevin Ho":{"relativeUrl":"/people/#kevin-ho"},"Kevin Siwoff":{"relativeUrl":"/people/#kevin-siwoff"},"Kevin Workman":{"relativeUrl":"/people/#kevin-workman"},"kilavvy":{"relativeUrl":"/people/#kilavvy"},"Kit Kuksenok":{"relativeUrl":"/people/#kit-kuksenok"},"kjav":{"relativeUrl":"/people/#kjav"},"konstantinstanmeyer":{"relativeUrl":"/people/#konstantinstanmeyer"},"koolaidkrusade":{"relativeUrl":"/people/#koolaidkrusade"},"Kristian Hamilton":{"relativeUrl":"/people/#kristian-hamilton"},"kroko / Reinis Adoviฤs":{"relativeUrl":"/people/#kroko---reinis-adovics"},"Kunal Kumar Verma":{"relativeUrl":"/people/#kunal-kumar-verma"},"Kyle James":{"relativeUrl":"/people/#kyle-james"},"Kyle McDonald":{"relativeUrl":"/people/#kyle-mcdonald"},"L05":{"relativeUrl":"/people/#l05"},"Laith Alwazani":{"relativeUrl":"/people/#laith-alwazani"},"Laksh Singla":{"relativeUrl":"/people/#laksh-singla"},"Lakshay Joshi":{"relativeUrl":"/people/#lakshay-joshi"},"Lalit Narayan Yadav":{"relativeUrl":"/people/#lalit-narayan-yadav"},"lam802":{"relativeUrl":"/people/#lam802"},"Laura Ciro":{"relativeUrl":"/people/#laura-ciro"},"Lauren Berrios":{"relativeUrl":"/people/#lauren-berrios"},"Lauren Lee McCarthy":{"relativeUrl":"/people/#lauren-lee-mccarthy"},"Lauren":{"relativeUrl":"/people/#lauren"},"Lee T":{"relativeUrl":"/people/#lee-t"},"LEMIBANDDEXARI":{"relativeUrl":"/people/#lemibanddexari"},"Leo Kamwathi":{"relativeUrl":"/people/#leo-kamwathi"},"Leo Wang":{"relativeUrl":"/people/#leo-wang"},"leopardracer":{"relativeUrl":"/people/#leopardracer"},"Leslie Yip":{"relativeUrl":"/people/#leslie-yip"},"Liam Piesley":{"relativeUrl":"/people/#liam-piesley"},"Liang Tang":{"relativeUrl":"/people/#liang-tang"},"Linda Paiste":{"relativeUrl":"/people/#linda-paiste"},"Lingxiao Wang":{"relativeUrl":"/people/#lingxiao-wang"},"linnhallonqvist":{"relativeUrl":"/people/#linnhallonqvist"},"Lionel Ringenbach":{"relativeUrl":"/people/#lionel-ringenbach"},"Lisa Mabley":{"relativeUrl":"/people/#lisa-mabley"},"Liu Chang":{"relativeUrl":"/people/#liu-chang"},"Liz Peng":{"relativeUrl":"/people/#liz-peng"},"Long Phan":{"relativeUrl":"/people/#long-phan"},"lottihill":{"relativeUrl":"/people/#lottihill"},"Louis Demange":{"relativeUrl":"/people/#louis-demange"},"Luc de wit":{"relativeUrl":"/people/#luc-de-wit"},"Luca Damasco":{"relativeUrl":"/people/#luca-damasco"},"Luis Morales-Navarro":{"relativeUrl":"/people/#luis-morales-navarro"},"luisaph":{"relativeUrl":"/people/#luisaph"},"Luke Burgess-Yeo":{"relativeUrl":"/people/#luke-burgess-yeo"},"Luke Plowden":{"relativeUrl":"/people/#luke-plowden"},"M":{"relativeUrl":"/people/#m"},"ma haidong":{"relativeUrl":"/people/#ma-haidong"},"Maciej Stankiewicz":{"relativeUrl":"/people/#maciej-stankiewicz"},"maddy":{"relativeUrl":"/people/#maddy"},"maddyfisher":{"relativeUrl":"/people/#maddyfisher"},"Madhav Majumdar":{"relativeUrl":"/people/#madhav-majumdar"},"mainstreamdev":{"relativeUrl":"/people/#mainstreamdev"},"Malay Vasa":{"relativeUrl":"/people/#malay-vasa"},"Manan Arora":{"relativeUrl":"/people/#manan-arora"},"Mann Shah":{"relativeUrl":"/people/#mann-shah"},"Manpreet Singh":{"relativeUrl":"/people/#manpreet-singh"},"manpreet":{"relativeUrl":"/people/#manpreet"},"Marc Abbey":{"relativeUrl":"/people/#marc-abbey"},"Marco Macarena":{"relativeUrl":"/people/#marco-macarena"},"Marcus Parsons":{"relativeUrl":"/people/#marcus-parsons"},"Mark Nikora":{"relativeUrl":"/people/#mark-nikora"},"Mark Russo":{"relativeUrl":"/people/#mark-russo"},"Martin Leopold Groedl":{"relativeUrl":"/people/#martin-leopold-groedl"},"Martin Lorentzon":{"relativeUrl":"/people/#martin-lorentzon"},"Mateusz Swiatkowski":{"relativeUrl":"/people/#mateusz-swiatkowski"},"mathewpan2":{"relativeUrl":"/people/#mathewpan2"},"Mathura MG":{"relativeUrl":"/people/#mathura-mg"},"MATSUDA, Kouichi":{"relativeUrl":"/people/#matsuda,-kouichi"},"Matthew Kaney":{"relativeUrl":"/people/#matthew-kaney"},"Mattia Micheletta Merlin":{"relativeUrl":"/people/#mattia-micheletta-merlin"},"Mauricio Verano Merino":{"relativeUrl":"/people/#mauricio-verano-merino"},"Max Goldstein":{"relativeUrl":"/people/#max-goldstein"},"Max Kolyanov":{"relativeUrl":"/people/#max-kolyanov"},"Max Segal":{"relativeUrl":"/people/#max-segal"},"maxdevjs":{"relativeUrl":"/people/#maxdevjs"},"Maya Arguelles":{"relativeUrl":"/people/#maya-arguelles"},"Maya Man":{"relativeUrl":"/people/#maya-man"},"Mayank Verma":{"relativeUrl":"/people/#mayank-verma"},"mclark414":{"relativeUrl":"/people/#mclark414"},"mcturner1995":{"relativeUrl":"/people/#mcturner1995"},"meezwhite":{"relativeUrl":"/people/#meezwhite"},"Melody Sharp":{"relativeUrl":"/people/#melody-sharp"},"mhsh312":{"relativeUrl":"/people/#mhsh312"},"Miaoye Que":{"relativeUrl":"/people/#miaoye-que"},"Michael Hadley":{"relativeUrl":"/people/#michael-hadley"},"Michael J Conrad":{"relativeUrl":"/people/#michael-j-conrad"},"Mikael Lindqvist":{"relativeUrl":"/people/#mikael-lindqvist"},"Mike ":{"relativeUrl":"/people/#mike-"},"Mike Anderson":{"relativeUrl":"/people/#mike-anderson"},"Miles Peyton":{"relativeUrl":"/people/#miles-peyton"},"min-kim42":{"relativeUrl":"/people/#min-kim42"},"MiniPear":{"relativeUrl":"/people/#minipear"},"Minjun Kim":{"relativeUrl":"/people/#minjun-kim"},"Minwook Park":{"relativeUrl":"/people/#minwook-park"},"Mislav Milicevic":{"relativeUrl":"/people/#mislav-milicevic"},"ml.008":{"relativeUrl":"/people/#ml-008"},"mohamedalisaifudeen":{"relativeUrl":"/people/#mohamedalisaifudeen"},"Mohammad Hussain Nagaria":{"relativeUrl":"/people/#mohammad-hussain-nagaria"},"Mohana Sundaram S":{"relativeUrl":"/people/#mohana-sundaram-s"},"Mohit Balwani":{"relativeUrl":"/people/#mohit-balwani"},"Moira Turner":{"relativeUrl":"/people/#moira-turner"},"Monalisa Maity":{"relativeUrl":"/people/#monalisa-maity"},"Monica Powell":{"relativeUrl":"/people/#monica-powell"},"Mostafa Ewis":{"relativeUrl":"/people/#mostafa-ewis"},"Mr. Algorithm":{"relativeUrl":"/people/#mr--algorithm"},"Mudit Maheshwari":{"relativeUrl":"/people/#mudit-maheshwari"},"Muhammad Haroon":{"relativeUrl":"/people/#muhammad-haroon"},"Munus Shih":{"relativeUrl":"/people/#munus-shih"},"Musab Kฤฑlฤฑรง":{"relativeUrl":"/people/#musab-kฤฑlฤฑc"},"Mx. Ramsey":{"relativeUrl":"/people/#mx--ramsey"},"mxchelle":{"relativeUrl":"/people/#mxchelle"},"Nabeel (Dexter)":{"relativeUrl":"/people/#nabeel-(dexter)"},"Nabil Hassein":{"relativeUrl":"/people/#nabil-hassein"},"Nahuel Palumbo":{"relativeUrl":"/people/#nahuel-palumbo"},"Nakul Shahdadpuri":{"relativeUrl":"/people/#nakul-shahdadpuri"},"nancy":{"relativeUrl":"/people/#nancy"},"Nandu Krishna":{"relativeUrl":"/people/#nandu-krishna"},"Naoto Hieda":{"relativeUrl":"/people/#naoto-hieda"},"naoyashiga":{"relativeUrl":"/people/#naoyashiga"},"Nat Decker":{"relativeUrl":"/people/#nat-decker"},"Nicholas Marino":{"relativeUrl":"/people/#nicholas-marino"},"NicholasGillen":{"relativeUrl":"/people/#nicholasgillen"},"Nick Briz":{"relativeUrl":"/people/#nick-briz"},"Nick McIntyre":{"relativeUrl":"/people/#nick-mcintyre"},"Nick Mรผller":{"relativeUrl":"/people/#nick-muller"},"Nick Yahnke":{"relativeUrl":"/people/#nick-yahnke"},"Nico Finkernagel":{"relativeUrl":"/people/#nico-finkernagel"},"Niels Joubert":{"relativeUrl":"/people/#niels-joubert"},"NIINOMI":{"relativeUrl":"/people/#niinomi"},"Nik Nyby":{"relativeUrl":"/people/#nik-nyby"},"Nikhil":{"relativeUrl":"/people/#nikhil"},"nikhilkalburgi":{"relativeUrl":"/people/#nikhilkalburgi"},"Niki Ito":{"relativeUrl":"/people/#niki-ito"},"Nikita Korol":{"relativeUrl":"/people/#nikita-korol"},"Niklas Peters":{"relativeUrl":"/people/#niklas-peters"},"Nisar Hassan Naqvi":{"relativeUrl":"/people/#nisar-hassan-naqvi"},"Nitin Rana":{"relativeUrl":"/people/#nitin-rana"},"Nitish Bansal":{"relativeUrl":"/people/#nitish-bansal"},"nully0x":{"relativeUrl":"/people/#nully0x"},"odm275":{"relativeUrl":"/people/#odm275"},"oleboleskole3":{"relativeUrl":"/people/#oleboleskole3"},"Oleksii Bulba":{"relativeUrl":"/people/#oleksii-bulba"},"Oliver Steele":{"relativeUrl":"/people/#oliver-steele"},"oliver thurley":{"relativeUrl":"/people/#oliver-thurley"},"Oliver Wright":{"relativeUrl":"/people/#oliver-wright"},"Onexi":{"relativeUrl":"/people/#onexi"},"Ong Zhi Zheng":{"relativeUrl":"/people/#ong-zhi-zheng"},"Oren Shoham":{"relativeUrl":"/people/#oren-shoham"},"Orwiss":{"relativeUrl":"/people/#orwiss"},"ov":{"relativeUrl":"/people/#ov"},"oz":{"relativeUrl":"/people/#oz"},"paollabd":{"relativeUrl":"/people/#paollabd"},"Paolo Pedercini":{"relativeUrl":"/people/#paolo-pedercini"},"Paul Wheeler":{"relativeUrl":"/people/#paul-wheeler"},"Peiling Jiang":{"relativeUrl":"/people/#peiling-jiang"},"perminder-17":{"relativeUrl":"/people/#perminder-17"},"Peter Marsh":{"relativeUrl":"/people/#peter-marsh"},"peter":{"relativeUrl":"/people/#peter"},"Petr Brzek":{"relativeUrl":"/people/#petr-brzek"},"Philip Bell":{"relativeUrl":"/people/#philip-bell"},"Phoenix Perry":{"relativeUrl":"/people/#phoenix-perry"},"pie999":{"relativeUrl":"/people/#pie999"},"Pierre Krafft":{"relativeUrl":"/people/#pierre-krafft"},"pifragile":{"relativeUrl":"/people/#pifragile"},"piinthecloud":{"relativeUrl":"/people/#piinthecloud"},"Pim Tournaye":{"relativeUrl":"/people/#pim-tournaye"},"pinky-pig":{"relativeUrl":"/people/#pinky-pig"},"PiyushChandra17":{"relativeUrl":"/people/#piyushchandra17"},"plural":{"relativeUrl":"/people/#plural"},"Poulav Bhowmick":{"relativeUrl":"/people/#poulav-bhowmick"},"PracDuckling":{"relativeUrl":"/people/#pracduckling"},"Pragya":{"relativeUrl":"/people/#pragya"},"Prashant Gupta":{"relativeUrl":"/people/#prashant-gupta"},"Prateek Jain":{"relativeUrl":"/people/#prateek-jain"},"Prateekgit":{"relativeUrl":"/people/#prateekgit"},"Pratyay Banerjee":{"relativeUrl":"/people/#pratyay-banerjee"},"Priya-Pathak":{"relativeUrl":"/people/#priya-pathak"},"Qianqian Ye":{"relativeUrl":"/people/#qianqian-ye"},"Qingfeng Huang":{"relativeUrl":"/people/#qingfeng-huang"},"Quinton Ashley":{"relativeUrl":"/people/#quinton-ashley"},"R. Luke DuBois":{"relativeUrl":"/people/#r--luke-dubois"},"Rachel Lim":{"relativeUrl":"/people/#rachel-lim"},"raclim":{"relativeUrl":"/people/#raclim"},"Rahul Mohata":{"relativeUrl":"/people/#rahul-mohata"},"rahulrangers":{"relativeUrl":"/people/#rahulrangers"},"Rajas Samse":{"relativeUrl":"/people/#rajas-samse"},"Rajiv Ranjan Singh":{"relativeUrl":"/people/#rajiv-ranjan-singh"},"Ramin":{"relativeUrl":"/people/#ramin"},"Ramon Jr. Yniguez":{"relativeUrl":"/people/#ramon-jr--yniguez"},"RandomGamingDev":{"relativeUrl":"/people/#randomgamingdev"},"Raphaรซl de Courville":{"relativeUrl":"/people/#raphael-de-courville"},"reejuBhattacharya":{"relativeUrl":"/people/#reejubhattacharya"},"Reijo Vosu":{"relativeUrl":"/people/#reijo-vosu"},"Renjie Li":{"relativeUrl":"/people/#renjie-li"},"reona396":{"relativeUrl":"/people/#reona396"},"Reshma R":{"relativeUrl":"/people/#reshma-r"},"rinkydevi":{"relativeUrl":"/people/#rinkydevi"},"Rishab Kumar Jha":{"relativeUrl":"/people/#rishab-kumar-jha"},"Rishabh Taparia":{"relativeUrl":"/people/#rishabh-taparia"},"Rishi":{"relativeUrl":"/people/#rishi"},"Ritesh Patil":{"relativeUrl":"/people/#ritesh-patil"},"Robyn Overstreet":{"relativeUrl":"/people/#robyn-overstreet"},"Rohan Julka":{"relativeUrl":"/people/#rohan-julka"},"roxi09":{"relativeUrl":"/people/#roxi09"},"Rune Skjoldborg Madsen":{"relativeUrl":"/people/#rune-skjoldborg-madsen"},"Ryan Slade":{"relativeUrl":"/people/#ryan-slade"},"Ryuya":{"relativeUrl":"/people/#ryuya"},"saber khan":{"relativeUrl":"/people/#saber-khan"},"Sachin Varghese":{"relativeUrl":"/people/#sachin-varghese"},"Sagar Arora":{"relativeUrl":"/people/#sagar-arora"},"Sai Bhushan":{"relativeUrl":"/people/#sai-bhushan"},"Saksham Saxena":{"relativeUrl":"/people/#saksham-saxena"},"sam delong":{"relativeUrl":"/people/#sam-delong"},"Sam Lavigne":{"relativeUrl":"/people/#sam-lavigne"},"sambensim":{"relativeUrl":"/people/#sambensim"},"Samir Ghosh":{"relativeUrl":"/people/#samir-ghosh"},"Sampo Rapeli":{"relativeUrl":"/people/#sampo-rapeli"},"Samrudh Shetty":{"relativeUrl":"/people/#samrudh-shetty"},"Samuel Alarco Cantos":{"relativeUrl":"/people/#samuel-alarco-cantos"},"Samuel Cho":{"relativeUrl":"/people/#samuel-cho"},"Sanchit Kapoor":{"relativeUrl":"/people/#sanchit-kapoor"},"Sandeep Kumar Bhagat":{"relativeUrl":"/people/#sandeep-kumar-bhagat"},"Sanjay Singh Rajpoot":{"relativeUrl":"/people/#sanjay-singh-rajpoot"},"Sanket Singh":{"relativeUrl":"/people/#sanket-singh"},"Sarah Ciston":{"relativeUrl":"/people/#sarah-ciston"},"Sarah Groff Hennigh-Palermo":{"relativeUrl":"/people/#sarah-groff-hennigh-palermo"},"Sarthak Saxena":{"relativeUrl":"/people/#sarthak-saxena"},"Saskia Freeke":{"relativeUrl":"/people/#saskia-freeke"},"Satyam Kulkarni":{"relativeUrl":"/people/#satyam-kulkarni"},"Sawai Singh Rajpurohit":{"relativeUrl":"/people/#sawai-singh-rajpurohit"},"Scott Garner":{"relativeUrl":"/people/#scott-garner"},"Scott Murray":{"relativeUrl":"/people/#scott-murray"},"Seb Mรฉndez":{"relativeUrl":"/people/#seb-mendez"},"SejinOH":{"relativeUrl":"/people/#sejinoh"},"Sekani Warner":{"relativeUrl":"/people/#sekani-warner"},"senbaku":{"relativeUrl":"/people/#senbaku"},"Seonghyeon Kim":{"relativeUrl":"/people/#seonghyeon-kim"},"Sepand Ansari":{"relativeUrl":"/people/#sepand-ansari"},"Serena20003":{"relativeUrl":"/people/#serena20003"},"Seth":{"relativeUrl":"/people/#seth"},"Seung-Gi Kim(David)":{"relativeUrl":"/people/#seung-gi-kim(david)"},"Seyko":{"relativeUrl":"/people/#seyko"},"shaharyarshamshi":{"relativeUrl":"/people/#shaharyarshamshi"},"Shahma Ansari":{"relativeUrl":"/people/#shahma-ansari"},"Shahriar Rahman Rubayet":{"relativeUrl":"/people/#shahriar-rahman-rubayet"},"Shawn Van Every":{"relativeUrl":"/people/#shawn-van-every"},"sheamus":{"relativeUrl":"/people/#sheamus"},"SHIBAHARA Hiroki":{"relativeUrl":"/people/#shibahara-hiroki"},"Shirou":{"relativeUrl":"/people/#shirou"},"Shiva":{"relativeUrl":"/people/#shiva"},"Shivansh Sharma":{"relativeUrl":"/people/#shivansh-sharma"},"Shoury Singh":{"relativeUrl":"/people/#shoury-singh"},"Shubham Kumar":{"relativeUrl":"/people/#shubham-kumar"},"Shubham Rathore":{"relativeUrl":"/people/#shubham-rathore"},"shujulin":{"relativeUrl":"/people/#shujulin"},"siddhant":{"relativeUrl":"/people/#siddhant"},"Simranjeet Singh":{"relativeUrl":"/people/#simranjeet-singh"},"Sinan Ascioglu":{"relativeUrl":"/people/#sinan-ascioglu"},"Sithe Ncube":{"relativeUrl":"/people/#sithe-ncube"},"Sivaram D":{"relativeUrl":"/people/#sivaram-d"},"skools-here":{"relativeUrl":"/people/#skools-here"},"skyperx":{"relativeUrl":"/people/#skyperx"},"sm7515":{"relativeUrl":"/people/#sm7515"},"smilee":{"relativeUrl":"/people/#smilee"},"So Sun Park":{"relativeUrl":"/people/#so-sun-park"},"Somnath Mishra":{"relativeUrl":"/people/#somnath-mishra"},"Sona Lee":{"relativeUrl":"/people/#sona-lee"},"SonyaCode":{"relativeUrl":"/people/#sonyacode"},"sortasleepy":{"relativeUrl":"/people/#sortasleepy"},"Souvik Kumar":{"relativeUrl":"/people/#souvik-kumar"},"Sparsh Paliwal":{"relativeUrl":"/people/#sparsh-paliwal"},"sparshg":{"relativeUrl":"/people/#sparshg"},"Spencer Faith":{"relativeUrl":"/people/#spencer-faith"},"sphantom-code":{"relativeUrl":"/people/#sphantom-code"},"Spongman":{"relativeUrl":"/people/#spongman"},"Stalgia Grigg":{"relativeUrl":"/people/#stalgia-grigg"},"stampyzfanz":{"relativeUrl":"/people/#stampyzfanz"},"Stef Tervelde":{"relativeUrl":"/people/#stef-tervelde"},"Steven Green":{"relativeUrl":"/people/#steven-green"},"Stig Mรธller Hansen":{"relativeUrl":"/people/#stig-mรธller-hansen"},"stormCup":{"relativeUrl":"/people/#stormcup"},"Sudhanshu Tiwari":{"relativeUrl":"/people/#sudhanshu-tiwari"},"suhani6904":{"relativeUrl":"/people/#suhani6904"},"Suhas CV":{"relativeUrl":"/people/#suhas-cv"},"sukrucildirr":{"relativeUrl":"/people/#sukrucildirr"},"Summer Rizzo":{"relativeUrl":"/people/#summer-rizzo"},"Sun Lifei":{"relativeUrl":"/people/#sun-lifei"},"surajsurajsuraj":{"relativeUrl":"/people/#surajsurajsuraj"},"Surbhi Pittie":{"relativeUrl":"/people/#surbhi-pittie"},"susan evans":{"relativeUrl":"/people/#susan-evans"},"Swapnil-2001":{"relativeUrl":"/people/#swapnil-2001"},"sz245":{"relativeUrl":"/people/#sz245"},"tae":{"relativeUrl":"/people/#tae"},"Taeyoon Choi":{"relativeUrl":"/people/#taeyoon-choi"},"takawo":{"relativeUrl":"/people/#takawo"},"Takuma Kira":{"relativeUrl":"/people/#takuma-kira"},"Tanner Dolby":{"relativeUrl":"/people/#tanner-dolby"},"Tanvi Kumar":{"relativeUrl":"/people/#tanvi-kumar"},"tapioca24":{"relativeUrl":"/people/#tapioca24"},"taseenb":{"relativeUrl":"/people/#taseenb"},"Tega Brain":{"relativeUrl":"/people/#tega-brain"},"Teixido":{"relativeUrl":"/people/#teixido"},"TetroGem":{"relativeUrl":"/people/#tetrogem"},"tetunori":{"relativeUrl":"/people/#tetunori"},"Thรฉodore Orfรจvres":{"relativeUrl":"/people/#theodore-orfevres"},"Thomas Diewald":{"relativeUrl":"/people/#thomas-diewald"},"Thomas Herlea":{"relativeUrl":"/people/#thomas-herlea"},"Tiago Hermano":{"relativeUrl":"/people/#tiago-hermano"},"Tibor Udvari":{"relativeUrl":"/people/#tibor-udvari"},"Todd H. Page":{"relativeUrl":"/people/#todd-h--page"},"togekisse":{"relativeUrl":"/people/#togekisse"},"Tokini Irene Fubara":{"relativeUrl":"/people/#tokini-irene-fubara"},"tonipizza":{"relativeUrl":"/people/#tonipizza"},"truemaxdh":{"relativeUrl":"/people/#truemaxdh"},"trych":{"relativeUrl":"/people/#trych"},"tuan":{"relativeUrl":"/people/#tuan"},"Tushar Choudhari":{"relativeUrl":"/people/#tushar-choudhari"},"TwoTicks":{"relativeUrl":"/people/#twoticks"},"Tyler Jordan":{"relativeUrl":"/people/#tyler-jordan"},"Tyler Stefanich":{"relativeUrl":"/people/#tyler-stefanich"},"Umang Utkarsh":{"relativeUrl":"/people/#umang-utkarsh"},"Unicar":{"relativeUrl":"/people/#unicar"},"UnityOfFairfax":{"relativeUrl":"/people/#unityoffairfax"},"uno seis tres":{"relativeUrl":"/people/#uno-seis-tres"},"Urvashi":{"relativeUrl":"/people/#urvashi"},"Utkarsh Tiwari":{"relativeUrl":"/people/#utkarsh-tiwari"},"Vaivaswat Dubey":{"relativeUrl":"/people/#vaivaswat-dubey"},"Val Head":{"relativeUrl":"/people/#val-head"},"Varsha Verma":{"relativeUrl":"/people/#varsha-verma"},"Vasu Goel":{"relativeUrl":"/people/#vasu-goel"},"Vedhant Agarwal":{"relativeUrl":"/people/#vedhant-agarwal"},"Victor Morgan":{"relativeUrl":"/people/#victor-morgan"},"Vijith Assar":{"relativeUrl":"/people/#vijith-assar"},"Vik":{"relativeUrl":"/people/#vik"},"viola ":{"relativeUrl":"/people/#viola-"},"vipulrawat":{"relativeUrl":"/people/#vipulrawat"},"Vishal Sharma":{"relativeUrl":"/people/#vishal-sharma"},"Vishal Singh":{"relativeUrl":"/people/#vishal-singh"},"Vishesh Rawal":{"relativeUrl":"/people/#vishesh-rawal"},"Vishwas Srivastava":{"relativeUrl":"/people/#vishwas-srivastava"},"Vรญtor Galvรฃo":{"relativeUrl":"/people/#vitor-galvao"},"Vivek Tiwari":{"relativeUrl":"/people/#vivek-tiwari"},"Vivek":{"relativeUrl":"/people/#vivek"},"wackbyte":{"relativeUrl":"/people/#wackbyte"},"Wade Marshall":{"relativeUrl":"/people/#wade-marshall"},"wagedu":{"relativeUrl":"/people/#wagedu"},"Wes Lord":{"relativeUrl":"/people/#wes-lord"},"Will Martin":{"relativeUrl":"/people/#will-martin"},"willallstet":{"relativeUrl":"/people/#willallstet"},"William Hazard":{"relativeUrl":"/people/#william-hazard"},"Wu Che Yu":{"relativeUrl":"/people/#wu-che-yu"},"Xavier Gรณngora":{"relativeUrl":"/people/#xavier-gongora"},"Xavier Snelgrove":{"relativeUrl":"/people/#xavier-snelgrove"},"Xevi H. Aqeel":{"relativeUrl":"/people/#xevi-h--aqeel"},"Xin Xin":{"relativeUrl":"/people/#xin-xin"},"XingZiLong":{"relativeUrl":"/people/#xingzilong"},"XTY":{"relativeUrl":"/people/#xty"},"XY Feng":{"relativeUrl":"/people/#xy-feng"},"Yana Agun Siswanto":{"relativeUrl":"/people/#yana-agun-siswanto"},"Yannick Assogba":{"relativeUrl":"/people/#yannick-assogba"},"Yasai":{"relativeUrl":"/people/#yasai"},"Yash Pandey":{"relativeUrl":"/people/#yash-pandey"},"YewonCALLI":{"relativeUrl":"/people/#yewoncalli"},"Yifan Mai":{"relativeUrl":"/people/#yifan-mai"},"Yining Shi":{"relativeUrl":"/people/#yining-shi"},"Yograj Rajput":{"relativeUrl":"/people/#yograj-rajput"},"Yolonanido":{"relativeUrl":"/people/#yolonanido"},"Yousef Abu-Salah":{"relativeUrl":"/people/#yousef-abu-salah"},"yu":{"relativeUrl":"/people/#yu"},"Yugal Kaushik":{"relativeUrl":"/people/#yugal-kaushik"},"Yuki":{"relativeUrl":"/people/#yuki"},"Yuting Lu":{"relativeUrl":"/people/#yuting-lu"},"Zac Tolle":{"relativeUrl":"/people/#zac-tolle"},"Zach Rispoli":{"relativeUrl":"/people/#zach-rispoli"},"zacharystenger":{"relativeUrl":"/people/#zacharystenger"},"Zearin":{"relativeUrl":"/people/#zearin"},"Zeke Sikelianos":{"relativeUrl":"/people/#zeke-sikelianos"},"zelf0":{"relativeUrl":"/people/#zelf0"},"Zeno Zeng":{"relativeUrl":"/people/#zeno-zeng"},"Zhao Xin":{"relativeUrl":"/people/#zhao-xin"},"Zoรซ Ingram":{"relativeUrl":"/people/#zoe-ingram"},"Zoe Stenger":{"relativeUrl":"/people/#zoe-stenger"},"รฆmon":{"relativeUrl":"/people/#รฆmon"},"โค":{"relativeUrl":"/people/#โค"},"ๆๅค้":{"relativeUrl":"/people/#ๆๅค้"}},"reference":{"abs()":{"relativeUrl":"/reference/p5/abs","alias":"abs"},"accelerationX":{"relativeUrl":"/reference/p5/accelerationX"},"accelerationY":{"relativeUrl":"/reference/p5/accelerationY"},"accelerationZ":{"relativeUrl":"/reference/p5/accelerationZ"},"acos()":{"relativeUrl":"/reference/p5/acos","alias":"acos"},"alpha()":{"relativeUrl":"/reference/p5/alpha","alias":"alpha"},"ambientLight()":{"relativeUrl":"/reference/p5/ambientLight","alias":"ambientLight"},"ambientMaterial()":{"relativeUrl":"/reference/p5/ambientMaterial","alias":"ambientMaterial"},"angleMode()":{"relativeUrl":"/reference/p5/angleMode","alias":"angleMode"},"append()":{"relativeUrl":"/reference/p5/append","alias":"append"},"applyMatrix()":{"relativeUrl":"/reference/p5/applyMatrix","alias":"applyMatrix"},"arc()":{"relativeUrl":"/reference/p5/arc","alias":"arc"},"arrayCopy()":{"relativeUrl":"/reference/p5/arrayCopy","alias":"arrayCopy"},"asin()":{"relativeUrl":"/reference/p5/asin","alias":"asin"},"atan()":{"relativeUrl":"/reference/p5/atan","alias":"atan"},"atan2()":{"relativeUrl":"/reference/p5/atan2","alias":"atan2"},"background()":{"relativeUrl":"/reference/p5/background","alias":"background"},"baseColorShader()":{"relativeUrl":"/reference/p5/baseColorShader","alias":"baseColorShader"},"baseMaterialShader()":{"relativeUrl":"/reference/p5/baseMaterialShader","alias":"baseMaterialShader"},"baseNormalShader()":{"relativeUrl":"/reference/p5/baseNormalShader","alias":"baseNormalShader"},"baseStrokeShader()":{"relativeUrl":"/reference/p5/baseStrokeShader","alias":"baseStrokeShader"},"beginClip()":{"relativeUrl":"/reference/p5/beginClip","alias":"beginClip"},"beginContour()":{"relativeUrl":"/reference/p5/beginContour","alias":"beginContour"},"beginGeometry()":{"relativeUrl":"/reference/p5/beginGeometry","alias":"beginGeometry"},"beginShape()":{"relativeUrl":"/reference/p5/beginShape","alias":"beginShape"},"bezier()":{"relativeUrl":"/reference/p5/bezier","alias":"bezier"},"bezierDetail()":{"relativeUrl":"/reference/p5/bezierDetail","alias":"bezierDetail"},"bezierPoint()":{"relativeUrl":"/reference/p5/bezierPoint","alias":"bezierPoint"},"bezierTangent()":{"relativeUrl":"/reference/p5/bezierTangent","alias":"bezierTangent"},"bezierVertex()":{"relativeUrl":"/reference/p5/bezierVertex","alias":"bezierVertex"},"blend()":{"relativeUrl":"/reference/p5/blend","alias":"blend"},"blendMode()":{"relativeUrl":"/reference/p5/blendMode","alias":"blendMode"},"blue()":{"relativeUrl":"/reference/p5/blue","alias":"blue"},"boolean()":{"relativeUrl":"/reference/p5/boolean","alias":"boolean"},"box()":{"relativeUrl":"/reference/p5/box","alias":"box"},"brightness()":{"relativeUrl":"/reference/p5/brightness","alias":"brightness"},"buildGeometry()":{"relativeUrl":"/reference/p5/buildGeometry","alias":"buildGeometry"},"byte()":{"relativeUrl":"/reference/p5/byte","alias":"byte"},"camera()":{"relativeUrl":"/reference/p5/camera","alias":"camera"},"ceil()":{"relativeUrl":"/reference/p5/ceil","alias":"ceil"},"changed()":{"relativeUrl":"/reference/p5/changed","alias":"changed"},"char()":{"relativeUrl":"/reference/p5/char","alias":"char"},"circle()":{"relativeUrl":"/reference/p5/circle","alias":"circle"},"class":{"relativeUrl":"/reference/p5/class"},"clear()":{"relativeUrl":"/reference/p5/clear","alias":"clear"},"clearDepth()":{"relativeUrl":"/reference/p5/clearDepth","alias":"clearDepth"},"clearStorage()":{"relativeUrl":"/reference/p5/clearStorage","alias":"clearStorage"},"clip()":{"relativeUrl":"/reference/p5/clip","alias":"clip"},"color()":{"relativeUrl":"/reference/p5/color","alias":"color"},"colorMode()":{"relativeUrl":"/reference/p5/colorMode","alias":"colorMode"},"concat()":{"relativeUrl":"/reference/p5/concat","alias":"concat"},"cone()":{"relativeUrl":"/reference/p5/cone","alias":"cone"},"console":{"relativeUrl":"/reference/p5/console"},"AUTO":{"relativeUrl":"/reference/p5/AUTO"},"DEGREES":{"relativeUrl":"/reference/p5/DEGREES"},"HALF_PI":{"relativeUrl":"/reference/p5/HALF_PI"},"HSB":{"relativeUrl":"/reference/p5/HSB"},"P2D":{"relativeUrl":"/reference/p5/P2D"},"PI":{"relativeUrl":"/reference/p5/PI"},"QUARTER_PI":{"relativeUrl":"/reference/p5/QUARTER_PI"},"RADIANS":{"relativeUrl":"/reference/p5/RADIANS"},"TAU":{"relativeUrl":"/reference/p5/TAU"},"TWO_PI":{"relativeUrl":"/reference/p5/TWO_PI"},"VERSION":{"relativeUrl":"/reference/p5/VERSION"},"WEBGL":{"relativeUrl":"/reference/p5/WEBGL"},"WEBGL2":{"relativeUrl":"/reference/p5/WEBGL2"},"constrain()":{"relativeUrl":"/reference/p5/constrain","alias":"constrain"},"copy()":{"relativeUrl":"/reference/p5/copy","alias":"copy"},"cos()":{"relativeUrl":"/reference/p5/cos","alias":"cos"},"createA()":{"relativeUrl":"/reference/p5/createA","alias":"createA"},"createAudio()":{"relativeUrl":"/reference/p5/createAudio","alias":"createAudio"},"createButton()":{"relativeUrl":"/reference/p5/createButton","alias":"createButton"},"createCamera()":{"relativeUrl":"/reference/p5/createCamera","alias":"createCamera"},"createCanvas()":{"relativeUrl":"/reference/p5/createCanvas","alias":"createCanvas"},"createCapture()":{"relativeUrl":"/reference/p5/createCapture","alias":"createCapture"},"createCheckbox()":{"relativeUrl":"/reference/p5/createCheckbox","alias":"createCheckbox"},"createColorPicker()":{"relativeUrl":"/reference/p5/createColorPicker","alias":"createColorPicker"},"createConvolver()":{"relativeUrl":"/reference/p5/createConvolver","alias":"createConvolver"},"createDiv()":{"relativeUrl":"/reference/p5/createDiv","alias":"createDiv"},"createElement()":{"relativeUrl":"/reference/p5/createElement","alias":"createElement"},"createFileInput()":{"relativeUrl":"/reference/p5/createFileInput","alias":"createFileInput"},"createFilterShader()":{"relativeUrl":"/reference/p5/createFilterShader","alias":"createFilterShader"},"createFramebuffer()":{"relativeUrl":"/reference/p5/createFramebuffer","alias":"createFramebuffer"},"createGraphics()":{"relativeUrl":"/reference/p5/createGraphics","alias":"createGraphics"},"createImage()":{"relativeUrl":"/reference/p5/createImage","alias":"createImage"},"createImg()":{"relativeUrl":"/reference/p5/createImg","alias":"createImg"},"createInput()":{"relativeUrl":"/reference/p5/createInput","alias":"createInput"},"createModel()":{"relativeUrl":"/reference/p5/createModel","alias":"createModel"},"createNumberDict()":{"relativeUrl":"/reference/p5/createNumberDict","alias":"createNumberDict"},"createP()":{"relativeUrl":"/reference/p5/createP","alias":"createP"},"createRadio()":{"relativeUrl":"/reference/p5/createRadio","alias":"createRadio"},"createSelect()":{"relativeUrl":"/reference/p5/createSelect","alias":"createSelect"},"createShader()":{"relativeUrl":"/reference/p5/createShader","alias":"createShader"},"createSlider()":{"relativeUrl":"/reference/p5/createSlider","alias":"createSlider"},"createSpan()":{"relativeUrl":"/reference/p5/createSpan","alias":"createSpan"},"createStringDict()":{"relativeUrl":"/reference/p5/createStringDict","alias":"createStringDict"},"createVector()":{"relativeUrl":"/reference/p5/createVector","alias":"createVector"},"createVideo()":{"relativeUrl":"/reference/p5/createVideo","alias":"createVideo"},"createWriter()":{"relativeUrl":"/reference/p5/createWriter","alias":"createWriter"},"cursor()":{"relativeUrl":"/reference/p5/cursor","alias":"cursor"},"curve()":{"relativeUrl":"/reference/p5/curve","alias":"curve"},"curveDetail()":{"relativeUrl":"/reference/p5/curveDetail","alias":"curveDetail"},"curvePoint()":{"relativeUrl":"/reference/p5/curvePoint","alias":"curvePoint"},"curveTangent()":{"relativeUrl":"/reference/p5/curveTangent","alias":"curveTangent"},"curveTightness()":{"relativeUrl":"/reference/p5/curveTightness","alias":"curveTightness"},"curveVertex()":{"relativeUrl":"/reference/p5/curveVertex","alias":"curveVertex"},"cylinder()":{"relativeUrl":"/reference/p5/cylinder","alias":"cylinder"},"day()":{"relativeUrl":"/reference/p5/day","alias":"day"},"debugMode()":{"relativeUrl":"/reference/p5/debugMode","alias":"debugMode"},"degrees()":{"relativeUrl":"/reference/p5/degrees","alias":"degrees"},"deltaTime":{"relativeUrl":"/reference/p5/deltaTime"},"describe()":{"relativeUrl":"/reference/p5/describe","alias":"describe"},"describeElement()":{"relativeUrl":"/reference/p5/describeElement","alias":"describeElement"},"deviceMoved()":{"relativeUrl":"/reference/p5/deviceMoved","alias":"deviceMoved"},"deviceOrientation":{"relativeUrl":"/reference/p5/deviceOrientation"},"deviceShaken()":{"relativeUrl":"/reference/p5/deviceShaken","alias":"deviceShaken"},"deviceTurned()":{"relativeUrl":"/reference/p5/deviceTurned","alias":"deviceTurned"},"directionalLight()":{"relativeUrl":"/reference/p5/directionalLight","alias":"directionalLight"},"disableFriendlyErrors":{"relativeUrl":"/reference/p5/disableFriendlyErrors"},"displayDensity()":{"relativeUrl":"/reference/p5/displayDensity","alias":"displayDensity"},"displayHeight":{"relativeUrl":"/reference/p5/displayHeight"},"displayWidth":{"relativeUrl":"/reference/p5/displayWidth"},"dist()":{"relativeUrl":"/reference/p5/dist","alias":"dist"},"doubleClicked()":{"relativeUrl":"/reference/p5/doubleClicked","alias":"doubleClicked"},"draw()":{"relativeUrl":"/reference/p5/draw","alias":"draw"},"drawingContext":{"relativeUrl":"/reference/p5/drawingContext"},"ellipse()":{"relativeUrl":"/reference/p5/ellipse","alias":"ellipse"},"ellipseMode()":{"relativeUrl":"/reference/p5/ellipseMode","alias":"ellipseMode"},"ellipsoid()":{"relativeUrl":"/reference/p5/ellipsoid","alias":"ellipsoid"},"emissiveMaterial()":{"relativeUrl":"/reference/p5/emissiveMaterial","alias":"emissiveMaterial"},"endClip()":{"relativeUrl":"/reference/p5/endClip","alias":"endClip"},"endContour()":{"relativeUrl":"/reference/p5/endContour","alias":"endContour"},"endGeometry()":{"relativeUrl":"/reference/p5/endGeometry","alias":"endGeometry"},"endShape()":{"relativeUrl":"/reference/p5/endShape","alias":"endShape"},"erase()":{"relativeUrl":"/reference/p5/erase","alias":"erase"},"exitPointerLock()":{"relativeUrl":"/reference/p5/exitPointerLock","alias":"exitPointerLock"},"exp()":{"relativeUrl":"/reference/p5/exp","alias":"exp"},"fill()":{"relativeUrl":"/reference/p5/fill","alias":"fill"},"filter()":{"relativeUrl":"/reference/p5/filter","alias":"filter"},"float()":{"relativeUrl":"/reference/p5/float","alias":"float"},"floor()":{"relativeUrl":"/reference/p5/floor","alias":"floor"},"focused":{"relativeUrl":"/reference/p5/focused"},"for":{"relativeUrl":"/reference/p5/for"},"fract()":{"relativeUrl":"/reference/p5/fract","alias":"fract"},"frameCount":{"relativeUrl":"/reference/p5/frameCount"},"frameRate()":{"relativeUrl":"/reference/p5/frameRate","alias":"frameRate"},"freeGeometry()":{"relativeUrl":"/reference/p5/freeGeometry","alias":"freeGeometry"},"freqToMidi()":{"relativeUrl":"/reference/p5/freqToMidi","alias":"freqToMidi"},"frustum()":{"relativeUrl":"/reference/p5/frustum","alias":"frustum"},"fullscreen()":{"relativeUrl":"/reference/p5/fullscreen","alias":"fullscreen"},"function":{"relativeUrl":"/reference/p5/function"},"get()":{"relativeUrl":"/reference/p5/get","alias":"get"},"getAudioContext()":{"relativeUrl":"/reference/p5/getAudioContext","alias":"getAudioContext"},"getItem()":{"relativeUrl":"/reference/p5/getItem","alias":"getItem"},"getOutputVolume()":{"relativeUrl":"/reference/p5/getOutputVolume","alias":"getOutputVolume"},"getTargetFrameRate()":{"relativeUrl":"/reference/p5/getTargetFrameRate","alias":"getTargetFrameRate"},"getURL()":{"relativeUrl":"/reference/p5/getURL","alias":"getURL"},"getURLParams()":{"relativeUrl":"/reference/p5/getURLParams","alias":"getURLParams"},"getURLPath()":{"relativeUrl":"/reference/p5/getURLPath","alias":"getURLPath"},"green()":{"relativeUrl":"/reference/p5/green","alias":"green"},"gridOutput()":{"relativeUrl":"/reference/p5/gridOutput","alias":"gridOutput"},"height":{"relativeUrl":"/reference/p5/height"},"hex()":{"relativeUrl":"/reference/p5/hex","alias":"hex"},"hour()":{"relativeUrl":"/reference/p5/hour","alias":"hour"},"httpDo()":{"relativeUrl":"/reference/p5/httpDo","alias":"httpDo"},"httpGet()":{"relativeUrl":"/reference/p5/httpGet","alias":"httpGet"},"httpPost()":{"relativeUrl":"/reference/p5/httpPost","alias":"httpPost"},"hue()":{"relativeUrl":"/reference/p5/hue","alias":"hue"},"if":{"relativeUrl":"/reference/p5/if"},"image()":{"relativeUrl":"/reference/p5/image","alias":"image"},"imageLight()":{"relativeUrl":"/reference/p5/imageLight","alias":"imageLight"},"imageMode()":{"relativeUrl":"/reference/p5/imageMode","alias":"imageMode"},"input()":{"relativeUrl":"/reference/p5/input","alias":"input"},"int()":{"relativeUrl":"/reference/p5/int","alias":"int"},"isLooping()":{"relativeUrl":"/reference/p5/isLooping","alias":"isLooping"},"join()":{"relativeUrl":"/reference/p5/join","alias":"join"},"key":{"relativeUrl":"/reference/p5/key"},"keyCode":{"relativeUrl":"/reference/p5/keyCode"},"keyIsDown()":{"relativeUrl":"/reference/p5/keyIsDown","alias":"keyIsDown"},"keyIsPressed":{"relativeUrl":"/reference/p5/keyIsPressed"},"keyPressed()":{"relativeUrl":"/reference/p5/keyPressed","alias":"keyPressed"},"keyReleased()":{"relativeUrl":"/reference/p5/keyReleased","alias":"keyReleased"},"keyTyped()":{"relativeUrl":"/reference/p5/keyTyped","alias":"keyTyped"},"lerp()":{"relativeUrl":"/reference/p5/lerp","alias":"lerp"},"lerpColor()":{"relativeUrl":"/reference/p5/lerpColor","alias":"lerpColor"},"let":{"relativeUrl":"/reference/p5/let"},"lightFalloff()":{"relativeUrl":"/reference/p5/lightFalloff","alias":"lightFalloff"},"lightness()":{"relativeUrl":"/reference/p5/lightness","alias":"lightness"},"lights()":{"relativeUrl":"/reference/p5/lights","alias":"lights"},"line()":{"relativeUrl":"/reference/p5/line","alias":"line"},"linePerspective()":{"relativeUrl":"/reference/p5/linePerspective","alias":"linePerspective"},"loadBytes()":{"relativeUrl":"/reference/p5/loadBytes","alias":"loadBytes"},"loadFont()":{"relativeUrl":"/reference/p5/loadFont","alias":"loadFont"},"loadImage()":{"relativeUrl":"/reference/p5/loadImage","alias":"loadImage"},"loadJSON()":{"relativeUrl":"/reference/p5/loadJSON","alias":"loadJSON"},"loadModel()":{"relativeUrl":"/reference/p5/loadModel","alias":"loadModel"},"loadPixels()":{"relativeUrl":"/reference/p5/loadPixels","alias":"loadPixels"},"loadShader()":{"relativeUrl":"/reference/p5/loadShader","alias":"loadShader"},"loadSound()":{"relativeUrl":"/reference/p5/loadSound","alias":"loadSound"},"loadStrings()":{"relativeUrl":"/reference/p5/loadStrings","alias":"loadStrings"},"loadTable()":{"relativeUrl":"/reference/p5/loadTable","alias":"loadTable"},"loadXML()":{"relativeUrl":"/reference/p5/loadXML","alias":"loadXML"},"log()":{"relativeUrl":"/reference/p5/log","alias":"log"},"loop()":{"relativeUrl":"/reference/p5/loop","alias":"loop"},"mag()":{"relativeUrl":"/reference/p5/mag","alias":"mag"},"map()":{"relativeUrl":"/reference/p5/map","alias":"map"},"match()":{"relativeUrl":"/reference/p5/match","alias":"match"},"matchAll()":{"relativeUrl":"/reference/p5/matchAll","alias":"matchAll"},"max()":{"relativeUrl":"/reference/p5/max","alias":"max"},"metalness()":{"relativeUrl":"/reference/p5/metalness","alias":"metalness"},"midiToFreq()":{"relativeUrl":"/reference/p5/midiToFreq","alias":"midiToFreq"},"millis()":{"relativeUrl":"/reference/p5/millis","alias":"millis"},"min()":{"relativeUrl":"/reference/p5/min","alias":"min"},"minute()":{"relativeUrl":"/reference/p5/minute","alias":"minute"},"model()":{"relativeUrl":"/reference/p5/model","alias":"model"},"month()":{"relativeUrl":"/reference/p5/month","alias":"month"},"mouseButton":{"relativeUrl":"/reference/p5/mouseButton"},"mouseClicked()":{"relativeUrl":"/reference/p5/mouseClicked","alias":"mouseClicked"},"mouseDragged()":{"relativeUrl":"/reference/p5/mouseDragged","alias":"mouseDragged"},"mouseIsPressed":{"relativeUrl":"/reference/p5/mouseIsPressed"},"mouseMoved()":{"relativeUrl":"/reference/p5/mouseMoved","alias":"mouseMoved"},"mousePressed()":{"relativeUrl":"/reference/p5/mousePressed","alias":"mousePressed"},"mouseReleased()":{"relativeUrl":"/reference/p5/mouseReleased","alias":"mouseReleased"},"mouseWheel()":{"relativeUrl":"/reference/p5/mouseWheel","alias":"mouseWheel"},"mouseX":{"relativeUrl":"/reference/p5/mouseX"},"mouseY":{"relativeUrl":"/reference/p5/mouseY"},"movedX":{"relativeUrl":"/reference/p5/movedX"},"movedY":{"relativeUrl":"/reference/p5/movedY"},"nf()":{"relativeUrl":"/reference/p5/nf","alias":"nf"},"nfc()":{"relativeUrl":"/reference/p5/nfc","alias":"nfc"},"nfp()":{"relativeUrl":"/reference/p5/nfp","alias":"nfp"},"nfs()":{"relativeUrl":"/reference/p5/nfs","alias":"nfs"},"noCanvas()":{"relativeUrl":"/reference/p5/noCanvas","alias":"noCanvas"},"noCursor()":{"relativeUrl":"/reference/p5/noCursor","alias":"noCursor"},"noDebugMode()":{"relativeUrl":"/reference/p5/noDebugMode","alias":"noDebugMode"},"noErase()":{"relativeUrl":"/reference/p5/noErase","alias":"noErase"},"noFill()":{"relativeUrl":"/reference/p5/noFill","alias":"noFill"},"noLights()":{"relativeUrl":"/reference/p5/noLights","alias":"noLights"},"noLoop()":{"relativeUrl":"/reference/p5/noLoop","alias":"noLoop"},"noSmooth()":{"relativeUrl":"/reference/p5/noSmooth","alias":"noSmooth"},"noStroke()":{"relativeUrl":"/reference/p5/noStroke","alias":"noStroke"},"noTint()":{"relativeUrl":"/reference/p5/noTint","alias":"noTint"},"noise()":{"relativeUrl":"/reference/p5/noise","alias":"noise"},"noiseDetail()":{"relativeUrl":"/reference/p5/noiseDetail","alias":"noiseDetail"},"noiseSeed()":{"relativeUrl":"/reference/p5/noiseSeed","alias":"noiseSeed"},"norm()":{"relativeUrl":"/reference/p5/norm","alias":"norm"},"normal()":{"relativeUrl":"/reference/p5/normal","alias":"normal"},"normalMaterial()":{"relativeUrl":"/reference/p5/normalMaterial","alias":"normalMaterial"},"orbitControl()":{"relativeUrl":"/reference/p5/orbitControl","alias":"orbitControl"},"ortho()":{"relativeUrl":"/reference/p5/ortho","alias":"ortho"},"outputVolume()":{"relativeUrl":"/reference/p5/outputVolume","alias":"outputVolume"},"p5.Camera":{"relativeUrl":"/reference/p5/p5.Camera"},"p5.Color":{"relativeUrl":"/reference/p5/p5.Color"},"p5.Element":{"relativeUrl":"/reference/p5/p5.Element"},"p5.File":{"relativeUrl":"/reference/p5/p5.File"},"p5.Font":{"relativeUrl":"/reference/p5/p5.Font"},"p5.Framebuffer":{"relativeUrl":"/reference/p5/p5.Framebuffer"},"p5.Geometry":{"relativeUrl":"/reference/p5/p5.Geometry"},"p5.Graphics":{"relativeUrl":"/reference/p5/p5.Graphics"},"p5.Image":{"relativeUrl":"/reference/p5/p5.Image"},"p5.MediaElement":{"relativeUrl":"/reference/p5/p5.MediaElement"},"p5.NumberDict":{"relativeUrl":"/reference/p5/p5.NumberDict"},"p5.PrintWriter":{"relativeUrl":"/reference/p5/p5.PrintWriter"},"p5.Renderer":{"relativeUrl":"/reference/p5/p5.Renderer"},"p5.Shader":{"relativeUrl":"/reference/p5/p5.Shader"},"p5.StringDict":{"relativeUrl":"/reference/p5/p5.StringDict"},"p5.Table":{"relativeUrl":"/reference/p5/p5.Table"},"p5.TableRow":{"relativeUrl":"/reference/p5/p5.TableRow"},"p5.TypedDict":{"relativeUrl":"/reference/p5/p5.TypedDict"},"p5.Vector":{"relativeUrl":"/reference/p5/p5.Vector"},"p5.XML":{"relativeUrl":"/reference/p5/p5.XML"},"p5":{"relativeUrl":"/reference/p5/p5"},"pAccelerationX":{"relativeUrl":"/reference/p5/pAccelerationX"},"pAccelerationY":{"relativeUrl":"/reference/p5/pAccelerationY"},"pAccelerationZ":{"relativeUrl":"/reference/p5/pAccelerationZ"},"pRotationX":{"relativeUrl":"/reference/p5/pRotationX"},"pRotationY":{"relativeUrl":"/reference/p5/pRotationY"},"pRotationZ":{"relativeUrl":"/reference/p5/pRotationZ"},"paletteLerp()":{"relativeUrl":"/reference/p5/paletteLerp","alias":"paletteLerp"},"panorama()":{"relativeUrl":"/reference/p5/panorama","alias":"panorama"},"perspective()":{"relativeUrl":"/reference/p5/perspective","alias":"perspective"},"pixelDensity()":{"relativeUrl":"/reference/p5/pixelDensity","alias":"pixelDensity"},"pixels":{"relativeUrl":"/reference/p5/pixels"},"plane()":{"relativeUrl":"/reference/p5/plane","alias":"plane"},"pmouseX":{"relativeUrl":"/reference/p5/pmouseX"},"pmouseY":{"relativeUrl":"/reference/p5/pmouseY"},"point()":{"relativeUrl":"/reference/p5/point","alias":"point"},"pointLight()":{"relativeUrl":"/reference/p5/pointLight","alias":"pointLight"},"pop()":{"relativeUrl":"/reference/p5/pop","alias":"pop"},"pow()":{"relativeUrl":"/reference/p5/pow","alias":"pow"},"preload()":{"relativeUrl":"/reference/p5/preload","alias":"preload"},"print()":{"relativeUrl":"/reference/p5/print","alias":"print"},"push()":{"relativeUrl":"/reference/p5/push","alias":"push"},"pwinMouseX":{"relativeUrl":"/reference/p5/pwinMouseX"},"pwinMouseY":{"relativeUrl":"/reference/p5/pwinMouseY"},"quad()":{"relativeUrl":"/reference/p5/quad","alias":"quad"},"quadraticVertex()":{"relativeUrl":"/reference/p5/quadraticVertex","alias":"quadraticVertex"},"radians()":{"relativeUrl":"/reference/p5/radians","alias":"radians"},"random()":{"relativeUrl":"/reference/p5/random","alias":"random"},"randomGaussian()":{"relativeUrl":"/reference/p5/randomGaussian","alias":"randomGaussian"},"randomSeed()":{"relativeUrl":"/reference/p5/randomSeed","alias":"randomSeed"},"rect()":{"relativeUrl":"/reference/p5/rect","alias":"rect"},"rectMode()":{"relativeUrl":"/reference/p5/rectMode","alias":"rectMode"},"red()":{"relativeUrl":"/reference/p5/red","alias":"red"},"redraw()":{"relativeUrl":"/reference/p5/redraw","alias":"redraw"},"remove()":{"relativeUrl":"/reference/p5/remove","alias":"remove"},"removeElements()":{"relativeUrl":"/reference/p5/removeElements","alias":"removeElements"},"removeItem()":{"relativeUrl":"/reference/p5/removeItem","alias":"removeItem"},"requestPointerLock()":{"relativeUrl":"/reference/p5/requestPointerLock","alias":"requestPointerLock"},"resetMatrix()":{"relativeUrl":"/reference/p5/resetMatrix","alias":"resetMatrix"},"resetShader()":{"relativeUrl":"/reference/p5/resetShader","alias":"resetShader"},"resizeCanvas()":{"relativeUrl":"/reference/p5/resizeCanvas","alias":"resizeCanvas"},"reverse()":{"relativeUrl":"/reference/p5/reverse","alias":"reverse"},"rotate()":{"relativeUrl":"/reference/p5/rotate","alias":"rotate"},"rotateX()":{"relativeUrl":"/reference/p5/rotateX","alias":"rotateX"},"rotateY()":{"relativeUrl":"/reference/p5/rotateY","alias":"rotateY"},"rotateZ()":{"relativeUrl":"/reference/p5/rotateZ","alias":"rotateZ"},"rotationX":{"relativeUrl":"/reference/p5/rotationX"},"rotationY":{"relativeUrl":"/reference/p5/rotationY"},"rotationZ":{"relativeUrl":"/reference/p5/rotationZ"},"round()":{"relativeUrl":"/reference/p5/round","alias":"round"},"sampleRate()":{"relativeUrl":"/reference/p5/sampleRate","alias":"sampleRate"},"saturation()":{"relativeUrl":"/reference/p5/saturation","alias":"saturation"},"save()":{"relativeUrl":"/reference/p5/save","alias":"save"},"saveCanvas()":{"relativeUrl":"/reference/p5/saveCanvas","alias":"saveCanvas"},"saveFrames()":{"relativeUrl":"/reference/p5/saveFrames","alias":"saveFrames"},"saveGif()":{"relativeUrl":"/reference/p5/saveGif","alias":"saveGif"},"saveJSON()":{"relativeUrl":"/reference/p5/saveJSON","alias":"saveJSON"},"saveSound()":{"relativeUrl":"/reference/p5/saveSound","alias":"saveSound"},"saveStrings()":{"relativeUrl":"/reference/p5/saveStrings","alias":"saveStrings"},"saveTable()":{"relativeUrl":"/reference/p5/saveTable","alias":"saveTable"},"scale()":{"relativeUrl":"/reference/p5/scale","alias":"scale"},"second()":{"relativeUrl":"/reference/p5/second","alias":"second"},"select()":{"relativeUrl":"/reference/p5/select","alias":"select"},"selectAll()":{"relativeUrl":"/reference/p5/selectAll","alias":"selectAll"},"set()":{"relativeUrl":"/reference/p5/set","alias":"set"},"setAttributes()":{"relativeUrl":"/reference/p5/setAttributes","alias":"setAttributes"},"setBPM()":{"relativeUrl":"/reference/p5/setBPM","alias":"setBPM"},"setCamera()":{"relativeUrl":"/reference/p5/setCamera","alias":"setCamera"},"setMoveThreshold()":{"relativeUrl":"/reference/p5/setMoveThreshold","alias":"setMoveThreshold"},"setShakeThreshold()":{"relativeUrl":"/reference/p5/setShakeThreshold","alias":"setShakeThreshold"},"setup()":{"relativeUrl":"/reference/p5/setup","alias":"setup"},"shader()":{"relativeUrl":"/reference/p5/shader","alias":"shader"},"shearX()":{"relativeUrl":"/reference/p5/shearX","alias":"shearX"},"shearY()":{"relativeUrl":"/reference/p5/shearY","alias":"shearY"},"shininess()":{"relativeUrl":"/reference/p5/shininess","alias":"shininess"},"shorten()":{"relativeUrl":"/reference/p5/shorten","alias":"shorten"},"shuffle()":{"relativeUrl":"/reference/p5/shuffle","alias":"shuffle"},"sin()":{"relativeUrl":"/reference/p5/sin","alias":"sin"},"smooth()":{"relativeUrl":"/reference/p5/smooth","alias":"smooth"},"sort()":{"relativeUrl":"/reference/p5/sort","alias":"sort"},"soundFormats()":{"relativeUrl":"/reference/p5/soundFormats","alias":"soundFormats"},"soundOut":{"relativeUrl":"/reference/p5/soundOut"},"specularColor()":{"relativeUrl":"/reference/p5/specularColor","alias":"specularColor"},"specularMaterial()":{"relativeUrl":"/reference/p5/specularMaterial","alias":"specularMaterial"},"sphere()":{"relativeUrl":"/reference/p5/sphere","alias":"sphere"},"splice()":{"relativeUrl":"/reference/p5/splice","alias":"splice"},"split()":{"relativeUrl":"/reference/p5/split","alias":"split"},"splitTokens()":{"relativeUrl":"/reference/p5/splitTokens","alias":"splitTokens"},"spotLight()":{"relativeUrl":"/reference/p5/spotLight","alias":"spotLight"},"sq()":{"relativeUrl":"/reference/p5/sq","alias":"sq"},"sqrt()":{"relativeUrl":"/reference/p5/sqrt","alias":"sqrt"},"square()":{"relativeUrl":"/reference/p5/square","alias":"square"},"storeItem()":{"relativeUrl":"/reference/p5/storeItem","alias":"storeItem"},"str()":{"relativeUrl":"/reference/p5/str","alias":"str"},"stroke()":{"relativeUrl":"/reference/p5/stroke","alias":"stroke"},"strokeCap()":{"relativeUrl":"/reference/p5/strokeCap","alias":"strokeCap"},"strokeJoin()":{"relativeUrl":"/reference/p5/strokeJoin","alias":"strokeJoin"},"strokeWeight()":{"relativeUrl":"/reference/p5/strokeWeight","alias":"strokeWeight"},"subset()":{"relativeUrl":"/reference/p5/subset","alias":"subset"},"tan()":{"relativeUrl":"/reference/p5/tan","alias":"tan"},"text()":{"relativeUrl":"/reference/p5/text","alias":"text"},"textAlign()":{"relativeUrl":"/reference/p5/textAlign","alias":"textAlign"},"textAscent()":{"relativeUrl":"/reference/p5/textAscent","alias":"textAscent"},"textDescent()":{"relativeUrl":"/reference/p5/textDescent","alias":"textDescent"},"textFont()":{"relativeUrl":"/reference/p5/textFont","alias":"textFont"},"textLeading()":{"relativeUrl":"/reference/p5/textLeading","alias":"textLeading"},"textOutput()":{"relativeUrl":"/reference/p5/textOutput","alias":"textOutput"},"textSize()":{"relativeUrl":"/reference/p5/textSize","alias":"textSize"},"textStyle()":{"relativeUrl":"/reference/p5/textStyle","alias":"textStyle"},"textWidth()":{"relativeUrl":"/reference/p5/textWidth","alias":"textWidth"},"textWrap()":{"relativeUrl":"/reference/p5/textWrap","alias":"textWrap"},"texture()":{"relativeUrl":"/reference/p5/texture","alias":"texture"},"textureMode()":{"relativeUrl":"/reference/p5/textureMode","alias":"textureMode"},"textureWrap()":{"relativeUrl":"/reference/p5/textureWrap","alias":"textureWrap"},"tint()":{"relativeUrl":"/reference/p5/tint","alias":"tint"},"torus()":{"relativeUrl":"/reference/p5/torus","alias":"torus"},"touchEnded()":{"relativeUrl":"/reference/p5/touchEnded","alias":"touchEnded"},"touchMoved()":{"relativeUrl":"/reference/p5/touchMoved","alias":"touchMoved"},"touchStarted()":{"relativeUrl":"/reference/p5/touchStarted","alias":"touchStarted"},"touches":{"relativeUrl":"/reference/p5/touches"},"translate()":{"relativeUrl":"/reference/p5/translate","alias":"translate"},"triangle()":{"relativeUrl":"/reference/p5/triangle","alias":"triangle"},"trim()":{"relativeUrl":"/reference/p5/trim","alias":"trim"},"turnAxis":{"relativeUrl":"/reference/p5/turnAxis"},"Array":{"relativeUrl":"/reference/p5/Array"},"Boolean":{"relativeUrl":"/reference/p5/Boolean"},"Number":{"relativeUrl":"/reference/p5/Number"},"Object":{"relativeUrl":"/reference/p5/Object"},"String":{"relativeUrl":"/reference/p5/String"},"unchar()":{"relativeUrl":"/reference/p5/unchar","alias":"unchar"},"unhex()":{"relativeUrl":"/reference/p5/unhex","alias":"unhex"},"updatePixels()":{"relativeUrl":"/reference/p5/updatePixels","alias":"updatePixels"},"userStartAudio()":{"relativeUrl":"/reference/p5/userStartAudio","alias":"userStartAudio"},"vertex()":{"relativeUrl":"/reference/p5/vertex","alias":"vertex"},"webglVersion":{"relativeUrl":"/reference/p5/webglVersion"},"while":{"relativeUrl":"/reference/p5/while"},"width":{"relativeUrl":"/reference/p5/width"},"winMouseX":{"relativeUrl":"/reference/p5/winMouseX"},"winMouseY":{"relativeUrl":"/reference/p5/winMouseY"},"windowHeight":{"relativeUrl":"/reference/p5/windowHeight"},"windowResized()":{"relativeUrl":"/reference/p5/windowResized","alias":"windowResized"},"windowWidth":{"relativeUrl":"/reference/p5/windowWidth"},"year()":{"relativeUrl":"/reference/p5/year","alias":"year"},"p5.Amplitude.getLevel()":{"relativeUrl":"/reference/p5.Amplitude/getLevel","alias":"getLevel"},"p5.Amplitude.setInput()":{"relativeUrl":"/reference/p5.Amplitude/setInput","alias":"setInput"},"p5.Amplitude.smooth()":{"relativeUrl":"/reference/p5.Amplitude/smooth","alias":"smooth"},"p5.Amplitude.toggleNormalize()":{"relativeUrl":"/reference/p5.Amplitude/toggleNormalize","alias":"toggleNormalize"},"p5.AudioIn.amp()":{"relativeUrl":"/reference/p5.AudioIn/amp","alias":"amp"},"p5.AudioIn.amplitude":{"relativeUrl":"/reference/p5.AudioIn/amplitude","alias":"amplitude"},"p5.AudioIn.connect()":{"relativeUrl":"/reference/p5.AudioIn/connect","alias":"connect"},"p5.AudioIn.disconnect()":{"relativeUrl":"/reference/p5.AudioIn/disconnect","alias":"disconnect"},"p5.AudioIn.enabled":{"relativeUrl":"/reference/p5.AudioIn/enabled","alias":"enabled"},"p5.AudioIn.getLevel()":{"relativeUrl":"/reference/p5.AudioIn/getLevel","alias":"getLevel"},"p5.AudioIn.getSources()":{"relativeUrl":"/reference/p5.AudioIn/getSources","alias":"getSources"},"p5.AudioIn.setSource()":{"relativeUrl":"/reference/p5.AudioIn/setSource","alias":"setSource"},"p5.AudioIn.start()":{"relativeUrl":"/reference/p5.AudioIn/start","alias":"start"},"p5.AudioIn.stop()":{"relativeUrl":"/reference/p5.AudioIn/stop","alias":"stop"},"p5.AudioVoice.connect()":{"relativeUrl":"/reference/p5.AudioVoice/connect","alias":"connect"},"p5.AudioVoice.disconnect()":{"relativeUrl":"/reference/p5.AudioVoice/disconnect","alias":"disconnect"},"p5.Camera.camera()":{"relativeUrl":"/reference/p5.Camera/camera","alias":"camera"},"p5.Camera.centerX":{"relativeUrl":"/reference/p5.Camera/centerX","alias":"centerX"},"p5.Camera.centerY":{"relativeUrl":"/reference/p5.Camera/centerY","alias":"centerY"},"p5.Camera.centerZ":{"relativeUrl":"/reference/p5.Camera/centerZ","alias":"centerZ"},"p5.Camera.eyeX":{"relativeUrl":"/reference/p5.Camera/eyeX","alias":"eyeX"},"p5.Camera.eyeY":{"relativeUrl":"/reference/p5.Camera/eyeY","alias":"eyeY"},"p5.Camera.eyeZ":{"relativeUrl":"/reference/p5.Camera/eyeZ","alias":"eyeZ"},"p5.Camera.frustum()":{"relativeUrl":"/reference/p5.Camera/frustum","alias":"frustum"},"p5.Camera.lookAt()":{"relativeUrl":"/reference/p5.Camera/lookAt","alias":"lookAt"},"p5.Camera.move()":{"relativeUrl":"/reference/p5.Camera/move","alias":"move"},"p5.Camera.ortho()":{"relativeUrl":"/reference/p5.Camera/ortho","alias":"ortho"},"p5.Camera.pan()":{"relativeUrl":"/reference/p5.Camera/pan","alias":"pan"},"p5.Camera.perspective()":{"relativeUrl":"/reference/p5.Camera/perspective","alias":"perspective"},"p5.Camera.roll()":{"relativeUrl":"/reference/p5.Camera/roll","alias":"roll"},"p5.Camera.set()":{"relativeUrl":"/reference/p5.Camera/set","alias":"set"},"p5.Camera.setPosition()":{"relativeUrl":"/reference/p5.Camera/setPosition","alias":"setPosition"},"p5.Camera.slerp()":{"relativeUrl":"/reference/p5.Camera/slerp","alias":"slerp"},"p5.Camera.tilt()":{"relativeUrl":"/reference/p5.Camera/tilt","alias":"tilt"},"p5.Camera.upX":{"relativeUrl":"/reference/p5.Camera/upX","alias":"upX"},"p5.Camera.upY":{"relativeUrl":"/reference/p5.Camera/upY","alias":"upY"},"p5.Camera.upZ":{"relativeUrl":"/reference/p5.Camera/upZ","alias":"upZ"},"p5.Color.setAlpha()":{"relativeUrl":"/reference/p5.Color/setAlpha","alias":"setAlpha"},"p5.Color.setBlue()":{"relativeUrl":"/reference/p5.Color/setBlue","alias":"setBlue"},"p5.Color.setGreen()":{"relativeUrl":"/reference/p5.Color/setGreen","alias":"setGreen"},"p5.Color.setRed()":{"relativeUrl":"/reference/p5.Color/setRed","alias":"setRed"},"p5.Color.toString()":{"relativeUrl":"/reference/p5.Color/toString","alias":"toString"},"p5.Compressor.attack()":{"relativeUrl":"/reference/p5.Compressor/attack","alias":"attack"},"p5.Compressor.compressor":{"relativeUrl":"/reference/p5.Compressor/compressor","alias":"compressor"},"p5.Compressor.knee()":{"relativeUrl":"/reference/p5.Compressor/knee","alias":"knee"},"p5.Compressor.process()":{"relativeUrl":"/reference/p5.Compressor/process","alias":"process"},"p5.Compressor.ratio()":{"relativeUrl":"/reference/p5.Compressor/ratio","alias":"ratio"},"p5.Compressor.reduction()":{"relativeUrl":"/reference/p5.Compressor/reduction","alias":"reduction"},"p5.Compressor.release()":{"relativeUrl":"/reference/p5.Compressor/release","alias":"release"},"p5.Compressor.set()":{"relativeUrl":"/reference/p5.Compressor/set","alias":"set"},"p5.Compressor.threshold()":{"relativeUrl":"/reference/p5.Compressor/threshold","alias":"threshold"},"p5.Convolver.addImpulse()":{"relativeUrl":"/reference/p5.Convolver/addImpulse","alias":"addImpulse"},"p5.Convolver.convolverNode":{"relativeUrl":"/reference/p5.Convolver/convolverNode","alias":"convolverNode"},"p5.Convolver.impulses":{"relativeUrl":"/reference/p5.Convolver/impulses","alias":"impulses"},"p5.Convolver.process()":{"relativeUrl":"/reference/p5.Convolver/process","alias":"process"},"p5.Convolver.resetImpulse()":{"relativeUrl":"/reference/p5.Convolver/resetImpulse","alias":"resetImpulse"},"p5.Convolver.toggleImpulse()":{"relativeUrl":"/reference/p5.Convolver/toggleImpulse","alias":"toggleImpulse"},"p5.Delay.amp()":{"relativeUrl":"/reference/p5.Delay/amp","alias":"amp"},"p5.Delay.connect()":{"relativeUrl":"/reference/p5.Delay/connect","alias":"connect"},"p5.Delay.delayTime()":{"relativeUrl":"/reference/p5.Delay/delayTime","alias":"delayTime"},"p5.Delay.disconnect()":{"relativeUrl":"/reference/p5.Delay/disconnect","alias":"disconnect"},"p5.Delay.feedback()":{"relativeUrl":"/reference/p5.Delay/feedback","alias":"feedback"},"p5.Delay.filter()":{"relativeUrl":"/reference/p5.Delay/filter","alias":"filter"},"p5.Delay.leftDelay":{"relativeUrl":"/reference/p5.Delay/leftDelay","alias":"leftDelay"},"p5.Delay.process()":{"relativeUrl":"/reference/p5.Delay/process","alias":"process"},"p5.Delay.rightDelay":{"relativeUrl":"/reference/p5.Delay/rightDelay","alias":"rightDelay"},"p5.Delay.setType()":{"relativeUrl":"/reference/p5.Delay/setType","alias":"setType"},"p5.Distortion.WaveShaperNode":{"relativeUrl":"/reference/p5.Distortion/WaveShaperNode","alias":"WaveShaperNode"},"p5.Distortion.getAmount()":{"relativeUrl":"/reference/p5.Distortion/getAmount","alias":"getAmount"},"p5.Distortion.getOversample()":{"relativeUrl":"/reference/p5.Distortion/getOversample","alias":"getOversample"},"p5.Distortion.process()":{"relativeUrl":"/reference/p5.Distortion/process","alias":"process"},"p5.Distortion.set()":{"relativeUrl":"/reference/p5.Distortion/set","alias":"set"},"p5.EQ.bands":{"relativeUrl":"/reference/p5.EQ/bands","alias":"bands"},"p5.EQ.process()":{"relativeUrl":"/reference/p5.EQ/process","alias":"process"},"p5.Effect.amp()":{"relativeUrl":"/reference/p5.Effect/amp","alias":"amp"},"p5.Effect.chain()":{"relativeUrl":"/reference/p5.Effect/chain","alias":"chain"},"p5.Effect.connect()":{"relativeUrl":"/reference/p5.Effect/connect","alias":"connect"},"p5.Effect.disconnect()":{"relativeUrl":"/reference/p5.Effect/disconnect","alias":"disconnect"},"p5.Effect.drywet()":{"relativeUrl":"/reference/p5.Effect/drywet","alias":"drywet"},"p5.Element.addClass()":{"relativeUrl":"/reference/p5.Element/addClass","alias":"addClass"},"p5.Element.attribute()":{"relativeUrl":"/reference/p5.Element/attribute","alias":"attribute"},"p5.Element.center()":{"relativeUrl":"/reference/p5.Element/center","alias":"center"},"p5.Element.child()":{"relativeUrl":"/reference/p5.Element/child","alias":"child"},"p5.Element.class()":{"relativeUrl":"/reference/p5.Element/class","alias":"class"},"p5.Element.doubleClicked()":{"relativeUrl":"/reference/p5.Element/doubleClicked","alias":"doubleClicked"},"p5.Element.dragLeave()":{"relativeUrl":"/reference/p5.Element/dragLeave","alias":"dragLeave"},"p5.Element.dragOver()":{"relativeUrl":"/reference/p5.Element/dragOver","alias":"dragOver"},"p5.Element.draggable()":{"relativeUrl":"/reference/p5.Element/draggable","alias":"draggable"},"p5.Element.drop()":{"relativeUrl":"/reference/p5.Element/drop","alias":"drop"},"p5.Element.elt":{"relativeUrl":"/reference/p5.Element/elt","alias":"elt"},"p5.Element.hasClass()":{"relativeUrl":"/reference/p5.Element/hasClass","alias":"hasClass"},"p5.Element.height":{"relativeUrl":"/reference/p5.Element/height","alias":"height"},"p5.Element.hide()":{"relativeUrl":"/reference/p5.Element/hide","alias":"hide"},"p5.Element.html()":{"relativeUrl":"/reference/p5.Element/html","alias":"html"},"p5.Element.id()":{"relativeUrl":"/reference/p5.Element/id","alias":"id"},"p5.Element.mouseClicked()":{"relativeUrl":"/reference/p5.Element/mouseClicked","alias":"mouseClicked"},"p5.Element.mouseMoved()":{"relativeUrl":"/reference/p5.Element/mouseMoved","alias":"mouseMoved"},"p5.Element.mouseOut()":{"relativeUrl":"/reference/p5.Element/mouseOut","alias":"mouseOut"},"p5.Element.mouseOver()":{"relativeUrl":"/reference/p5.Element/mouseOver","alias":"mouseOver"},"p5.Element.mousePressed()":{"relativeUrl":"/reference/p5.Element/mousePressed","alias":"mousePressed"},"p5.Element.mouseReleased()":{"relativeUrl":"/reference/p5.Element/mouseReleased","alias":"mouseReleased"},"p5.Element.mouseWheel()":{"relativeUrl":"/reference/p5.Element/mouseWheel","alias":"mouseWheel"},"p5.Element.parent()":{"relativeUrl":"/reference/p5.Element/parent","alias":"parent"},"p5.Element.position()":{"relativeUrl":"/reference/p5.Element/position","alias":"position"},"p5.Element.remove()":{"relativeUrl":"/reference/p5.Element/remove","alias":"remove"},"p5.Element.removeAttribute()":{"relativeUrl":"/reference/p5.Element/removeAttribute","alias":"removeAttribute"},"p5.Element.removeClass()":{"relativeUrl":"/reference/p5.Element/removeClass","alias":"removeClass"},"p5.Element.show()":{"relativeUrl":"/reference/p5.Element/show","alias":"show"},"p5.Element.size()":{"relativeUrl":"/reference/p5.Element/size","alias":"size"},"p5.Element.style()":{"relativeUrl":"/reference/p5.Element/style","alias":"style"},"p5.Element.toggleClass()":{"relativeUrl":"/reference/p5.Element/toggleClass","alias":"toggleClass"},"p5.Element.touchEnded()":{"relativeUrl":"/reference/p5.Element/touchEnded","alias":"touchEnded"},"p5.Element.touchMoved()":{"relativeUrl":"/reference/p5.Element/touchMoved","alias":"touchMoved"},"p5.Element.touchStarted()":{"relativeUrl":"/reference/p5.Element/touchStarted","alias":"touchStarted"},"p5.Element.value()":{"relativeUrl":"/reference/p5.Element/value","alias":"value"},"p5.Element.width":{"relativeUrl":"/reference/p5.Element/width","alias":"width"},"p5.Envelope.add()":{"relativeUrl":"/reference/p5.Envelope/add","alias":"add"},"p5.Envelope.attackLevel":{"relativeUrl":"/reference/p5.Envelope/attackLevel","alias":"attackLevel"},"p5.Envelope.attackTime":{"relativeUrl":"/reference/p5.Envelope/attackTime","alias":"attackTime"},"p5.Envelope.decayLevel":{"relativeUrl":"/reference/p5.Envelope/decayLevel","alias":"decayLevel"},"p5.Envelope.decayTime":{"relativeUrl":"/reference/p5.Envelope/decayTime","alias":"decayTime"},"p5.Envelope.mult()":{"relativeUrl":"/reference/p5.Envelope/mult","alias":"mult"},"p5.Envelope.play()":{"relativeUrl":"/reference/p5.Envelope/play","alias":"play"},"p5.Envelope.ramp()":{"relativeUrl":"/reference/p5.Envelope/ramp","alias":"ramp"},"p5.Envelope.releaseLevel":{"relativeUrl":"/reference/p5.Envelope/releaseLevel","alias":"releaseLevel"},"p5.Envelope.releaseTime":{"relativeUrl":"/reference/p5.Envelope/releaseTime","alias":"releaseTime"},"p5.Envelope.scale()":{"relativeUrl":"/reference/p5.Envelope/scale","alias":"scale"},"p5.Envelope.set()":{"relativeUrl":"/reference/p5.Envelope/set","alias":"set"},"p5.Envelope.setADSR()":{"relativeUrl":"/reference/p5.Envelope/setADSR","alias":"setADSR"},"p5.Envelope.setExp()":{"relativeUrl":"/reference/p5.Envelope/setExp","alias":"setExp"},"p5.Envelope.setInput()":{"relativeUrl":"/reference/p5.Envelope/setInput","alias":"setInput"},"p5.Envelope.setRange()":{"relativeUrl":"/reference/p5.Envelope/setRange","alias":"setRange"},"p5.Envelope.triggerAttack()":{"relativeUrl":"/reference/p5.Envelope/triggerAttack","alias":"triggerAttack"},"p5.Envelope.triggerRelease()":{"relativeUrl":"/reference/p5.Envelope/triggerRelease","alias":"triggerRelease"},"p5.FFT.analyze()":{"relativeUrl":"/reference/p5.FFT/analyze","alias":"analyze"},"p5.FFT.getCentroid()":{"relativeUrl":"/reference/p5.FFT/getCentroid","alias":"getCentroid"},"p5.FFT.getEnergy()":{"relativeUrl":"/reference/p5.FFT/getEnergy","alias":"getEnergy"},"p5.FFT.getOctaveBands()":{"relativeUrl":"/reference/p5.FFT/getOctaveBands","alias":"getOctaveBands"},"p5.FFT.linAverages()":{"relativeUrl":"/reference/p5.FFT/linAverages","alias":"linAverages"},"p5.FFT.logAverages()":{"relativeUrl":"/reference/p5.FFT/logAverages","alias":"logAverages"},"p5.FFT.setInput()":{"relativeUrl":"/reference/p5.FFT/setInput","alias":"setInput"},"p5.FFT.smooth()":{"relativeUrl":"/reference/p5.FFT/smooth","alias":"smooth"},"p5.FFT.waveform()":{"relativeUrl":"/reference/p5.FFT/waveform","alias":"waveform"},"p5.File.data":{"relativeUrl":"/reference/p5.File/data","alias":"data"},"p5.File.file":{"relativeUrl":"/reference/p5.File/file","alias":"file"},"p5.File.name":{"relativeUrl":"/reference/p5.File/name","alias":"name"},"p5.File.size":{"relativeUrl":"/reference/p5.File/size","alias":"size"},"p5.File.subtype":{"relativeUrl":"/reference/p5.File/subtype","alias":"subtype"},"p5.File.type":{"relativeUrl":"/reference/p5.File/type","alias":"type"},"p5.Filter.biquadFilter":{"relativeUrl":"/reference/p5.Filter/biquadFilter","alias":"biquadFilter"},"p5.Filter.freq()":{"relativeUrl":"/reference/p5.Filter/freq","alias":"freq"},"p5.Filter.gain()":{"relativeUrl":"/reference/p5.Filter/gain","alias":"gain"},"p5.Filter.process()":{"relativeUrl":"/reference/p5.Filter/process","alias":"process"},"p5.Filter.res()":{"relativeUrl":"/reference/p5.Filter/res","alias":"res"},"p5.Filter.set()":{"relativeUrl":"/reference/p5.Filter/set","alias":"set"},"p5.Filter.setType()":{"relativeUrl":"/reference/p5.Filter/setType","alias":"setType"},"p5.Filter.toggle()":{"relativeUrl":"/reference/p5.Filter/toggle","alias":"toggle"},"p5.Font.font":{"relativeUrl":"/reference/p5.Font/font","alias":"font"},"p5.Font.textBounds()":{"relativeUrl":"/reference/p5.Font/textBounds","alias":"textBounds"},"p5.Font.textToPoints()":{"relativeUrl":"/reference/p5.Font/textToPoints","alias":"textToPoints"},"p5.Framebuffer.autoSized()":{"relativeUrl":"/reference/p5.Framebuffer/autoSized","alias":"autoSized"},"p5.Framebuffer.begin()":{"relativeUrl":"/reference/p5.Framebuffer/begin","alias":"begin"},"p5.Framebuffer.color":{"relativeUrl":"/reference/p5.Framebuffer/color","alias":"color"},"p5.Framebuffer.createCamera()":{"relativeUrl":"/reference/p5.Framebuffer/createCamera","alias":"createCamera"},"p5.Framebuffer.depth":{"relativeUrl":"/reference/p5.Framebuffer/depth","alias":"depth"},"p5.Framebuffer.draw()":{"relativeUrl":"/reference/p5.Framebuffer/draw","alias":"draw"},"p5.Framebuffer.end()":{"relativeUrl":"/reference/p5.Framebuffer/end","alias":"end"},"p5.Framebuffer.get()":{"relativeUrl":"/reference/p5.Framebuffer/get","alias":"get"},"p5.Framebuffer.loadPixels()":{"relativeUrl":"/reference/p5.Framebuffer/loadPixels","alias":"loadPixels"},"p5.Framebuffer.pixelDensity()":{"relativeUrl":"/reference/p5.Framebuffer/pixelDensity","alias":"pixelDensity"},"p5.Framebuffer.pixels":{"relativeUrl":"/reference/p5.Framebuffer/pixels","alias":"pixels"},"p5.Framebuffer.remove()":{"relativeUrl":"/reference/p5.Framebuffer/remove","alias":"remove"},"p5.Framebuffer.resize()":{"relativeUrl":"/reference/p5.Framebuffer/resize","alias":"resize"},"p5.Framebuffer.updatePixels()":{"relativeUrl":"/reference/p5.Framebuffer/updatePixels","alias":"updatePixels"},"p5.Gain.amp()":{"relativeUrl":"/reference/p5.Gain/amp","alias":"amp"},"p5.Gain.connect()":{"relativeUrl":"/reference/p5.Gain/connect","alias":"connect"},"p5.Gain.disconnect()":{"relativeUrl":"/reference/p5.Gain/disconnect","alias":"disconnect"},"p5.Gain.setInput()":{"relativeUrl":"/reference/p5.Gain/setInput","alias":"setInput"},"p5.Geometry.calculateBoundingBox()":{"relativeUrl":"/reference/p5.Geometry/calculateBoundingBox","alias":"calculateBoundingBox"},"p5.Geometry.clearColors()":{"relativeUrl":"/reference/p5.Geometry/clearColors","alias":"clearColors"},"p5.Geometry.computeFaces()":{"relativeUrl":"/reference/p5.Geometry/computeFaces","alias":"computeFaces"},"p5.Geometry.computeNormals()":{"relativeUrl":"/reference/p5.Geometry/computeNormals","alias":"computeNormals"},"p5.Geometry.faces":{"relativeUrl":"/reference/p5.Geometry/faces","alias":"faces"},"p5.Geometry.flipU()":{"relativeUrl":"/reference/p5.Geometry/flipU","alias":"flipU"},"p5.Geometry.flipV()":{"relativeUrl":"/reference/p5.Geometry/flipV","alias":"flipV"},"p5.Geometry.normalize()":{"relativeUrl":"/reference/p5.Geometry/normalize","alias":"normalize"},"p5.Geometry.saveObj()":{"relativeUrl":"/reference/p5.Geometry/saveObj","alias":"saveObj"},"p5.Geometry.saveStl()":{"relativeUrl":"/reference/p5.Geometry/saveStl","alias":"saveStl"},"p5.Geometry.uvs":{"relativeUrl":"/reference/p5.Geometry/uvs","alias":"uvs"},"p5.Geometry.vertexNormals":{"relativeUrl":"/reference/p5.Geometry/vertexNormals","alias":"vertexNormals"},"p5.Geometry.vertices":{"relativeUrl":"/reference/p5.Geometry/vertices","alias":"vertices"},"p5.Graphics.createFramebuffer()":{"relativeUrl":"/reference/p5.Graphics/createFramebuffer","alias":"createFramebuffer"},"p5.Graphics.remove()":{"relativeUrl":"/reference/p5.Graphics/remove","alias":"remove"},"p5.Graphics.reset()":{"relativeUrl":"/reference/p5.Graphics/reset","alias":"reset"},"p5.Image.blend()":{"relativeUrl":"/reference/p5.Image/blend","alias":"blend"},"p5.Image.copy()":{"relativeUrl":"/reference/p5.Image/copy","alias":"copy"},"p5.Image.delay()":{"relativeUrl":"/reference/p5.Image/delay","alias":"delay"},"p5.Image.filter()":{"relativeUrl":"/reference/p5.Image/filter","alias":"filter"},"p5.Image.get()":{"relativeUrl":"/reference/p5.Image/get","alias":"get"},"p5.Image.getCurrentFrame()":{"relativeUrl":"/reference/p5.Image/getCurrentFrame","alias":"getCurrentFrame"},"p5.Image.height":{"relativeUrl":"/reference/p5.Image/height","alias":"height"},"p5.Image.loadPixels()":{"relativeUrl":"/reference/p5.Image/loadPixels","alias":"loadPixels"},"p5.Image.mask()":{"relativeUrl":"/reference/p5.Image/mask","alias":"mask"},"p5.Image.numFrames()":{"relativeUrl":"/reference/p5.Image/numFrames","alias":"numFrames"},"p5.Image.pause()":{"relativeUrl":"/reference/p5.Image/pause","alias":"pause"},"p5.Image.pixelDensity()":{"relativeUrl":"/reference/p5.Image/pixelDensity","alias":"pixelDensity"},"p5.Image.pixels":{"relativeUrl":"/reference/p5.Image/pixels","alias":"pixels"},"p5.Image.play()":{"relativeUrl":"/reference/p5.Image/play","alias":"play"},"p5.Image.reset()":{"relativeUrl":"/reference/p5.Image/reset","alias":"reset"},"p5.Image.resize()":{"relativeUrl":"/reference/p5.Image/resize","alias":"resize"},"p5.Image.save()":{"relativeUrl":"/reference/p5.Image/save","alias":"save"},"p5.Image.set()":{"relativeUrl":"/reference/p5.Image/set","alias":"set"},"p5.Image.setFrame()":{"relativeUrl":"/reference/p5.Image/setFrame","alias":"setFrame"},"p5.Image.updatePixels()":{"relativeUrl":"/reference/p5.Image/updatePixels","alias":"updatePixels"},"p5.Image.width":{"relativeUrl":"/reference/p5.Image/width","alias":"width"},"p5.MediaElement.addCue()":{"relativeUrl":"/reference/p5.MediaElement/addCue","alias":"addCue"},"p5.MediaElement.autoplay()":{"relativeUrl":"/reference/p5.MediaElement/autoplay","alias":"autoplay"},"p5.MediaElement.clearCues()":{"relativeUrl":"/reference/p5.MediaElement/clearCues","alias":"clearCues"},"p5.MediaElement.connect()":{"relativeUrl":"/reference/p5.MediaElement/connect","alias":"connect"},"p5.MediaElement.disconnect()":{"relativeUrl":"/reference/p5.MediaElement/disconnect","alias":"disconnect"},"p5.MediaElement.duration()":{"relativeUrl":"/reference/p5.MediaElement/duration","alias":"duration"},"p5.MediaElement.hideControls()":{"relativeUrl":"/reference/p5.MediaElement/hideControls","alias":"hideControls"},"p5.MediaElement.loop()":{"relativeUrl":"/reference/p5.MediaElement/loop","alias":"loop"},"p5.MediaElement.noLoop()":{"relativeUrl":"/reference/p5.MediaElement/noLoop","alias":"noLoop"},"p5.MediaElement.onended()":{"relativeUrl":"/reference/p5.MediaElement/onended","alias":"onended"},"p5.MediaElement.pause()":{"relativeUrl":"/reference/p5.MediaElement/pause","alias":"pause"},"p5.MediaElement.play()":{"relativeUrl":"/reference/p5.MediaElement/play","alias":"play"},"p5.MediaElement.removeCue()":{"relativeUrl":"/reference/p5.MediaElement/removeCue","alias":"removeCue"},"p5.MediaElement.showControls()":{"relativeUrl":"/reference/p5.MediaElement/showControls","alias":"showControls"},"p5.MediaElement.speed()":{"relativeUrl":"/reference/p5.MediaElement/speed","alias":"speed"},"p5.MediaElement.src":{"relativeUrl":"/reference/p5.MediaElement/src","alias":"src"},"p5.MediaElement.stop()":{"relativeUrl":"/reference/p5.MediaElement/stop","alias":"stop"},"p5.MediaElement.time()":{"relativeUrl":"/reference/p5.MediaElement/time","alias":"time"},"p5.MediaElement.volume()":{"relativeUrl":"/reference/p5.MediaElement/volume","alias":"volume"},"p5.MonoSynth.amp()":{"relativeUrl":"/reference/p5.MonoSynth/amp","alias":"amp"},"p5.MonoSynth.attack":{"relativeUrl":"/reference/p5.MonoSynth/attack","alias":"attack"},"p5.MonoSynth.connect()":{"relativeUrl":"/reference/p5.MonoSynth/connect","alias":"connect"},"p5.MonoSynth.disconnect()":{"relativeUrl":"/reference/p5.MonoSynth/disconnect","alias":"disconnect"},"p5.MonoSynth.dispose()":{"relativeUrl":"/reference/p5.MonoSynth/dispose","alias":"dispose"},"p5.MonoSynth.play()":{"relativeUrl":"/reference/p5.MonoSynth/play","alias":"play"},"p5.MonoSynth.setADSR()":{"relativeUrl":"/reference/p5.MonoSynth/setADSR","alias":"setADSR"},"p5.MonoSynth.triggerAttack()":{"relativeUrl":"/reference/p5.MonoSynth/triggerAttack","alias":"triggerAttack"},"p5.MonoSynth.triggerRelease()":{"relativeUrl":"/reference/p5.MonoSynth/triggerRelease","alias":"triggerRelease"},"p5.Noise.setType()":{"relativeUrl":"/reference/p5.Noise/setType","alias":"setType"},"p5.NumberDict.add()":{"relativeUrl":"/reference/p5.NumberDict/add","alias":"add"},"p5.NumberDict.div()":{"relativeUrl":"/reference/p5.NumberDict/div","alias":"div"},"p5.NumberDict.maxKey()":{"relativeUrl":"/reference/p5.NumberDict/maxKey","alias":"maxKey"},"p5.NumberDict.maxValue()":{"relativeUrl":"/reference/p5.NumberDict/maxValue","alias":"maxValue"},"p5.NumberDict.minKey()":{"relativeUrl":"/reference/p5.NumberDict/minKey","alias":"minKey"},"p5.NumberDict.minValue()":{"relativeUrl":"/reference/p5.NumberDict/minValue","alias":"minValue"},"p5.NumberDict.mult()":{"relativeUrl":"/reference/p5.NumberDict/mult","alias":"mult"},"p5.NumberDict.sub()":{"relativeUrl":"/reference/p5.NumberDict/sub","alias":"sub"},"p5.Oscillator.add()":{"relativeUrl":"/reference/p5.Oscillator/add","alias":"add"},"p5.Oscillator.amp()":{"relativeUrl":"/reference/p5.Oscillator/amp","alias":"amp"},"p5.Oscillator.connect()":{"relativeUrl":"/reference/p5.Oscillator/connect","alias":"connect"},"p5.Oscillator.disconnect()":{"relativeUrl":"/reference/p5.Oscillator/disconnect","alias":"disconnect"},"p5.Oscillator.freq()":{"relativeUrl":"/reference/p5.Oscillator/freq","alias":"freq"},"p5.Oscillator.getAmp()":{"relativeUrl":"/reference/p5.Oscillator/getAmp","alias":"getAmp"},"p5.Oscillator.getFreq()":{"relativeUrl":"/reference/p5.Oscillator/getFreq","alias":"getFreq"},"p5.Oscillator.getPan()":{"relativeUrl":"/reference/p5.Oscillator/getPan","alias":"getPan"},"p5.Oscillator.getType()":{"relativeUrl":"/reference/p5.Oscillator/getType","alias":"getType"},"p5.Oscillator.mult()":{"relativeUrl":"/reference/p5.Oscillator/mult","alias":"mult"},"p5.Oscillator.pan()":{"relativeUrl":"/reference/p5.Oscillator/pan","alias":"pan"},"p5.Oscillator.phase()":{"relativeUrl":"/reference/p5.Oscillator/phase","alias":"phase"},"p5.Oscillator.scale()":{"relativeUrl":"/reference/p5.Oscillator/scale","alias":"scale"},"p5.Oscillator.setType()":{"relativeUrl":"/reference/p5.Oscillator/setType","alias":"setType"},"p5.Oscillator.start()":{"relativeUrl":"/reference/p5.Oscillator/start","alias":"start"},"p5.Oscillator.stop()":{"relativeUrl":"/reference/p5.Oscillator/stop","alias":"stop"},"p5.Panner3D.maxDist()":{"relativeUrl":"/reference/p5.Panner3D/maxDist","alias":"maxDist"},"p5.Panner3D.orient()":{"relativeUrl":"/reference/p5.Panner3D/orient","alias":"orient"},"p5.Panner3D.orientX()":{"relativeUrl":"/reference/p5.Panner3D/orientX","alias":"orientX"},"p5.Panner3D.orientY()":{"relativeUrl":"/reference/p5.Panner3D/orientY","alias":"orientY"},"p5.Panner3D.orientZ()":{"relativeUrl":"/reference/p5.Panner3D/orientZ","alias":"orientZ"},"p5.Panner3D.panner":{"relativeUrl":"/reference/p5.Panner3D/panner","alias":"panner"},"p5.Panner3D.positionX()":{"relativeUrl":"/reference/p5.Panner3D/positionX","alias":"positionX"},"p5.Panner3D.positionY()":{"relativeUrl":"/reference/p5.Panner3D/positionY","alias":"positionY"},"p5.Panner3D.positionZ()":{"relativeUrl":"/reference/p5.Panner3D/positionZ","alias":"positionZ"},"p5.Panner3D.process()":{"relativeUrl":"/reference/p5.Panner3D/process","alias":"process"},"p5.Panner3D.rollof()":{"relativeUrl":"/reference/p5.Panner3D/rollof","alias":"rollof"},"p5.Panner3D.set()":{"relativeUrl":"/reference/p5.Panner3D/set","alias":"set"},"p5.Panner3D.setFalloff()":{"relativeUrl":"/reference/p5.Panner3D/setFalloff","alias":"setFalloff"},"p5.Part.addPhrase()":{"relativeUrl":"/reference/p5.Part/addPhrase","alias":"addPhrase"},"p5.Part.getBPM()":{"relativeUrl":"/reference/p5.Part/getBPM","alias":"getBPM"},"p5.Part.getPhrase()":{"relativeUrl":"/reference/p5.Part/getPhrase","alias":"getPhrase"},"p5.Part.loop()":{"relativeUrl":"/reference/p5.Part/loop","alias":"loop"},"p5.Part.noLoop()":{"relativeUrl":"/reference/p5.Part/noLoop","alias":"noLoop"},"p5.Part.onStep()":{"relativeUrl":"/reference/p5.Part/onStep","alias":"onStep"},"p5.Part.pause()":{"relativeUrl":"/reference/p5.Part/pause","alias":"pause"},"p5.Part.removePhrase()":{"relativeUrl":"/reference/p5.Part/removePhrase","alias":"removePhrase"},"p5.Part.replaceSequence()":{"relativeUrl":"/reference/p5.Part/replaceSequence","alias":"replaceSequence"},"p5.Part.setBPM()":{"relativeUrl":"/reference/p5.Part/setBPM","alias":"setBPM"},"p5.Part.start()":{"relativeUrl":"/reference/p5.Part/start","alias":"start"},"p5.Part.stop()":{"relativeUrl":"/reference/p5.Part/stop","alias":"stop"},"isDetected":{"relativeUrl":"/reference/p5.PeakDetect/isDetected"},"p5.PeakDetect.onPeak()":{"relativeUrl":"/reference/p5.PeakDetect/onPeak","alias":"onPeak"},"p5.PeakDetect.update()":{"relativeUrl":"/reference/p5.PeakDetect/update","alias":"update"},"p5.Phrase.sequence":{"relativeUrl":"/reference/p5.Phrase/sequence","alias":"sequence"},"p5.PolySynth.AudioVoice":{"relativeUrl":"/reference/p5.PolySynth/AudioVoice","alias":"AudioVoice"},"p5.PolySynth.connect()":{"relativeUrl":"/reference/p5.PolySynth/connect","alias":"connect"},"p5.PolySynth.disconnect()":{"relativeUrl":"/reference/p5.PolySynth/disconnect","alias":"disconnect"},"p5.PolySynth.dispose()":{"relativeUrl":"/reference/p5.PolySynth/dispose","alias":"dispose"},"p5.PolySynth.noteADSR()":{"relativeUrl":"/reference/p5.PolySynth/noteADSR","alias":"noteADSR"},"p5.PolySynth.noteAttack()":{"relativeUrl":"/reference/p5.PolySynth/noteAttack","alias":"noteAttack"},"p5.PolySynth.noteRelease()":{"relativeUrl":"/reference/p5.PolySynth/noteRelease","alias":"noteRelease"},"p5.PolySynth.notes":{"relativeUrl":"/reference/p5.PolySynth/notes","alias":"notes"},"p5.PolySynth.play()":{"relativeUrl":"/reference/p5.PolySynth/play","alias":"play"},"p5.PolySynth.polyvalue":{"relativeUrl":"/reference/p5.PolySynth/polyvalue","alias":"polyvalue"},"p5.PolySynth.setADSR()":{"relativeUrl":"/reference/p5.PolySynth/setADSR","alias":"setADSR"},"p5.PrintWriter.clear()":{"relativeUrl":"/reference/p5.PrintWriter/clear","alias":"clear"},"p5.PrintWriter.close()":{"relativeUrl":"/reference/p5.PrintWriter/close","alias":"close"},"p5.PrintWriter.print()":{"relativeUrl":"/reference/p5.PrintWriter/print","alias":"print"},"p5.PrintWriter.write()":{"relativeUrl":"/reference/p5.PrintWriter/write","alias":"write"},"p5.Pulse.width()":{"relativeUrl":"/reference/p5.Pulse/width","alias":"width"},"p5.Reverb.amp()":{"relativeUrl":"/reference/p5.Reverb/amp","alias":"amp"},"p5.Reverb.connect()":{"relativeUrl":"/reference/p5.Reverb/connect","alias":"connect"},"p5.Reverb.disconnect()":{"relativeUrl":"/reference/p5.Reverb/disconnect","alias":"disconnect"},"p5.Reverb.process()":{"relativeUrl":"/reference/p5.Reverb/process","alias":"process"},"p5.Reverb.set()":{"relativeUrl":"/reference/p5.Reverb/set","alias":"set"},"p5.Score.loop()":{"relativeUrl":"/reference/p5.Score/loop","alias":"loop"},"p5.Score.noLoop()":{"relativeUrl":"/reference/p5.Score/noLoop","alias":"noLoop"},"p5.Score.pause()":{"relativeUrl":"/reference/p5.Score/pause","alias":"pause"},"p5.Score.setBPM()":{"relativeUrl":"/reference/p5.Score/setBPM","alias":"setBPM"},"p5.Score.start()":{"relativeUrl":"/reference/p5.Score/start","alias":"start"},"p5.Score.stop()":{"relativeUrl":"/reference/p5.Score/stop","alias":"stop"},"p5.Shader.copyToContext()":{"relativeUrl":"/reference/p5.Shader/copyToContext","alias":"copyToContext"},"p5.Shader.inspectHooks()":{"relativeUrl":"/reference/p5.Shader/inspectHooks","alias":"inspectHooks"},"p5.Shader.modify()":{"relativeUrl":"/reference/p5.Shader/modify","alias":"modify"},"p5.Shader.setUniform()":{"relativeUrl":"/reference/p5.Shader/setUniform","alias":"setUniform"},"p5.SoundFile.addCue()":{"relativeUrl":"/reference/p5.SoundFile/addCue","alias":"addCue"},"p5.SoundFile.channels()":{"relativeUrl":"/reference/p5.SoundFile/channels","alias":"channels"},"p5.SoundFile.clearCues()":{"relativeUrl":"/reference/p5.SoundFile/clearCues","alias":"clearCues"},"p5.SoundFile.connect()":{"relativeUrl":"/reference/p5.SoundFile/connect","alias":"connect"},"p5.SoundFile.currentTime()":{"relativeUrl":"/reference/p5.SoundFile/currentTime","alias":"currentTime"},"p5.SoundFile.disconnect()":{"relativeUrl":"/reference/p5.SoundFile/disconnect","alias":"disconnect"},"p5.SoundFile.duration()":{"relativeUrl":"/reference/p5.SoundFile/duration","alias":"duration"},"p5.SoundFile.frames()":{"relativeUrl":"/reference/p5.SoundFile/frames","alias":"frames"},"p5.SoundFile.getBlob()":{"relativeUrl":"/reference/p5.SoundFile/getBlob","alias":"getBlob"},"p5.SoundFile.getPan()":{"relativeUrl":"/reference/p5.SoundFile/getPan","alias":"getPan"},"p5.SoundFile.getPeaks()":{"relativeUrl":"/reference/p5.SoundFile/getPeaks","alias":"getPeaks"},"p5.SoundFile.isLoaded()":{"relativeUrl":"/reference/p5.SoundFile/isLoaded","alias":"isLoaded"},"p5.SoundFile.isLooping()":{"relativeUrl":"/reference/p5.SoundFile/isLooping","alias":"isLooping"},"p5.SoundFile.isPaused()":{"relativeUrl":"/reference/p5.SoundFile/isPaused","alias":"isPaused"},"p5.SoundFile.isPlaying()":{"relativeUrl":"/reference/p5.SoundFile/isPlaying","alias":"isPlaying"},"p5.SoundFile.jump()":{"relativeUrl":"/reference/p5.SoundFile/jump","alias":"jump"},"p5.SoundFile.loop()":{"relativeUrl":"/reference/p5.SoundFile/loop","alias":"loop"},"p5.SoundFile.onended()":{"relativeUrl":"/reference/p5.SoundFile/onended","alias":"onended"},"p5.SoundFile.pan()":{"relativeUrl":"/reference/p5.SoundFile/pan","alias":"pan"},"p5.SoundFile.pause()":{"relativeUrl":"/reference/p5.SoundFile/pause","alias":"pause"},"p5.SoundFile.play()":{"relativeUrl":"/reference/p5.SoundFile/play","alias":"play"},"p5.SoundFile.playMode()":{"relativeUrl":"/reference/p5.SoundFile/playMode","alias":"playMode"},"p5.SoundFile.rate()":{"relativeUrl":"/reference/p5.SoundFile/rate","alias":"rate"},"p5.SoundFile.removeCue()":{"relativeUrl":"/reference/p5.SoundFile/removeCue","alias":"removeCue"},"p5.SoundFile.reverseBuffer()":{"relativeUrl":"/reference/p5.SoundFile/reverseBuffer","alias":"reverseBuffer"},"p5.SoundFile.sampleRate()":{"relativeUrl":"/reference/p5.SoundFile/sampleRate","alias":"sampleRate"},"p5.SoundFile.save()":{"relativeUrl":"/reference/p5.SoundFile/save","alias":"save"},"p5.SoundFile.setBuffer()":{"relativeUrl":"/reference/p5.SoundFile/setBuffer","alias":"setBuffer"},"p5.SoundFile.setLoop()":{"relativeUrl":"/reference/p5.SoundFile/setLoop","alias":"setLoop"},"p5.SoundFile.setPath()":{"relativeUrl":"/reference/p5.SoundFile/setPath","alias":"setPath"},"p5.SoundFile.setVolume()":{"relativeUrl":"/reference/p5.SoundFile/setVolume","alias":"setVolume"},"p5.SoundFile.stop()":{"relativeUrl":"/reference/p5.SoundFile/stop","alias":"stop"},"p5.SoundLoop.bpm":{"relativeUrl":"/reference/p5.SoundLoop/bpm","alias":"bpm"},"p5.SoundLoop.interval":{"relativeUrl":"/reference/p5.SoundLoop/interval","alias":"interval"},"p5.SoundLoop.iterations":{"relativeUrl":"/reference/p5.SoundLoop/iterations","alias":"iterations"},"p5.SoundLoop.maxIterations":{"relativeUrl":"/reference/p5.SoundLoop/maxIterations","alias":"maxIterations"},"p5.SoundLoop.musicalTimeMode":{"relativeUrl":"/reference/p5.SoundLoop/musicalTimeMode","alias":"musicalTimeMode"},"p5.SoundLoop.pause()":{"relativeUrl":"/reference/p5.SoundLoop/pause","alias":"pause"},"p5.SoundLoop.start()":{"relativeUrl":"/reference/p5.SoundLoop/start","alias":"start"},"p5.SoundLoop.stop()":{"relativeUrl":"/reference/p5.SoundLoop/stop","alias":"stop"},"p5.SoundLoop.syncedStart()":{"relativeUrl":"/reference/p5.SoundLoop/syncedStart","alias":"syncedStart"},"p5.SoundLoop.timeSignature":{"relativeUrl":"/reference/p5.SoundLoop/timeSignature","alias":"timeSignature"},"p5.SoundRecorder.record()":{"relativeUrl":"/reference/p5.SoundRecorder/record","alias":"record"},"p5.SoundRecorder.setInput()":{"relativeUrl":"/reference/p5.SoundRecorder/setInput","alias":"setInput"},"p5.SoundRecorder.stop()":{"relativeUrl":"/reference/p5.SoundRecorder/stop","alias":"stop"},"p5.Table.addColumn()":{"relativeUrl":"/reference/p5.Table/addColumn","alias":"addColumn"},"p5.Table.addRow()":{"relativeUrl":"/reference/p5.Table/addRow","alias":"addRow"},"p5.Table.clearRows()":{"relativeUrl":"/reference/p5.Table/clearRows","alias":"clearRows"},"p5.Table.columns":{"relativeUrl":"/reference/p5.Table/columns","alias":"columns"},"p5.Table.findRow()":{"relativeUrl":"/reference/p5.Table/findRow","alias":"findRow"},"p5.Table.findRows()":{"relativeUrl":"/reference/p5.Table/findRows","alias":"findRows"},"p5.Table.get()":{"relativeUrl":"/reference/p5.Table/get","alias":"get"},"p5.Table.getArray()":{"relativeUrl":"/reference/p5.Table/getArray","alias":"getArray"},"p5.Table.getColumn()":{"relativeUrl":"/reference/p5.Table/getColumn","alias":"getColumn"},"p5.Table.getColumnCount()":{"relativeUrl":"/reference/p5.Table/getColumnCount","alias":"getColumnCount"},"p5.Table.getNum()":{"relativeUrl":"/reference/p5.Table/getNum","alias":"getNum"},"p5.Table.getObject()":{"relativeUrl":"/reference/p5.Table/getObject","alias":"getObject"},"p5.Table.getRow()":{"relativeUrl":"/reference/p5.Table/getRow","alias":"getRow"},"p5.Table.getRowCount()":{"relativeUrl":"/reference/p5.Table/getRowCount","alias":"getRowCount"},"p5.Table.getRows()":{"relativeUrl":"/reference/p5.Table/getRows","alias":"getRows"},"p5.Table.getString()":{"relativeUrl":"/reference/p5.Table/getString","alias":"getString"},"p5.Table.matchRow()":{"relativeUrl":"/reference/p5.Table/matchRow","alias":"matchRow"},"p5.Table.matchRows()":{"relativeUrl":"/reference/p5.Table/matchRows","alias":"matchRows"},"p5.Table.removeColumn()":{"relativeUrl":"/reference/p5.Table/removeColumn","alias":"removeColumn"},"p5.Table.removeRow()":{"relativeUrl":"/reference/p5.Table/removeRow","alias":"removeRow"},"p5.Table.removeTokens()":{"relativeUrl":"/reference/p5.Table/removeTokens","alias":"removeTokens"},"p5.Table.rows":{"relativeUrl":"/reference/p5.Table/rows","alias":"rows"},"p5.Table.set()":{"relativeUrl":"/reference/p5.Table/set","alias":"set"},"p5.Table.setNum()":{"relativeUrl":"/reference/p5.Table/setNum","alias":"setNum"},"p5.Table.setString()":{"relativeUrl":"/reference/p5.Table/setString","alias":"setString"},"p5.Table.trim()":{"relativeUrl":"/reference/p5.Table/trim","alias":"trim"},"p5.TableRow.get()":{"relativeUrl":"/reference/p5.TableRow/get","alias":"get"},"p5.TableRow.getNum()":{"relativeUrl":"/reference/p5.TableRow/getNum","alias":"getNum"},"p5.TableRow.getString()":{"relativeUrl":"/reference/p5.TableRow/getString","alias":"getString"},"p5.TableRow.set()":{"relativeUrl":"/reference/p5.TableRow/set","alias":"set"},"p5.TableRow.setNum()":{"relativeUrl":"/reference/p5.TableRow/setNum","alias":"setNum"},"p5.TableRow.setString()":{"relativeUrl":"/reference/p5.TableRow/setString","alias":"setString"},"p5.TypedDict.clear()":{"relativeUrl":"/reference/p5.TypedDict/clear","alias":"clear"},"p5.TypedDict.create()":{"relativeUrl":"/reference/p5.TypedDict/create","alias":"create"},"p5.TypedDict.get()":{"relativeUrl":"/reference/p5.TypedDict/get","alias":"get"},"p5.TypedDict.hasKey()":{"relativeUrl":"/reference/p5.TypedDict/hasKey","alias":"hasKey"},"p5.TypedDict.print()":{"relativeUrl":"/reference/p5.TypedDict/print","alias":"print"},"p5.TypedDict.remove()":{"relativeUrl":"/reference/p5.TypedDict/remove","alias":"remove"},"p5.TypedDict.saveJSON()":{"relativeUrl":"/reference/p5.TypedDict/saveJSON","alias":"saveJSON"},"p5.TypedDict.saveTable()":{"relativeUrl":"/reference/p5.TypedDict/saveTable","alias":"saveTable"},"p5.TypedDict.set()":{"relativeUrl":"/reference/p5.TypedDict/set","alias":"set"},"p5.TypedDict.size()":{"relativeUrl":"/reference/p5.TypedDict/size","alias":"size"},"p5.Vector.add()":{"relativeUrl":"/reference/p5.Vector/add","alias":"add"},"p5.Vector.angleBetween()":{"relativeUrl":"/reference/p5.Vector/angleBetween","alias":"angleBetween"},"p5.Vector.array()":{"relativeUrl":"/reference/p5.Vector/array","alias":"array"},"p5.Vector.clampToZero()":{"relativeUrl":"/reference/p5.Vector/clampToZero","alias":"clampToZero"},"p5.Vector.copy()":{"relativeUrl":"/reference/p5.Vector/copy","alias":"copy"},"p5.Vector.cross()":{"relativeUrl":"/reference/p5.Vector/cross","alias":"cross"},"p5.Vector.dist()":{"relativeUrl":"/reference/p5.Vector/dist","alias":"dist"},"p5.Vector.div()":{"relativeUrl":"/reference/p5.Vector/div","alias":"div"},"p5.Vector.dot()":{"relativeUrl":"/reference/p5.Vector/dot","alias":"dot"},"p5.Vector.equals()":{"relativeUrl":"/reference/p5.Vector/equals","alias":"equals"},"p5.Vector.fromAngle()":{"relativeUrl":"/reference/p5.Vector/fromAngle","alias":"fromAngle"},"p5.Vector.fromAngles()":{"relativeUrl":"/reference/p5.Vector/fromAngles","alias":"fromAngles"},"p5.Vector.heading()":{"relativeUrl":"/reference/p5.Vector/heading","alias":"heading"},"p5.Vector.lerp()":{"relativeUrl":"/reference/p5.Vector/lerp","alias":"lerp"},"p5.Vector.limit()":{"relativeUrl":"/reference/p5.Vector/limit","alias":"limit"},"p5.Vector.mag()":{"relativeUrl":"/reference/p5.Vector/mag","alias":"mag"},"p5.Vector.magSq()":{"relativeUrl":"/reference/p5.Vector/magSq","alias":"magSq"},"p5.Vector.mult()":{"relativeUrl":"/reference/p5.Vector/mult","alias":"mult"},"p5.Vector.normalize()":{"relativeUrl":"/reference/p5.Vector/normalize","alias":"normalize"},"p5.Vector.random2D()":{"relativeUrl":"/reference/p5.Vector/random2D","alias":"random2D"},"p5.Vector.random3D()":{"relativeUrl":"/reference/p5.Vector/random3D","alias":"random3D"},"p5.Vector.reflect()":{"relativeUrl":"/reference/p5.Vector/reflect","alias":"reflect"},"p5.Vector.rem()":{"relativeUrl":"/reference/p5.Vector/rem","alias":"rem"},"p5.Vector.rotate()":{"relativeUrl":"/reference/p5.Vector/rotate","alias":"rotate"},"p5.Vector.set()":{"relativeUrl":"/reference/p5.Vector/set","alias":"set"},"p5.Vector.setHeading()":{"relativeUrl":"/reference/p5.Vector/setHeading","alias":"setHeading"},"p5.Vector.setMag()":{"relativeUrl":"/reference/p5.Vector/setMag","alias":"setMag"},"p5.Vector.slerp()":{"relativeUrl":"/reference/p5.Vector/slerp","alias":"slerp"},"p5.Vector.sub()":{"relativeUrl":"/reference/p5.Vector/sub","alias":"sub"},"p5.Vector.toString()":{"relativeUrl":"/reference/p5.Vector/toString","alias":"toString"},"p5.Vector.x":{"relativeUrl":"/reference/p5.Vector/x","alias":"x"},"p5.Vector.y":{"relativeUrl":"/reference/p5.Vector/y","alias":"y"},"p5.Vector.z":{"relativeUrl":"/reference/p5.Vector/z","alias":"z"},"p5.XML.addChild()":{"relativeUrl":"/reference/p5.XML/addChild","alias":"addChild"},"p5.XML.getAttributeCount()":{"relativeUrl":"/reference/p5.XML/getAttributeCount","alias":"getAttributeCount"},"p5.XML.getChild()":{"relativeUrl":"/reference/p5.XML/getChild","alias":"getChild"},"p5.XML.getChildren()":{"relativeUrl":"/reference/p5.XML/getChildren","alias":"getChildren"},"p5.XML.getContent()":{"relativeUrl":"/reference/p5.XML/getContent","alias":"getContent"},"p5.XML.getName()":{"relativeUrl":"/reference/p5.XML/getName","alias":"getName"},"p5.XML.getNum()":{"relativeUrl":"/reference/p5.XML/getNum","alias":"getNum"},"p5.XML.getParent()":{"relativeUrl":"/reference/p5.XML/getParent","alias":"getParent"},"p5.XML.getString()":{"relativeUrl":"/reference/p5.XML/getString","alias":"getString"},"p5.XML.hasAttribute()":{"relativeUrl":"/reference/p5.XML/hasAttribute","alias":"hasAttribute"},"p5.XML.hasChildren()":{"relativeUrl":"/reference/p5.XML/hasChildren","alias":"hasChildren"},"p5.XML.listAttributes()":{"relativeUrl":"/reference/p5.XML/listAttributes","alias":"listAttributes"},"p5.XML.listChildren()":{"relativeUrl":"/reference/p5.XML/listChildren","alias":"listChildren"},"p5.XML.removeChild()":{"relativeUrl":"/reference/p5.XML/removeChild","alias":"removeChild"},"p5.XML.serialize()":{"relativeUrl":"/reference/p5.XML/serialize","alias":"serialize"},"p5.XML.setAttribute()":{"relativeUrl":"/reference/p5.XML/setAttribute","alias":"setAttribute"},"p5.XML.setContent()":{"relativeUrl":"/reference/p5.XML/setContent","alias":"setContent"},"p5.XML.setName()":{"relativeUrl":"/reference/p5.XML/setName","alias":"setName"},"p5.Amplitude":{"relativeUrl":"/reference/p5.sound/p5.Amplitude"},"p5.AudioIn":{"relativeUrl":"/reference/p5.sound/p5.AudioIn"},"p5.AudioVoice":{"relativeUrl":"/reference/p5.sound/p5.AudioVoice"},"p5.BandPass":{"relativeUrl":"/reference/p5.sound/p5.BandPass"},"p5.Compressor":{"relativeUrl":"/reference/p5.sound/p5.Compressor"},"p5.Convolver":{"relativeUrl":"/reference/p5.sound/p5.Convolver"},"p5.Delay":{"relativeUrl":"/reference/p5.sound/p5.Delay"},"p5.Distortion":{"relativeUrl":"/reference/p5.sound/p5.Distortion"},"p5.EQ":{"relativeUrl":"/reference/p5.sound/p5.EQ"},"p5.Effect":{"relativeUrl":"/reference/p5.sound/p5.Effect"},"p5.Envelope":{"relativeUrl":"/reference/p5.sound/p5.Envelope"},"p5.FFT":{"relativeUrl":"/reference/p5.sound/p5.FFT"},"p5.Filter":{"relativeUrl":"/reference/p5.sound/p5.Filter"},"p5.Gain":{"relativeUrl":"/reference/p5.sound/p5.Gain"},"p5.HighPass":{"relativeUrl":"/reference/p5.sound/p5.HighPass"},"p5.LowPass":{"relativeUrl":"/reference/p5.sound/p5.LowPass"},"p5.MonoSynth":{"relativeUrl":"/reference/p5.sound/p5.MonoSynth"},"p5.Noise":{"relativeUrl":"/reference/p5.sound/p5.Noise"},"p5.OnsetDetect":{"relativeUrl":"/reference/p5.sound/p5.OnsetDetect"},"p5.Oscillator":{"relativeUrl":"/reference/p5.sound/p5.Oscillator"},"p5.Panner3D":{"relativeUrl":"/reference/p5.sound/p5.Panner3D"},"p5.Part":{"relativeUrl":"/reference/p5.sound/p5.Part"},"p5.PeakDetect":{"relativeUrl":"/reference/p5.sound/p5.PeakDetect"},"p5.Phrase":{"relativeUrl":"/reference/p5.sound/p5.Phrase"},"p5.PolySynth":{"relativeUrl":"/reference/p5.sound/p5.PolySynth"},"p5.Pulse":{"relativeUrl":"/reference/p5.sound/p5.Pulse"},"p5.Reverb":{"relativeUrl":"/reference/p5.sound/p5.Reverb"},"p5.SawOsc":{"relativeUrl":"/reference/p5.sound/p5.SawOsc"},"p5.Score":{"relativeUrl":"/reference/p5.sound/p5.Score"},"p5.SinOsc":{"relativeUrl":"/reference/p5.sound/p5.SinOsc"},"p5.SoundFile":{"relativeUrl":"/reference/p5.sound/p5.SoundFile"},"p5.SoundLoop":{"relativeUrl":"/reference/p5.sound/p5.SoundLoop"},"p5.SoundRecorder":{"relativeUrl":"/reference/p5.sound/p5.SoundRecorder"},"p5.SqrOsc":{"relativeUrl":"/reference/p5.sound/p5.SqrOsc"},"p5.TriOsc":{"relativeUrl":"/reference/p5.sound/p5.TriOsc"}},"tutorials":{"Animating with Media Objects":{"relativeUrl":"/tutorials/animating-with-media-objects","description":"Learn how to load images and GIFs to your sketches by creating an interactive garden!"},"Color Gradients":{"relativeUrl":"/tutorials/color-gradients","description":"Use radial gradients, linear gradients, and blend modes to create lens flare stickers & colorful filters on top of a webcam selfie."},"Conditionals and Interactivity":{"relativeUrl":"/tutorials/conditionals-and-interactivity","description":"A tutorial on how to use conditional statements and make interactive sketches."},"Coordinates and Transformations":{"relativeUrl":"/tutorials/coordinates-and-transformations","description":"An overview of the different ways you can position objects in WebGL mode."},"Creating and Styling HTML":{"relativeUrl":"/tutorials/creating-styling-html","description":"Dive into the art of creative coding and learn to build and beautify HTML with p5.js."},"Chatting with/about Code":{"relativeUrl":"/tutorials/criticalAI1-chatting-with-about-code","description":"Using generative AI to code with p5.js"},"Critical AI Prompt Battle":{"relativeUrl":"/tutorials/criticalAI2-prompt-battle","description":"Build a tool to compare generative AI prompts"},"Critical AI Sentiment Dataset Explorer":{"relativeUrl":"/tutorials/criticalAI3-sentiment-dataset-explorer","description":"Examine the datasets that run AI tools"},"Critical AI No-AI Chatbot":{"relativeUrl":"/tutorials/criticalAI4-no-ai-chatbot","description":"Make an interactive chatbot without using any AI"},"Creating Custom Geometry in WebGL":{"relativeUrl":"/tutorials/custom-geometry","description":"A guide to the different ways you can create your own 3D shapes."},"Custom Shapes and Smooth Curves":{"relativeUrl":"/tutorials/custom-shapes-and-smooth-curves","description":"Use vertex(), bezierVertex(), beginShape() and endShape() to create angular and curved sparkle stickers to place on top of your webcam selfie."},"Data Structure Garden":{"relativeUrl":"/tutorials/data-structure-garden","description":"A tutorial on how to use JavaScript objects and arrays."},"Field Guide to Debugging":{"relativeUrl":"/tutorials/field-guide-to-debugging","description":"Learn some healthy habits and best practices for locating bugs in your program, and finding ways to overcome them."},"Get Started":{"relativeUrl":"/tutorials/get-started","description":"A tutorial that introduces basic p5.js functions and guides you through the steps to create an interactive landscape."},"Getting Started with Node.js":{"relativeUrl":"/tutorials/getting-started-with-nodejs","description":"Learn about HTTP requests and how to use Node.js in your p5.js projects to create dynamic projects that save and retrieve files."},"How to Optimize Your Sketches":{"relativeUrl":"/tutorials/how-to-optimize-your-sketches","description":"An advanced tutorial on how to optimize code in your sketches to run more efficiently."},"Introduction to Shaders":{"relativeUrl":"/tutorials/intro-to-shaders","description":"An introduction to the different ways you can create interesting visual effects with your computer's GPU."},"Layered Rendering with Framebuffers":{"relativeUrl":"/tutorials/layered-rendering-with-framebuffers","description":"Framebuffers are the fastest way to create a scene out of multiple layers in WebGL. Explore how to use them, and the unique 3D information they provide."},"Lights, Camera, Materials":{"relativeUrl":"/tutorials/lights-camera-materials","description":"Learn how to light and frame 3D scenes, and how to style 3D objects."},"Loading and Selecting Fonts":{"relativeUrl":"/tutorials/loading-and-selecting-fonts","description":"Explore typography in creative coding: A Quick guide to choosing and selecting fonts."},"Optimizing WebGL Sketches":{"relativeUrl":"/tutorials/optimizing-webgl-sketches","description":"Tips to help make your sketches run as smoothly as possible on as many devices as possible."},"Organizing Code with Functions":{"relativeUrl":"/tutorials/organizing-code-with-functions","description":"A tutorial on how to create and use functions to help you organize your code."},"How to Use the p5.js Web Editor with a Screen Reader":{"relativeUrl":"/tutorials/p5js-with-screen-reader","description":"A tutorial for setting up the p5.js Web Editor for screen readers."},"Repeating with Loops":{"relativeUrl":"/tutorials/repeating-with-loops","description":"Create a crawling caterpillar race using loops and arrays!"},"Responding to Inputs":{"relativeUrl":"/tutorials/responding-to-inputs","description":"Code nostalgia: Unleash your creativity and bring a vintage snake game to life with p5.js!"},"Setting Up Your Environment":{"relativeUrl":"/tutorials/setting-up-your-environment","description":"A quick tutorial for setting up the p5.js Web Editor and VS Code to write and save p5.js projects."},"Simple Melody App":{"relativeUrl":"/tutorials/simple-melody-app","description":"Use p5.Oscillator objects to generate musical notes in an app where users can write and replay melodies they create by interacting with the canvas!"},"Abracadabra: Speak With Your Hands in p5.js and ml5.js":{"relativeUrl":"/tutorials/speak-with-your-hands","description":"Control sketches with your hands using ml5.js"},"Variables and Change":{"relativeUrl":"/tutorials/variables-and-change","description":"Learn about variables and how they can be used to create animated sketches!"},"Writing Accessible Canvas Descriptions":{"relativeUrl":"/tutorials/writing-accessible-canvas-descriptions","description":"A tutorial for how to label p5.js code for screen readers."}}} \ No newline at end of file +{"contributor-docs":{"๐ธ Welcome! ๐บ\n":{"relativeUrl":"/contribute/README","description":"interest contributing p5js collaborative project contributions volunteers community contributors appreciates involvement forms acknowledge capacity time financial means participate actively ways expand meaning word contributor experienced developer starting unique perspectives skills experiences enrich encourage involved works includes documentation teaching writing code making art design activism organizing curating imagine [contribute page](https://p5js.org/contribute/) overview contribute [all-contributors](https://github.com/kentcdodds/all-contributors/) specification @all-contributors bot handle adding people READMEmd file add issue PR comment ``` @[your GitHub handle] [your contribution type] find relevant type [here](https://allcontributors.org/docs/en/emoji-key/). automatically list merging docs published [website](https://p5js.org/contribute/), hosted [GitHub repository](https://github.com/processing/p5.js/tree/main/contributor_docs/). Contributing stress free experience levels fixing small typo refactoring complex 3D rendering functionalities things familiar read [community statement](https://p5js.org/about/#community-statement). prioritizing work expands access inclusion accessibility [our statement]/access/ details Started ready start started reasons purpose split roughly categories * Source including Non-source Depending kind section ## [Source contribution]/contributor_guidelines/ typical p5js-website repository follow steps Open Discuss Approved opening Pull Request Make merged Head [this link]/contributor_guidelines/ guided step navigate table contents page skip part refresher stick workflow strictly contributed projects feel hoops jump simple aimed make easy stewards/maintainers meaningfully spending working accepted ensure proposals fixes adequately discussed considered begin save steward/maintainer additional review outright happen result **We learning opportunity** measure success volume received limit long takes complete pace check period inactivity stewards maintainers support information related area general maintenance [steward guidelines]/steward_guidelines/ non-source exhaustively listed involve repositories examples tutorials website planned reach channel email social media [Discourse forum](https://discourse.processing.org/c/p5js/10/), Discord **Create** Inspire sketches designers artists coders programmers showcase creative amazing sketch gallery Dont forget tag @p5xjs [Instagram](https://www.instagram.com/p5xjs/) [X](https://twitter.com/p5xjs/), share **Teach** Teach workshop class friend collaborator Share syllabus video materials **Organize** Host events Curate exhibition Activate local **Donate** open-source made supported dedicated remain restrictions impact life position give back donation Processing Foundation donations directly fund development features improved designed inclusive welcomes background resources level thought dont [let know]mailtohello@p5jsorg participation important contributes lively"},"Our Focus on Access\n":{"relativeUrl":"/contribute/access","description":"{/* commitment access means contributors users library */} [2019 Contributors Conference](https://p5js.org/events/contributors-conference-2019/), p5js made add features increase inclusion accessibility accept feature requests support efforts commit work acknowledging dismantling preventing barriers intersecting[^1] experiences diversity impact participation include alignments gender race ethnicity sexuality language location cetera center marginalized groups continued comfort privileged community collectively exploring meaning learning practice teach choose expansive intersectional coalitionary frameworks part core values outlined [Community Statement](https://p5js.org/about/#community-statement). ## Kinds Increasing focused expanding raw number people making approachable excluded consequence structural oppression extends tools platforms offers includes makeup decision-making actions leadership resist technological culture speed growth competition prioritize intentionality slowness accommodation accountability acts collective care Access equitable * People speak languages English Black Indigenous Color ethnicities Lesbian gay bisexual queer questioning pansexual asexual Trans genderfluid agender intersex two-spirit women genders blind d/Deaf[^2] hard hearing disabled/have disability neurodivergent chronically ill[^3] lower income lack financial cultural capital prior experience open source creative coding diverse educational backgrounds age including children elders variety skill internet religious systematically historically underrepresented intersections thereof recognize complexity terms describe respective identities Language nuanced evolving contested exhaustive list provide attempt accountable commitments ### Examples examples Translating documentation materials decentering linguistic imperialism[^4] Rolando Vargas [Processing Kuna Language](https://medium.com/@ProcessingOrg/culture-as-translation-processing-in-kuna-language-with-rolando-vargas-and-edinson-izquierdo-8079f14851f7/), Felipe Santos Gomes Julia Brasil Katherine Finn Zander Marcela Mancinos [Pรช Cinco Internationalization Popularization Portuguese Speakers](https://medium.com/processing-foundation/translating-p5-js-into-portuguese-for-the-brazilian-community-14b969e77ab1/)) Improving assistive technologies screen readers Katie Lius [Adding Alt Text p5.js](https://medium.com/processing-foundation/adding-alt-text-e2c7684e44f8/), Claire Kearney-Volpes [P5 Accessibility Project](https://medium.com/processing-foundation/p5-accessibility-115d84535fa8/)) [Web Content Guidelines](https://www.w3.org/TR/WCAG21/) working easier follow projects Making error messages helpful supportive tool [p5js Friendly Error System FES]/friendly_error_system/ Mentoring supporting learners communities digital arts Hosting events Day 2022](https://p5js.org/events/p5js-access-day-2022/), [The Web W3C TPAC 2020)](https://medium.com/processing-foundation/p5-js-x-w3c-tpac-bee4c621a053/) access-centered organizing tactics ASL interpretation live captioning accessible venues Supporting creation resources Adekemi Sijuwade-Ukadikes [A11y Syllabus](http://a11ysyllabus.site/)) Publishing reports WCAG guidelines plain focus beginners [OSACC Report](https://github.com/processing/OSACC-p5.js-Access-Report/)) Maintenance accepting effort criteria reflected issue pull request templates affirm intention maintain existing set fix bugs area codebase consistency makes improve Performance increases powerful hardware Support drawing to/reading framebuffers Consistency API Add arcVertex creating arcs beginShape/endShape *** living document continue conversation invite engage describes ideas suggestions share Github emailing [hello@p5jsorg]mailtohello@p5jsorg version Statement revised collaboration Evelyn Masso Nat Decker Bobby Joe Smith III Sammie Veeler Sonia Suhyun Choi Xin Kate Hollenbach Lauren Lee McCarthy Caroline Sinders Qianqian Ye Tristan Jovani Magno Espinoza Tanvi Sharma Tsige Tafesse Sarah Ciston Open Source Arts Conference finalized published Processing Foundation Fellowship [^1] Crenshaw Kimberlรฉ Demarginalizing intersection sex black feminist critique antidiscrimination doctrine theory antiracist politics University Chicago Legal Forum 139โ167 ISSN 0892-5593 Full text Archiveorg [^2] Capital Deaf refers culturally case deaf audiological term identity [^3] differing preferences person-first identity-first Read [Unpacking debate autism community](https://news.northeastern.edu/2018/07/12/unpacking-the-debate-over-person-first-vs-identity-first-language-in-the-autism-community/), [Disability-Affirming Person-First versus Identity-First Language](https://editorstorontoblog.com/2024/02/23/disability-affirming-language-person-first-versus-identity-first-language/), [Person-First Glossary](https://ogs.ny.gov/system/files/documents/2024/02/person-first-and-identity-first-glossary_english_final.pdf). [^4] Linguistic Imperialism ongoing domination/prioritization/imposition expense native due imperial expansion globalization"},"Contributing to the p5.js Reference\n":{"relativeUrl":"/contribute/contributing_to_the_p5js_reference","description":"{/* Write edit p5js reference format */} author code [reference](https://p5js.org/reference/) page website including alongside librarys source specialized comments include description functions signature parameters return usage examples words content function/variables built document show write eventually rendered correctly follow guide editing writing function variable ## quick introduction work lines library ``` /** * Calculates sine angle `sin` geometric tasks creative coding values returned oscillate -1 input increases takes account current angleMode @method sin @param {Number} @return @example draw { background200 = frameCount sint + linex circlex describe'A white ball string oscillates down' } sinx pointx series black dots form wave pattern' cost infinity symbol' */ actual JavaScript defines Reference start `/**` end `*/` line starting `*` block manner interpreted documentation familiar style [JSDoc](https://jsdoc.app/). JSDoc similar tool called [YUIDoc](https://yui.github.io/yuidoc/), syntax comment divided individual elements Lets break section compare [`sin()`](https://p5js.org/reference/p5/sin/). top text markdown HTML concise describe details quirks behaviors typically sections `@` symbol keywords `@method` define case note brackets `` `@param` arguments accepts keyword stored curly `{}` type parameter word rest `@return` generically {type} Description optional add square [name] ### Additional info Constants defined [`constants.js`](https://github.com/processing/p5.js/blob/main/src/core/constants.js), `{Constant}` valid enumerated `either` {Constant} horizAlign horizontal alignment LEFT CENTER types data tag left Chaining method returns parent object skip @chainable signatures multiple options individually [`background()`](https://p5js.org/reference/p5/background/) number Syntax Choose version list template additional tags background {String} colorstring color formats integer rgb rgba percentage 3-digit hex 6-digit [a] alpha gray specifies Multiple create separate difference addition Limit feature unnecessary noise variables looked references constants Variables structure system mouseX position mouse relative canvas top-left corner 2-D -width/2 -height/2 WebGL touch hold recent point @property @readOnly // Move background244 linemouseX describe'horizontal moves x-position' `mouseX` `@property` defining `@readonly` present internally overwritten directly user Adding `mouseX`s talked `@example` run visit [Screenshot red showing section]src/content/contributor-docs/images/reference-screenshotpng relevant const color255 fillc rect15 Sets redValue redc fillredValue rect50 rectangles edges rectangle yellow opening closing insert basic principle good things simple minimal meaningful explain works complicated 100x100 pixels `setup` included automatically wrapped default created wont practices closed separated blank arc50 PI QUARTER_PI OPEN describe'An ellipse arc open' describe'The bottom half arc' execute class `norender` describe'ellipse part automated tests requires interaction `notest` setup createCanvas100 saveCanvasc myCanvas' jpg' external asset files put [/docs/yuidoc-p5-theme/assets](https://github.com/processing/p5.js/tree/main/docs/yuidoc-p5-theme/assets/) folder reuse link assets/filenameext [tint()](https://p5js.org/reference/p5/tint/) Add `describe` Finally required screen-reader accessible Include happening xoff background204 noisexoff width linen height vertical randomly right' noiseScale background0 [web accessibility contributor documentation]/web_accessibility/#describe tools needed situationally `@private` property private marked reason mark internal features `_start` _start calls preload @private p5prototype_start `@module` related file Modules correspond group split Inside module submodules `@submodule` `@for` relationship `p5` effectively `@requires` imported modules depends @module Color @submodule Creating Reading @for p5 @requires core convention subfolder `src/` inside subfolders adding subfolders/files shouldnt `@class` Class constructors `@constructor` classs constructor `p5Color` stores mode level maxes active construction interpret passed object's determine output formatting saturation array ideal RGBA floating normalized calculate closest screen colors levels Screen renderer representations calculated results cached performance floating-point numbers recommended instance @class p5Color @constructor {p5} [pInst] pointer {Number[]|String} vals green blue channel CSS Generating previewing repository set generate preview needing build main command npm docs `docs/reference/datajson` minification render continuous docsdev launch live update time make refresh making running browser `docs/` cases `docs/yuidoc-p5-theme/assets` steps checkout [JSDoc](https://jsdoc.app/) [YUIDoc](https://yui.github.io/yuidoc/). issues [#6519](https://github.com/processing/p5.js/issues/6519/) [#6045](https://github.com/processing/p5.js/issues/6045/). [contributor guidelines]/contributor_guidelines/ place"},"Contributor Guidelines\n":{"relativeUrl":"/contribute/contributor_guidelines","description":"{/* Essential information contributing p5js GitHub */} contributor guidelines document contributors contribute code refresh memories technical steps contributions repositories writing tutorials planning classes organizing events relevant pages Stewards maintainers find [steward guidelines]/steward_guidelines/ helpful reviewing issues pull requests long comprehensive signpost points utilize table contents sections Feel free skip planned **If start section step-by-step setup development process Quick Started Developers section** Table Contents * [All issues]#all-about-issues [What issues]#what-are-issues [Issue templates]#issue-templates [Found bug]#found-a-bug [Existing Feature Enhancement]#existing-feature-enhancement [New Request]#new-feature-request [Discussion]#discussion [Working codebase]#working-on-the-p5js-codebase [Quick Developers]#quick-get-started-for-developers [Using Github edit functionality]#using-the-github-edit-functionality [Forking working fork]#forking-p5js-and-working-from-your-fork Desktop]#using-github-desktop git command line interface]#using-the-git-command-line-interface [Codebase breakdown]#codebase-breakdown [Build setup]#build-setup [Git workflow]#git-workflow [Source code]#source-code [Unit tests]#unit-tests [Inline documentation]#inline-documentation [Accessibility]#accessibility [Code standard]#code-standard [Software Design principles]#software-design-principles [Pull requests]#pull-requests [Creating request]#creating-a-pull-request request information]#pull-request-information [Title]#title [Resolves]#resolves [Changes]#changes [Screenshots change]#screenshots-of-the-change [PR Checklist]#pr-checklist [Rebase resolve conflicts]#rebase-and-resolve-conflicts [Discuss amend]#discuss-and-amend *** majority activity repo short great place contribution journey ## [A cropped screenshot library repository showing top corner red box drawn surrounding Issues tab]src/content/contributor-docs/images/issues-tabpng Issue generic post aims describe issue bug report add feature discussion works related Comments added account including bots discuss topics project opened wide variety reasons source Topics debugging inviting collaborators unrelated discussed [forum](https://discourse.processing.org) platforms [Discord](https://discord.gg/SHQ8dH25r9/). created easy-to-use templates aid deciding topic posted p5js's make easier stewards understand review file receive reply faster [Screenshot title Warning logged Safari filter shader 2D mode #6597]src/content/contributor-docs/images/github-issuepng simply tab click button side presented options corresponds template redirects question recommend choosing option ensure receives attention promptly [Cropped repository's page green highlighted it]src/content/contributor-docs/images/new-issuepng ### bug\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Bug\\&projects=\\&template=found-a-bug.yml) encounter incorrect behavior behaving documentation [this template](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Bug\\&projects=\\&template=found-a-bug.yml). note debug sketch problem [Discourse forum](https://discourse.processing.org) fields fill *Most sub-area p5js* - helps identify respond automatically tagging [labels](https://github.com/processing/p5.js/labels/). *p5js version* version number `` tag link p5js/p5minjs similar `142` numbers separated periods *Web browser isolate behaviors browsers follow instructions Chrome Firefox address bar navigate `chrome//version` `aboutsupport` menu item choose *Operating System* include OS `macOS 125` bugs stem *Steps reproduce this* arguably important share list detailed replicating Sharing basic sample demonstrates replicate facing formulating solution **Replication key** aimed provide sketch's environment solutions **Be avoid statements** image function work specific display loaded GIF size things expect expected actual fix reported description simple suggestion support **You approved implementation** proposed accepted approach filed fixing closed approval reports [area steward maintainer](https://github.com/processing/p5.js#stewards) begin Enhancement\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Enhancement\\&projects=\\&template=existing-feature-enhancement.yml) propose functionality existing features functions constants rendering define color `color` accept colors *Increasing Access* required field insert statement adding enhancement [increase access]/access/ people historically marginalized creative arts technology **No proposals this** offer members community argument addresses accessibility *Feature details* proposal good includes clear case needed guarantee Request\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Feature+Request\\&projects=\\&template=feature-request.yml) drawing native HTML elements `createTable` overlap cases whichever feel form identical Existing Enhancement [previous section]#existing-feature-enhancement details maintainers](https://github.com/processing/p5.js#stewards) [\"Discussion\"](https://github.com/processing/p5.js/issues/new?assignees=\\&labels=Discussion\\&projects=\\&template=discussion.yml) filing fit fitting rare practice adopt Web API [new request]#new-feature-request additional [feature enchancement]#existing-feature-enchancement announcement local coding event forum contacting Processing Foundation publicity opening Labels panel panels labels area bare minimum text link](https://github.com/processing/p5.js/issues/6517/) [**โฌ back top**]#contributor-guidelines Working codebase Prerequisites proceed minimally familiar nodejs v18 Introduction implementation ready Similarly joined discussions original author volunteer submit assign jump queue PR willingness assigned prioritize serve order accepting closed** weeks individual leave polite comment progress generally pace basis takes time sensitive directly explain deadlines deadline finish reassigned exception rule Generally confident hard limit spend trouble aspect hesitate guide check README **within week** questions updates week reassign confirm work/contribute p5js'๐ธ developer improving sub-projects [Friendly Error Systems]/friendly_error_system/ [Create fork p5.js.](https://docs.github.com/en/get-started/quickstart/fork-a-repo/) [Clone computer.](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository/) [Add upstream command](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/configuring-a-remote-repository-for-a-fork/): ``` remote https://github.com/processing/p5.js Make machine [NodeJs](https://nodejs.org/en/download/) installed node -v Install dependencies npm ci Create branch `main` descriptive checkout -b [branch_name] making frequently run tests ensures broken test Add unit commit create Request]#pull-requests viewing web interface content pencil icon convenient provided simplifies processes covering quick edits view src/color/color\\_conversionjs arrow pointing image]src/content/contributor-docs/images/edit-filepng recommended main complex built tested locally fluent compared editing Forking step meaning open purpose means creating copy storing Fork labeled 593k outlined dark orange]src/content/contributor-docs/images/forkpng direct write access official Desktop program lets graphical user typing commands terminal switch [download install Desktop.](https://desktop.github.com/) application sign signed projects Select named `yourUsername/p5js` blue Clone change default settings continue [The signing half screen lists bottom right]src/content/contributor-docs/images/github-desktop-initpng cloned plan parent Continue cloning asks purposes]src/content/contributor-docs/images/github-desktop-forkpng `git` fork's URL clicking Code `https://github.com/limzykenneth/p5.js.git`. files landing orange outline]src/content/contributor-docs/images/code-buttonpng clone download Run folder store [git_url] Replace `[git_url]` copied minutes depending speed internet connection coffee finished downloaded `p5js` preferred editor Codebase breakdown key folders `src` eventually combined final p5minjs lives [`test`]/unit_testing/ testing examples `tasks` custom build `Gruntfilejs` configuration `contributor_docs` configurations kinds modifications Build set Assuming downloads Pretty Git workflow parts subsections building scratch complete errors running `lib/` `p5minjs` starting implies branched commits affecting branches Branches enable multiple isolated confidence mess affect Current Branch header window enter purposes describing selection entering exist appears]src/content/contributor-docs/images/github-desktop-create-branchpng `git branch_name` replacing `branch_name` separate `npm test` Running breaking moving committing made collection saved essentially records current state arise general aim lump big guideline completed subtask sentence app show changed left sidebar Type high-level elaborate blank Click Commit finalize circled lower window]src/content/contributor-docs/images/github-desktop-commitpng Check status listed [restore](https://git-scm.com/docs/git-restore/) intended diff intend Stage -m [your_commit_message] `[your_commit_message]` replaced message avoiding statements `Documentation 1` `Add circle function` Repeat periodically Source visit documented reference website Notice typos src/core/shape/2d\\_primitivesjs Part underline it]src/content/contributor-docs/images/reference-code-linkpng Unit [here]/unit_testing/ Note implementations included Inline inline [here]/contributing_to_the_p5js_reference/ Accessibility [here]/web_accessibility/ Friendly System [here]/friendly_error_system/ standard style enforced [ESLlint](https://eslint.org/). pass linting easiest ESLint plugin error highlighting popular editors Software principles mind design priorities differ coming familiarize **Access** foremost decisions increase groups Read **Beginner Friendly** friendly beginner coders offering low barrier interactive visual cutting-edge HTML5/Canvas/DOM APIs **Educational** focused curriculum supports educational supporting class curricula introduce core engaging **JavaScript community** practices accessible beginners modeling proper JavaScript patterns usage abstracting open-source wider creation dissemination **Processing inspired language transition Java easy Pull applicable committed preparing merged formally merge forked history Creating push uploading changes[A online red]src/content/contributor-docs/images/publish-branchpng uploaded prompting Clicking preview Press Request pushing items pane Review marked circle]src/content/contributor-docs/images/preview-pull-requestpng -u origin dropdown Contribute Open response request]src/content/contributor-docs/images/new-branchpng yellow call action Compare request]src/content/contributor-docs/images/recent-pushespng prepopulated template]src/content/contributor-docs/images/new-prpng Title briefly Resolves `Resolves #[Add here]` replace `[Add addressing/fixing [above]#all-about-issues #1234` close `Resolves` `Addresses` Include **Important** \\~10 \\~100 lines specifically previously Files Changed `packagejson` `package-lockjson` formatting Screenshots optional circumstances renders visuals canvas Checklist checklist tick `[ ]` `[x]` Rebase conflicts Fix shaders rectMode applied #6603]src/content/contributor-docs/images/opened-prpng inspect pay match times Commits base resolved true [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing/) Conflicts recently resolving Basic instruction Resolve button[A conflicting filenames highlighted]src/content/contributor-docs/images/resolve-conflictspng shown `>>>>>>` `=======` shows GitHub's conflict resolution markers highlighted]src/content/contributor-docs/images/conflicts-interfacepng Remove Mark addressed remove mark upper enabled]src/content/contributor-docs/images/mark-as-resolvedpng enabled]src/content/contributor-docs/images/commit-mergepng complicated prefer manual method https://github.com/processing/p5.js` fetch upstream` rebase upstream/main` lib/p5js lib/p5minjs --continue push` Discuss amend maintainer days patient meantime reviewed happen hurray panic perfectly normal requested [same before]#git-workflow pushed Leave reviewer"},"Creating an Addon Library\n":{"relativeUrl":"/contribute/creating_libraries","description":"{/* Extend p5js functionalities addon library */} JavaScript code extends adds core functionality wide range doesnt aim cover Web API Addon libraries extend needing incorporate features guide steps creating loads simple CSV file implementing `loadCSV` function examples create * Provide simplified interface [p5.ble.js](https://github.com/ITPNYU/p5.ble.js) [p5.serialserver](https://github.com/p5-serial/p5.serialserver) Implement specialized algorithms [p5.pattern](https://github.com/SYM380/p5.pattern) [p5.mapper](https://github.com/jdeboi/p5.mapper) Test widely browsers [p5.webserial](https://github.com/gohai/p5.webserial/) [p5.joystick](https://github.com/Vamoss/p5.joystick) alternative implementations existing [nรบmero](https://github.com/nickmcintyre/numero/) [p5.cmyk.js](https://github.com/jtnimoy/p5.cmyk.js) ## Prerequisites foundation Prototype-based object orientation Javascript Step lets blank call p5loadcsvjs main adding methods p5prototype p5 add method ```js p5prototypeloadCSV = function{ consolelog'I load soon' } ``` includes project global `createCanvas` `background` classes as` p5Element` or` p5Graphics` prototypes `p5Elementprototype` extended `shout` exclamation mark end elements HTML p5Elementprototypeshout { thiseltinnerHTML += ' attached `p5prototype` method` loadCSV` logs message console Run sketch the` ` tag setup createCanvas400 loadCSV ```html tags Running print single accept argument defined parameter filename consolelog`I ${filename} soon` test // Prints datacsv loadCSV'datacsv' access functions variables `circle` `PI` `this` `hour` `minute` customize give information called keyword attach Dont arrow syntax => created refer window === true refers consolelogthis ${thishour}${thisminute}` looked handy implement algorithm perform drawings previous started explore source module written inside details work hood utilize advanced made files asynchronous p5jss loading `loadJSON` `loadStrings` make functionfilename{ result [] fetchfilename thenres restext thendata datasplit'\\n'forEachline resultpushlinesplit'' return creates empty array variable `result` Fetch parse split line rows row words run pass path log output setup{ myCSV printmyCSV notice logging data reason `preload` nature makes returned `fetch` finish fetching Simply moving case solve problem preload{ prints told addons wait `registerPreloadMethod` filename{ this_decrementPreload p5prototyperegisterPreloadMethod'loadCSV' Note things `p5prototyperegisterPreloadMethod` passing string parsed pushed `this_decrementPreload` `myCSV` populated due inherent limitations technique type overwritten body set properties push reassign ``result datasplit`\\n``` bit magic happening firstly additional fetchcode> running related objects passed reference types strings numbers means points original `let []` contrast returning copied lose relation behavior modify long dont separate registerPreloadMethod this\\_decrementPreload internal list track detects counter larger waiting defer `setup` starting `draw` loop Loading decrement calling effectively signaling complete reaches loadings start expected callback support `p5prototypes` major feature action hooks Action lifetime runs clean removed `remove` enable order execution `init` โ Called initialized initialization `p5` constructor executed mode automatically assigned `window` active `beforePreload` `afterPreload` `beforeSetup` `afterSetup` `pre` beginning repeatedly `post` hook snippet p5prototypedoRemoveStuff cleanup p5prototyperegisterMethodremove p5prototypesetDefaultBackground Set background pink default thisbackground#ed225d p5prototyperegisterMethodpre unregister longer needed p5prototypeunregisterMethod'remove' extra tips authoring **Must extend** **or prototype p5\\* classes** offer constants instantiated mix offering convenience **Naming conventions** **Don't overwrite properties** extending careful names intend replace **p5js modes instance mode** bound allowing users prefix native `Math` `console` shouldnt named **Class use** `PascalCase`** `camelCase`**** Classes prefixed namespace **do include the** **prefix class names** non-prefixed p5prototypep5MyClass p5prototypemyAddonMyClass p5prototypemyMethod filenames word lowercase** distinguish p5soundjs encouraged follow format naming **Packaging** **Create JS library** easy projects suggest [bundler](https://rollupjs.org/) provide options normal sketching/debugging [minified](https://terser.org/) version faster **Contributed hosted documented maintained creators** GitHub website fully open **Documentation key** documentation find contributed wont included similar [library overview page](https://p5js.org/reference/p5.sound), [class page](https://p5js.org/reference/p5/p5.Vector), [method page](https://p5js.org/reference/p5/arc/). **Examples great too** show people online download anything[ ](http://jsfiddle.net/) collection web editor showcase works **Submit ready distribution youd [p5js.org/libraries](https://p5js.org/libraries/) page submit pull request repository [this instruction](https://github.com/processing/p5.js-website/blob/main/docs/contributing_libraries.md)!"},"Documentation Style Guide\n":{"relativeUrl":"/contribute/documentation_style_guide","description":"{/* reference give documentation consistent voice */} guidelines writing p5js document remix resources * Ruby Rails [API Documentation Guidelines](https://guides.rubyonrails.org/api_documentation_guidelines.html) CC BY-SA WordPress [accessibility](https://make.wordpress.org/docs/style-guide/general-guidelines/accessibility/) [inclusivity](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/) CC0 Airbnb [JavaScript Style Guide](https://airbnb.io/javascript/) MIT community large diverse people learn code subset students Kโ12 classes reading guide write effective inclusive accessible prose purposes simple samples ## Table Contents ### Writing [YUIDoc]#yuidoc [English]#english [Oxford Comma]#oxford-comma [Wording]#wording [Unbiased Documentation]#unbiased-documentation [Accessibility Disability]#accessibility-and-disability Code [Code Samples]#code-samples [Comments]#comments [Whitespace]#whitespace [Semicolons]#semicolons [Naming Conventions]#naming-conventions [Variables]#variables [Strings]#strings [Boolean Operators]#boolean-operators [Conditionals]#conditionals [Iteration]#iteration [Objects]#objects [Arrays]#arrays [Functions]#functions [Arrow Functions]#arrow-functions [Chaining]#chaining [Classes]#classes [Assets]#assets YUIDoc generate API docs navigate root directory run `npm install` execute ``` $ npm grunt yuidev output docs/reference Refer [inline guide]/contributing_to_the_p5js_reference/ information **[โฌ back top]#table-of-contents** English American color center modularize [a list British spelling differences here](https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences/). Oxford Comma comma](https://en.wikipedia.org/wiki/Serial_comma/) red white blue Wording Write declarative sentences Brevity point present tense Returns object Returned return Start comments upper case Follow regular punctuation rules ```javascript // Draws fractal Julia set function drawFractalc radius maxIter { } Communicate current things explicitly implicitly idioms recommended Reorder sections emphasize favored approaches needed model practices approachable beginners comprehensive Explore edge cases combination arguments bugs beginner's Spell names correctly CSS HTML JavaScript WebGL doubt refer authoritative source official Unbiased bias kind person documenting demanding/sensitive topics time educate Ensure doesnt hurt offend unintentionally unbiased gender identity expression sexual orientation race ethnicity language neuro-type size disability class religion culture subculture political opinion age skill level occupation background Make examples Avoid politicized content remain neutral accessibility insult harm Dont make generalizations countries cultures includes positive prejudiced discriminatory minority communities terms related historical events Prefer wordings avoid yous declare variable `let` style variables **Pronouns** | Recommended ----------- ------------------ Accessibility Disability Emphasize reader underlining inconveniences disabled [approved terminology](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/#accessibility-terminology) specific disabilities Maintain uniform structure important points stylistically visually screen test [List readers](https://en.wikipedia.org/wiki/List_of_screen_readers/). multi-platform types devices operating systems Create input gesture based controllers mice keyboards ableist pragmatic approach semantics add purely sake matches element group links tables tabular formats span tags rowspan colspan Tables prove difficult readers **Accessibility terminology** terminology adapted [Writing documentation](https://make.wordpress.org/docs/style-guide/general-guidelines/inclusivity/#accessibility-terminology). people-first CDC's [Communicating People Disabilities](https://www.cdc.gov/ncbddd/disabilityandhealth/materials/factsheets/fs-communicating-with-people.html). --------------------------------------------------------------- ------------------------------------------------------------------ handicapped differently abled challenged abnormal normal healthy able-bodied \\[disability] victim suffering affected stricken unable speak synthetic speech dumb mute deaf low-hearing hearing-impaired blind low-vision vision-impaired visually-challenged cognitive developmental mentally-challenged slow-learner limited mobility physical crippled Samples Choose meaningful cover basics gotchas advanced syntax explain feature works draw circles circle convey idea follow Comments `//` single line Place newline subject comment Put empty block Bad magicWord = Please' Remember Good keyIsPressed === true thing1 note thing2 space easier read //Remember multiline /** */ //Bad /* Whitespace Indent blocks spaces setup โโโโcreateCanvas400 โcreateCanvas400 โโcreateCanvas400 leading brace setup{ createCanvas400 opening parenthesis control statements `if` `for` argument ifkeyIsPressed doStuff createCanvas operators y=x+5 + Semicolons Yep > JavaScript's [automatic semicolon insertion](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion) lead subtle Naming Conventions letter descriptive fx vectorFieldx objects functions instances camelCase OBJEcttsssss {} this_is_my_object thisIsMyObject PascalCase player constructorname thisname Player trailing underscores private properties methods Spy constructorsecret this_secret secret thissecret Variables `var` declared confusing scoping reasonable circlex var throws ReferenceError `const` reason reassigned sketches helpful default flower ๐ธ' const declaration assignment declarations positions getPositions startSearch dragonball z' Assign place scoped - unnecessary search getCharactername default' character charactersfindc => cname false unary increments decrements `++` `--` Unary increment decrement insertion](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion). silent errors incrementing decrementing values expressive update num `+= 1` `num++` num++ --num += -= Strings quotes `''` strings Hilma af Klint template literals interpolation newlines `Hilma Klint` Klint' concatenate characters Broken hard searchable essay \\ simplest convenient definitions' concatenation Template concise provide proper string features Dave' textname conversation serve purpose anymore Goodbye text`${name} Goodbye` unnecessarily escape Backslashes readability bad \\'this\\ \\i\\s \\quoted\\' good Air cool' Boolean Operators `===` `==` `=` shortcuts booleans understand mouseIsPressed == ' collectionlength `switch` parentheses mixing exceptions arithmetic `+` `-` `**` avoids huh && || / Conditionals braces circlemouseX mouseY `else` preceding closing thing3 executes `return` statement mouseIsOnLeft mouseX number letters abc' selection conditionals refrigeratorIsRunning goCatchIt Iteration `while` `do-while` loops iterate fixed times numPetals Pure side effects `forEach` `map` `every` `filter` `find` `findIndex` `reduce` `some` `` arrays `Objectkeys` `Objectvalues` `Objectentries` produce iterating diameters [50 10] circle0 Objects literal creation ball Object quote invalid identifiers improves highlighting engines optimizing performance secretObject x' y' top-secret' classified' dot notation access turtle Leonardo' dodgerblue' weapon ๐ก๏ธ' food ๐' turtleName turtle['name'] turtlename bracket `[]` getPropprop turtle[prop] getProp'name' commas mathematician firstName Ada lastName Lovelace Ada' Lovelace' Add comma artist Lauren' McCarthy McCarthy' Arrays array images Array [] [Array#push](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/push/) direct items lyrics lyrics[lyricslength] rough edges smooth' lyricspush'Little `slice` method copy numbersCopy Function foo parameter mutate createBalldiameter diameter put parameters drawSpiralangle length drawSpirallength angle Arrow Functions arrow anonymous Callbacks common creates version context `this` complex rewrite loadImage'assets/moonwalkjpg' img imageimg preload Complex preprocessing processImage processImageimg implicit Omit body returns [1 3]mapnumber squared ** `${number} ${squared}` ${number 2}` include reduces changing Chaining individual calls chaining accommodate users familiar concept fill0 strokeWeight6 textSize20 fill0strokeWeight6textSize20 Classes `class` manipulating `prototype` directly exception explaining [create libraries]/creating_libraries/ Moverx thisx thisy thisradius Moverprototypeupdate Moverprototyperender circlethisx Mover constructorx render `extends` inheritance RandomMover extends random-1 custom `toString` toString `Mover ${thisx} ${thisy}` constructor delegates parent Dot DragonBall Ball superx numStars thisnumStars duplicate members Duplicate member prefer duplicates means bug thisxspeed thisyspeed reset Assets load assets folder called models project organization required website folders online Examples [src/data/examples/assets](https://github.com/processing/p5.js-website/tree/main/src/data/examples/) Reference Pages [src/templates/pages/reference/assets](https://github.com/processing/p5.js-website/tree/main/src/templates/pages/reference/assets/) Learn [src/assets/learn](https://github.com/processing/p5.js-website/tree/main/src/assets/learn/) loadImage'moonwalkjpg'"},"Friendly Errors System Contribution Guide\n":{"relativeUrl":"/contribute/fes_contribution_guide","description":"{/* overview Friendly Error System codebase reference developers */} `core/friendly_errors` folder code p5js Systems FES responsible generating messages Errors starting `๐ธ says` console supplementing default browser-generated error houses functions types errors gather locations including handling file load autoplay parameter checking library custom implemented contributors document starts FES's main section find full information description syntax parameters location individual part notes previous Development Notes outlining limitations future directions [Development Notes]#-development-notes contributing ## Overview * `p5_friendlyError` formats prints `_report` input message `p5_validateParameters` validate received values wrong type missing `p5_friendlyFileLoadError` guide users related `p5_friendlyAutoplayError` browser's policy diagram outlines connect [A files uses]src/content/contributor-docs/images/fessvg Individual `fes_corejs` `_friendlyError` `_friendlyAutoplayError` helper formatting testing `validate_paramsjs` `_validateParameters` validation `file_errorsjs` `_friendlyFileLoadError `and `browser_errorsjs` list browser generated global class `fesglobalErrors` `stacktracejs` parse stack borrowed [stacktrace.js](https://github.com/stacktracejs/stacktrace.js)). ๐ Reference Functions ### #### Description primary function directly output **Note** `p5_fesLogger` set running tests `consolelog` Mocha case `_fesLogger` pass string tested asserted Syntax ```js _reportmessage func color ``` Parameters @param {String} Message printed [func] {Number|String} [color] CSS `[func]` append link end `[color]` property current version Location core/friendly\\_errors/fes\\_corejs creates p5 call offer `_friendlyFileLoadError` inside `image/loading_displaying/loadImage` `io/files/loadFont` `io/files/loadTable` `io/files/loadJSON` `io/files/loadStrings` `io/files/loadXML` `io/files/loadBytes` sequence _friendlyFileLoadError _report _friendlyFileLoadErrorerrorType filePath {Number} errorType Number Path caused `errorType` refers specific enumerated `core/friendly_errors/file_errorsjs` File categorized distinct cases categorization designed facilitate delivery precise informative scenarios read data font show large Examples Loading /// myFont preload { = loadFont'assets/OpenSans-Regularttf' } setup fill'#ED225D' textFontmyFont textSize36 text'p5*js' draw {} generate addition browsers unsupported ๐ธ problem loading path assets/OpenSans-Regularttf correct hosting online local server + info https://github.com/processing/p5.js/wiki/Local-server /friendly\\_errors/file\\_errorsjs called internally linked playing media video due calls `translator` print key `fesautoplay` keys `translations/en/translationjson` runs matching `docs/reference/datajson` created function's inline documentation checks number `fesfriendlyParamError*` `p5_validateParametersFUNCT_NAME ARGUMENTS` `p5prototype_validateParametersFUNCT_NAME requires recommended static general purposes remained debugging unit `accessibility/outputs` `color/creating_reading` `color/setting` `core/environment` `core/rendering` `core/shape/2d_primitives` `core/shape/attributes` `core/shape/curves` `core/shape/vertex` `core/transform` `data/p5TypedDict` `dom/dom` `events/acceleration` `events/keyboard` `image/image` `image/loading_displaying` `image/p5Image` `image/pixel` `io/files` `math/calculation` `math/random` `typography/attributes` `typography/loading_displaying` `utilities/string_functions` `webgl/3d_primitives` `webgl/interaction` `webgl/light` `webgl/loading` `webgl/material` `webgl/p5Camera` validateParameters buildArgTypeCache addType lookupParamDoc scoreOverload testParamTypes testParamType getOverloadErrors _friendlyParamError ValidationError report friendlyWelcome _validateParametersfunc args {Array} User arguments Missing Parameter arc1 [sketchjs line 13] arc expecting (https://p5js.org/reference/p5/arc) mismatch 1' MathPI 14] core/friendly\\_errors/validate\\_paramsjs `fesErrorMonitor` monitors guess source provide additional guidance includes trace sequential program leading point thrown Stack traces determining internal user `fesglobalErrors*` comprehensive `fesglobalErrorssyntax*` `fesglobalErrorsreference*` `fesglobalErrorstype*` `processStack` `feswrongPreload` `feslibraryError` stacktrace `printFriendlyStack` `fesglobalErrorsstackTop` `fesglobalErrorsstackSubseq` spell-check `handleMisspelling` `fesmisspelling` `_fesErrorMonitor` automatically triggered `error` events unhandled promise rejections `unhandledrejection` `window` manually catch block someCode catcherr p5_fesErrorMonitorerr works subset `ReferenceError` `SyntaxError` `TypeError` complete supported roughly _fesErrorMonitor processStack printFriendlyError ReferenceError _handleMisspelling computeEditDistance printFriendlyStack SyntaxError TypeError fesErrorMonitorevent {*} event Internal // background background200 8] properties undefined reading background' occurred stated loadImage loadJSON loadFont loadStrings (https://p5js.org/reference/p5/preload) cnv createCanvas200 cnvmouseClicked 12] bind' mouseClicked issue passed (https://p5js.org/reference/p5/mouseClicked) Scope += 5] defined scope check spelling letter-casing JavaScript case-sensitive https://p5js.org/examples/data-variable-scope.html Spelling xolor1 2] accidentally written xolor (https://p5js.org/reference/p5/color) `checkForUserDefinedFunctions` Checks user-defined `setup` `draw` `mouseMoved` capitalization mistake `fescheckUserDefinedFns` checkForUserDefinedFunctionscontext context Current Set window mode instance loadImage'myimagepng' preLoad intentional /friendly\\_errors/fes\\_corejs `helpForMisusedAtTopLevelCode` `fesmisusedTopLevel` err {Boolean} log false ๐ Limitations False Positive versus Negative Cases encounter positives negatives positive alarm warns fine hand negative doesnt alert important identify fix save time make things confusing fixing real problems easier less-than-ideal situations design chosen eliminate choose avoid incorrect warnings distract mislead Related `fesGlobalErrors` detect overwritten variables declared `const` `var` Variables undetected limitation `let` handles variable instantiation resolved functionality web editor details pull request \\[[#4730](https://github.com/processing/p5.js/pull/4730/)]. Performance Issue enabled disabled `p5minjs` prevent slowing process error-checking system significantly slow \\~10x [Friendly performance test](https://github.com/processing/p5.js-website/tree/main/src/assets/learn/performance/code/friendly-error-system/). disable top sketch p5disableFriendlyErrors true disables stuff drawing note action features reduce argument impact providing detailed fails attempt override space Thoughts Future Work Decouple \\[[#5629](https://github.com/processing/p5.js/issues/5629/)] Eliminate Identify Add test coverage - intuitive clear translatable discussion internationalization i18n Book](https://almchung.github.io/p5-fes-i18n-book/en/). common generalize `bezierVertex` `quadraticVertex` required object initiated `nf` `nfc` `nfp` `nfs` Conclusion README outlined structure explains organization purpose making navigate understand Additionally provided included discuss potential areas improvement development excited share insights community Survey conducted 2021-2022 findings [21-22 Report Comic](https://almchung.github.io/p5jsFESsurvey/) Full Report](https://observablehq.com/@almchung/p5-fes-21-survey/). TODO uncomment publish article ways add methods recommend [How Messages]#/ takes adding step-by-step"},"๐ธ p5.js Friendly Error System (FES)\n":{"relativeUrl":"/contribute/friendly_error_system","description":"{/* overview system p5js provide errors friendly language */} ## Overview Friendly Error System FES ๐ธ aims programmers providing error messages simple supplements browser's console adding alternative description links helpful references prints window [p5js Web Editor] browser JavaScript single minified file p5 p5minjs omits https://editor.p5js.org/ Lowering Barriers Debugging design tool match people lower barriers debugging exception evaluate existing hear directly ran community survey gather feedback future wishes Errors insights members contributors results summary comic full report * [21-22 Survey Report Comic] Full Report] https://almchung.github.io/p5jsFESsurvey/ https://observablehq.com/@almchung/p5-fes-21-survey Writing Messages contribute library writing translating part [internationalization] effort generate content [i18next]-based `translator` function dynamic message generation languages including English - default contributions world ๐ https://github.com/processing/p5.js/blob/main/contributor_docs/archive/internationalization.md [i18next] https://www.i18next.com/ #### Practices writers prioritize lowering barrier understanding increasing accessibility process [Friendly i18n Book] discusses challenges practices cross-cultural context points book Understand audience make assumptions learn inclusive strive bias harm Adhere Code Conduct] sentences breaking sentence smaller blocks utilizing i18next's [interpolation] feature Prioritize communication great experience Avoid figures speech Introduce technical concept term time consistency link external resource written beginner-friendly plenty short practical examples https://almchung.github.io/p5-fes-i18n-book/ https://www.i18next.com/translation-function/interpolation https://github.com/processing/p5.js/blob/main/CODE_OF_CONDUCT.md#p5js-code-of-conduct [expert blind spots] https://tilt.colostate.edu/TipsAndGuides/Tip/181 public project separate [repo] https://github.com/almchung/p5-fes-i18n-book Location Translation Files based i18next imported `src/core/internationalizationjs` generates text data JSON translation ``` translations/{{detected locale code default=en}}/translationjson detected Korean designator `ko` read translated `translations/ko/translationjson` assemble final include regional information `es-PE` Spanish Peru Structure `translationjson` [format i18next](https://www.i18next.com/misc/json-format/). basic format file's item key double quotation marks `` closed curly brackets `{}` ```json { } ASCII logo saved \\n /\\\\| |/\\\\ \\\\ ` / \\\\/|_|\\\\/ \\n\\n supports interpolation pass variable dynamically `{{}}` set placeholder greeting {{who}} `greeting` `who` ```javascript translator'greeting' result generated `fes`'s `fileLoadError` demonstrates image problem loading {{suggestion}} call pre-generated `suggestion` translator'fesfileLoadErrorimage' suggestion Add Modify [internationalization doc] step-by-step guide modifying files Understanding Works section give displays detailed functions [FES Reference + Dev Notes] https://github.com/processing/p5.js/tree/main/src/core/friendly_errors#fes-reference-and-notes-from-developers calls multiple locations situations throws user API custom cases benefit find core components inside `src/core/friendly_errors` `translations/` Message Generators responsible catching generating [`_friendlyFileLoadError`] catches [`_validateParameters`] checks input parameters inline documents \\[`_fesErrorMonitor`] handles global reference [Dev /fes_contribution_guidemd#_friendlyerror /fes_contribution_guidemd#_validateparameters [`_fesErrorMontitor`] /fes_contribution_guidemd#feserrormonitor /fes_contribution_guidemd#-development-notes Displayer `fes_corejs/_friendlyError` p5_friendlyError translator'fesglobalErrorstypenotfunc' translationObj called Turning [disable performance] `p5disableFriendlyErrors` turn `true` p5disableFriendlyErrors = true setup createCanvas100 automatically https://github.com/processing/p5.js/wiki/Optimizing-p5.js-Code-for-Performance#disable-the-friendly-error-system-fes"},"How to add Friendly Error Messages\n":{"relativeUrl":"/contribute/how-to-add-friendly-error-messages","description":"{/* support Friendly Errors method Follow step-by-step guide */} walks steps write Error FE messages System FES ๐ธ supports custom error handling outputs logs user dynamically generated [i18next](https://www.i18next.com/)-based `translator` p5js provide translations matching environment ## โ๏ธNo `p5minjs` * integrated \\[i18next] codebase usage limited unminified build minified version includes basic framework internationalization code actual implementation Browserify task `src/core/initjs` specific logic avoid loading setting result adding affect size Prerequisites begin identify cases describes case requires number types arguments [โ Adding Parameter Validation FES]#-adding-parameter-validation-using-fes involves type file catch errors files [๐ฅ Adding File Loading FES]#-handling-file-loading-error-messages-with-fes written detects occurred show [๐ Library Messages FES]#-adding-library-error-messages-using-fes โ parameter validation ### Step โ Double-check inline documentation ensure [inline documentation]/contributing_to_the_p5js_reference/ full list parameters `circle` starts description ``` /** Draws circle canvas round shape point edge distance center default set location sets shape's width height diameter origin changed ellipseMode function @method @param {Number} x-coordinate y-coordinate @chainable @example circle30 describe'A white black outline middle gray canvas' */ validate Call `p5_validateParameters` back call `validate_params` format `p5_validateParameters'[name method]' arguments` produce message ```js p5_validateParameters'circle' called provided match expectations line p5prototypecircle = { const args Arrayprototypeslicecallarguments argspusharguments[2] return this_renderEllipseargs } Build test typical action rebuild `p5js` `npm run build` find `/lib/empty-example/indexhtml` replace script `/p5minjs` `/p5js` Note `lib/p5minjs` doesnt `lib/p5js` edit `/lib/empty-example/sketchjs` Missing Wrong expressions // circle100 required Notice successfully draws hello' generate [sketchjs 9] expecting received (https://p5js.org/reference/p5/circle) 14] 12] Number string Congratulations ๐ ๐ฅ Handling Check load divided distinct helpful occurs lets separate situations read data font large found top `core/friendly_errors/file_errorsjs` add `fileLoadErrorCases` existing applied string-based corresponds `case 3` translator'fesfileLoadErrorstrings' suggestion loadStrings scenario remember skip ahead [**Step 4**]#step-4 2**]#step-2 create Discuss issue board ticket discuss creating confirm duplicate Write short paragraph describing loads [issue board](https://github.com/processing/p5.js/issues/), press Issue button choose ๐ก Existing Feature Enhancement option empty form Add title lines \\[a high-level case] Increasing access section enter prepared beginning step check box sub-area question Lastly enhancement details detailing confirming maintainers ready Inside `fileLoadErrorCases`s `switch` statement end {{next number}} translator'fesfileLoadError{{tag name}}' {{name method}} double angle brackets `{{}}` instance previous start 12` braces final `p5_friendlyFileLoadError` `p5_friendlyFileLoadError[case number] [file path]` inside statements `loadStrings` [`httpDo.call()`](https://p5js.org/reference/p5/httpDo/) callback executed p5prototypehttpDocall args[0] GET' text' => [ omitted ] functionerr p5_friendlyFileLoadError3 calls `p5_friendlyFileLoadError3 [the argument problem text checking path assets/wrongnametxt correct hosting online running local server + info https://github.com/processing/p5.js/wiki/Local-server implementing ๐ detect users applicable providing fail-safes values missing Identify [This MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Control_flow_and_error_handling/) good overview options control flow JavaScripts native constructs \\\\ `p5_friendlyError` `p5_friendlyError'[custom message]' [method name]'` Replace including square `bezierVertex` p5_friendlyError vertex calling bezierVertex' bezierVertex 19] library stated passed (https://p5js.org/reference/p5/bezierVertex) โ๏ธ Writing international audiences writers prioritize lowering barrier understanding increasing accessibility debugging process 7] shown Korean browser `ko-KR` locale ์ค7] ์ต์ 3๊ฐ์ ์ธ์argument๋ฅผ ๋ฐ๋ ํจ์ circle์ ์ธ์๊ฐ 1๊ฐ๋ง ์ ๋ ฅ๋์์ต๋๋ค [Friendly i18n Book](https://almchung.github.io/p5-fes-i18n-book/) discusses challenges practices writing cross-cultural context main points book Understand audience make assumptions learn language inclusive strive friendly bias harm simple sentences breaking sentence smaller blocks utilize [i18next's interpolation feature.](https://www.i18next.com/translation-function/interpolation/) Prioritize communication great experience languages Avoid figures speech Introduce technical concept term time consistency link external resource beginner-friendly plenty practical examples public project contribute [this repo.](https://github.com/almchung/p5-fes-i18n-book/) ๐ Optional Unit tests unit bugs early delivering intended contributors accidentally break interfere functionality guides testing [Unit Testing Test Driven Development](https://archive.p5js.org/learn/tdd.html) Andy Timmons [Contributors Doc Testing]/unit_testing/ suite'validateParameters multi-format' test'color optional incorrect type' assertvalidationErrorfunction p5_validateParameters'color' [0 A'] Conclusion instructions include Additionally excited share insights community Survey conducted 2021-2022 findings formats [21-22 Report Comic](https://almchung.github.io/p5jsFESsurvey/) Full Report](https://observablehq.com/@almchung/p5-fes-21-survey/) in-depth information design aspects refer [FES README document]/friendly_error_system/ document detailed explanations development notes beneficial seeking deeper"},"Release process\n":{"relativeUrl":"/contribute/release_process","description":"{/* updates GitHub turned version library */} ## Approach * follow [semver](https://semver.org/) versioning pattern means `MAJORMINORPATCH` Requirements Git nodejs NPM installed system build push access remote repository Secret `NPM_TOKEN` set `ACCESS_TOKEN` Security tokens release steps run fully [repository secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository) created [here](https://docs.npmjs.com/creating-and-viewing-access-tokens/) create read publish token user belongs project personal `p5js` `p5js-website` `p5js-release` repositories generated [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token/) scopes choose `repo` `workflow` recommended organization specific account limit account's write required Usage ```sh $ git checkout main npm [major|minor|patch] Choose tag origin v142 Replace number ``` actual Actions CI Monitor check results commands executed action monitored [Actions tab](https://github.com/processing/p5.js/actions/) p5js repo page job clicking give detailed log running [Screenshot job]src/content/contributor-docs/images/release-actionpng completed released Check [release](https://github.com/processing/p5.js/releases/) [NPM](https://www.npmjs.com/package/p5/) pages latest view draft make changelog website updated deploy relevant page](https://github.com/processing/p5.js-website/actions/) desired [Downloads page](https://p5js.org/download/) CDNs bit time day update automatically pull *** happening Action [New release]/github/workflows/releaseyml triggered matches `v***` `npm ___` command Clone setup extract install dependencies `npm` test test` Create files uploaded releases Update Copy `datajson` `dataminjson` location `p5minjs` `p5soundminjs` `datayml` file `enjson` based Commit back Bower libraries principle concentrate place environment step defined workflow part configuration Testing testing difficult [act](https://github.com/nektos/act/) locally tested developed requires temporary modifications definition roughly document precise change requirements present mocha Chrome tests needed `apt` setting rest eye error messages information packages missing pushing commented avoid accidentally unintended"},"Steward Guidelines\n":{"relativeUrl":"/contribute/steward_guidelines","description":"{/* Learn manage review contributions p5js */} contribution active GitHub repositories find guide stewardship expect stewards volunteer started steward read ## Table Contents * [Stewardship]#stewardship [Community Care]#community-care [Areas]#areas [Becoming Steward]#becoming-a-steward [Getting Started Stewardship]#getting-started-with-stewardship [Issues]#issues [Bug report]#bug-report [Feature request]#feature-request enhancement]#feature-enhancement [Discussion]#discussion [Pull Requests]#pull-requests [Simple fix]#simple-fix fix]#bug-fix [New feature/feature enhancement]#new-feature-feature-enhancement [Dependabot]#dependabot [Build Process]#build-process [Main build task]#main-build-task [Miscellaneous tasks]#miscellaneous-tasks [Release Process]#release-process [Tips Tricks]#tips--tricks [Reply templates]#reply-templates [GitHub CLI]#github-cli [Managing notifications]#managing-notifications *** Stewardship ### Community Care open source ethos includes [accessibility education collaboration transparency agency](https://www.opensourceethos.net/). live practice values write code lot community care practices part definition Welcoming contributors **friendly comments** helpful **code reviews** Helping **facilitate feature discussions** resolve technical disagreements means making connections past discussion offering input prior relevant experience Suggesting features working Participating releases software **supporting** bug fixing completion guiding reviewing PRs Fixing bugs rest guidelines provide tips tricks effectively contribute helpfully written stated adapt shown suit workflow invited happy API design feedback concrete roles Contributors make Issues Comments Code Reviews Maintainers merge admin parts codebase Stewards responsibility stewarding area comment issues reviews tagged contributor check current repository's README file tag - mindful emphasize patience mindfulness work open-source project hope regularly chime guidance Areas areas responsible match Labels cases couple exceptions list **Accessibility** specifically refers digital web accessibility including screen reader support `describe` reference website **Core** Refers core rendering environment **DevOps** process unit testing aspects development **Documentation** Includes exposed docs content i18n Internationalization / **Translation** translations `es` `hi` `ko` `zh` **Graphics** subareas WebGL [p5.strands](https://beta.p5js.org/tutorials/intro-to-p5-strands/) **Color** Color ColorMode improvements color usage **Typography** topics handling text font **Math** external Math internal performance **Shapes** custom shapes 111x 2x versions **Maintainers** group **p5soundjs** [new p5.sound.js](https://github.com/processing/p5.sound.js) add-on library **p5js-website** Non-content [reference website](https://p5js.org/) structure automations focus change time depending applying proposals Steward ways *Nomination* maintainers conversation Discord Discourse *Application* creating PR update `stewardsyml` proposed mind 1-3 **translation stewards** application additional supporting material related interested participating remain recent minor middle number frequent patches rightmost expected 4-6 months necessarily writing step remove pause reapply future guideline handy Feature request section [access statement]/access/ helping answer questions apply Processing Foundation [guideline answering questions](https://discourse.processing.org/t/guidelines-answering-questions/2145/) giving constructive Join [p5js Discord](https://discord.com/invite/SHQ8dH25r9) `#contribute-to-p5` suggest improved encourage start issue place discussions steps depend kind repo templates](https://github.com/processing/p5.js/blob/main/.github/ISSUE_TEMPLATE/) order organize kinds authors information problems filled-out template determining fields filled incorrect Bug report Found typical addressing reports Replicate goal reviewer attempt replicate question reported opened p5js-website Transfer access leave filed direct link provided close replication replicated required determine fix straightforward tricky refer principles]/contributor_guidelinesmd#software-design-principles decision case-by-case basis author Approve leaving assigning cog button side Assignee Leave recognizing replicable Attempt add `help wanted` label signal needing info version browser OS differs specific Add setup occur editor locally case redirected [web repo](https://github.com/processing/p5.js-web-editor/). back stems user behavior Determine documentation implementation friendly error system prevent mistake made Kindly redirect [forum](https://discourse.processing.org/) [Discord](https://discord.com/invite/SHQ8dH25r9) Request requests commitment increase increases communities historically marginalized field details [here]/access/ Increasing Access sufficiently statement member reviewers assessed inclusion based criteria fit scope [design drawing primitive shape considered adopt browser-based IOT protocol narrow avoid excessive bloat rarely implement addon unclear fits good idea proof-of-concept helps give users importance complete solution fully integrated breaking conflict existing functions variables sketches Features conflicts [major release](https://docs.npmjs.com/about-semantic-versioning/), achieved functionalities simple native JavaScript easy-to-use libraries providing function join array strings `join[Hello world]` `[Hello world]join` preferred requirement considerations fulfilled approve begin documented enhancement Existing Enhancement similar difference blurry deals requesting added Similar accepted point [section above]#feature-request Inclusion enhancements attention paid potential modifying previous valid signatures behave approved maintainer Discussion type minimal gather topic general coalescing sorts closed finishes resulting created correct applied removed Additional requested included repositories/contribution process/contribution forum labels glance Pull Requests happen pull push encouraged follow > contributing found [here](https://github.com/processing/p5.js/blob/main/.github/PULL_REQUEST_TEMPLATE.md). discussed meaning [issue workflow]#issues reviewed instances typo fixes require merged exception exists words doubt applies solve referenced edit original post Resolves #OOOO Addresses automatically Simple small directly Check Files Changed tab ensure automated CI test passes [The files changed viewing GitHub]src/content/contributor-docs/images/files-changedpng checks passed indicator highlighted button]src/content/contributor-docs/images/all-checks-passedpng ideally initially implemented tested CLI streamline Tricks]#tips-tricks [ ] address behaviors agreed significant impact modern standard coding pass tests include line comments lines [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request). suggestion block changes\\ Suggest Change request]src/content/contributor-docs/images/suggest-changepng\\ [A suggested appearing fences tag]src/content/contributor-docs/images/suggested-value-changepng\\ previewed diff]src/content/contributor-docs/images/suggestion-previewpng multiple dont single-line times procedure [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request/) multiple-line single clarification choose Comment option circled Finish Review menu]src/content/contributor-docs/images/comment-reviewpng mark Approved choosing desired @[all-contributors](https://allcontributors.org/docs/en/emoji-key/) bot called READMEmd `[contribution` `type]` full types `@all-contributors` `please` `add` `@[GitHub` `handle]` `for` notable Dependabot visible admins skip [semver](https://semver.org/) patch semver long quick changelog updated dependency recommended major affect target processes functioning due dependencies bump numbers drop official Nodejs Build cover commands happening scenes [contributors guidelines]/contributor_guidelinesmd#working-on-p5js-codebase detailed Gruntfilejs main definitions tools limited Grunt Browserify YUIDoc ESLint Babel Uglify Mocha `default` task backward document explainer Main ``` gruntregisterTask'default' ['lint' test'] run `grunt` npm script `npm test` default consisting `lint` `test` #### Task gruntregisterTask'lint' ['lintsource' lintsamples'] consists tasks `lintsource` `lintsamples` subdivided `eslintbuild` `eslintsource` `eslinttest` scripts `yui` `yuidocprod` `cleanreference` `minjson` extract JSON unused minify generated `dataminjson` `eslint-samplessource` [/tasks/build/eslint-samplesjs]/tasks/build/eslint-samplesjs convention built lint examples ```js gruntregisterTask'test' build' connectserver' mochaChrome' mochaTest' nycreport `build` gruntregisterTask'build' browserify' browserifymin' uglify' browserifytest Tasks `browserify` defined [/tasks/build/browserifyjs]/tasks/build/browserifyjs differences builds `browserifymin` intermediate minified data needed FES `uglify` takes output final p5minjs configuration `browserifytest` building identical coverage reporting [Istanbul](https://istanbul.js.org/)). `fsreadFileSync` nodejs replaced file's actual `brfs-babel` inline shader separate node\\_modules transpiled [Browserslist](https://browsersl.ist/) packagejson ES6 import statements CommonJS `require` browserify understands enables newer syntax worrying compatibility bundling bundled `pretty-fast` meant cleaned formatting bit consistent anticipate inspected left linked closer connectserver spins local server hosting Chrome mochaChrome [/tasks/test/mocha-chromejs]/tasks/test/mocha-chromejs Puppeteer spin headless remote controlled runs HTML `/test` folder unminified suites mochaTest `mochaChrome` subset set expanded Finally print console Test monitoring points 100% covers Miscellaneous `npx grunt [step]` covered yuidev spinning serves functionally page [http://localhost:9001/docs/reference/](http://localhost:9001/docs/reference/). monitor rebuild `yuidev` move repository preview slightly simplified confident show correctly Note modifications styling layout watch watchmain watchquick series thing `watch` running detecting `watchmain` `watchquick` Depending save manually Release [release\\_processmd]/release_process/ Tips overwhelming put things easier utilize Reply templates [Saved Replies](https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/about-saved-replies/) authoring reply responding replies redirecting accepting Saved Replies efficient create ##### Closing Reproduce reproduce feel free reopen sample demonstrates Snippet closing organizational purposes snippet illustrates Forum tutorials GSOC discuss [forum](https://discourse.processing.org/c/summer-of-code/). interest clear explanation [expands access]/access/ Addon great starting [Creating Library]/creating_libraries/ Issue reminder tracking keeping ahead Merged Reviewing complex difficult git PR's Fortunately CLI](https://cli.github.com/) tool greatly installing logging command `gh pr checkout [pull_request_id]` fetching fork branch checking switching `git main` visit webpage Managing notifications tabs clicking Watch eye icon top opposite [Cropped screenshot corner showing buttons center Sponsor Fork Starred]src/content/contributor-docs/images/github-repo-metricspng watching events mentions handle activities subscribed [notification page](https://github.com/notifications/), marked dismissed email inbox receive emails customize unsubscribing completely [notifications settings page](https://github.com/settings/notifications/). Setting issues/PRs overwhelmed endless balance @mentions"},"Unit Testing\n":{"relativeUrl":"/contribute/unit_testing","description":"{/* Guide writing tests p5js source code */} Unit testing essential part large codebase stay bug-free small pieces aim test individual components larger base correctness making function class creating object instances correctly unit ensure functions librarys introduce bugs unexpected behavior called regression Tests run `npm test` command terminal guide walk process implementing adding feature existing changing implement relevant ## Prerequisites * foundation Contributor guidelines local development setup inside Files folders test-related files located `test` folder wont focus `unit` subfolder subfolders roughly correspond `src` time counterpart composed modules module public Testing frameworks [Mocha](https://mochajs.org) runner responsible running providing solid framework reporting results long output Mocha doesnt assertion library collection handy lets properties values equal type throws error [Chai's `assert` `expect`)](https://www.chaijs.com/api/assert/) write statements behave Writing start pick variable Lets `p5prototypekeyIsPressed` beginning understand expected *expected behavior* `keyIsPressed` `true` key pressed `false` keys cases boolean - alphabet number special multiple `suite` built-in provided environment file `test/unit/events/keyboardjs` find additional `setup` `teardown` describes case checks single feature/behavior tested argument passed description suite/test purpose give clear suite press ```js suite'p5prototypekeyIsPressed' { test'keyIsPressed boolean' //write } true press' false pressed' ``` structured written Chai's `myp5` defined top section callback creates instance mode sketch myp5 setupfunctiondone p5functionp psetup = `p` parameter access variables assigned functionalities Remember previously mentioned Chai //Asserts assertisBooleanmyp5keyIsPressed create actual practice means condition similar statement throw Chais `assertisBoolean` check `myp5keyIsPressed` [documentation](https://www.chaijs.com/api/assert/) kinds things method behaves correct Adding add component Generally path `test/unit` `src/color/p5Colorjs` `test/unit/color/p5Colorjs` added make copy rename match delete inserting keeping teardown suite'module_name' myID myCanvasID' cnv pcreateCanvas100 cnvidmyID teardownfunction myp5remove `spec` `test/unit/specjs` loaded // test/unit/specjs var spec typography ['attributes' loadFont' p5Font' yourModule'] grouped representing function/variable expand suite'p5prototypeyourFunction' test'should [test something]' assertions suites needed didnt Conventions conventions practices follow `test`s self-contained rely Test minimal thing accepts arguments Prefer `expect` Running straightforward takes simply bit repetitive tricks streamline `npx grunt watchmain` automatically build save manually frequent mark skipped `skip` `only` syntax suiteskip'p5prototypeyourFunction' suiteonly'p5prototypeyourFunction' `grunt yuidev` launch server reference live [`http://127.0.0.1:9001/test/test.html`](http://127.0.0.1:9001/test/test.html) browser debugger middle log complex objects filter search term `grep=` URL [`http://127.0.0.1:9001/test/test.html?grep=framebuffer`](http://127.0.0.1:9001/test/test.html?grep=framebuffer) Visual sketches unexpectedly change implementation features visual lives `test/unit/visual/cases` Inside sample calls `screenshot` visualTest'2D maintain size' functionp5 screenshot p5createCanvas50 p5WEBGL p5noStroke p5fill'red' p5rectModep5CENTER p5rect0 p5width/2 p5height/2 filename list `test/visual/visualTestListjs` Additionally continuous integration pull request `visual` generate screenshots intentionally matching `test/unit/visual/screenshots` re-run inspect [http://127.0.0.1:9001/test/visual.html](http://127.0.0.1:9001/test/visual.html) CI optimizing speed advantageous concise avoid unnecessary frames minimize canvas size load assets specific functionality address scenarios involving operations asynchronous 3D model rendering returning promise resolves completing ensuring efficiency approach visualSuite'3D Model rendering' visualTest'OBJ displayed correctly' Return Promise waits operation complete return Promiseresolve => Load asynchronously p5loadModel'unit/assets/teapotobj' p5background200 p5rotateX10 p5rotateY10 p5modelmodel comparison Resolve completion resolve *Both 1x include system diffing algorithm robust system* operating systems browsers render graphics subtle variations differences normal fail Common acceptable Single-pixel shifts line positions Slight anti-aliasing Text font weight kerning Minor curve smoothness text rendered macOS slightly Linux applies thin lines curves graphical elements image earlier caused environments [Example]src/content/contributor-docs/images/pixelmatch2png sophisticated distinguish Initial Compares pixels moderate threshold identify [pixelmatch](https://github.com/mapbox/pixelmatch/) pixel Cluster identification Groups connected difference Breadth-First Search BFS Pattern recognition specifically identifies Line shift clusters represent element shifted 1px Isolated noise Smart failure criteria Applies thresholds Ignores smaller total significant Permits minor typical platforms [Example]src/content/contributor-docs/images/pixelmatchpng balances sensitivity real tolerating platform-specific parameters const MIN_CLUSTER_SIZE Minimum cluster MAX_TOTAL_DIFF_PIXELS Maximum allowed analyzing neighborhood 80% โค2 neighbors classified structural intelligent ensures due catching important note improved pass failed detecting showing visually meaningful makes reliable reduces failures require manual investigation ### efficient sizes dimensions close 50x50 resizes images canvases result faster Focus visible details intricate hard Design demonstrate reduced cramming variants call times visualTest'stroke variations' stroke p5stroke0 p5strokeWeight1 p5line10 Screenshot thick p5strokeWeight5"},"p5.js Web Accessibility\n":{"relativeUrl":"/contribute/web_accessibility","description":"{/* Understand p5js Web Accessibility features make sketch accessible */} document describes structure web accessibility contributors sketches [screen reader](https://en.wikipedia.org/wiki/Screen_reader/)-accessible, visit [Writing Accessible Canvas Descriptions](https://p5js.org/tutorials/writing-accessible-canvas-descriptions/) tutorial screen reader [Using Screen Reader tutorial](https://p5js.org/tutorials/p5js-with-screen-reader/). canvas HTML element grid pixels doesnt provide reader-accessible information shapes drawn functions readers providing [fallback text](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage#accessible_content) descriptions Ill describe details implementation ## Prerequisites * foundation Contributor guidelines local development setup inside label code Library-generated outputs basic supports library-generated `textOutput` `gridOutput` user-generated `describe` `describeElement` inserted child elements `` work snippet serve ```js function { createCanvas400 } draw background#ccccff textOutput fillorange ellipse100 fillfuchsia rect300 ``` [An orange circle pink square light purple canvas]src/content/contributor-docs/images/sketch-with-shapespng creates output present general description includes size color number > lavender blue list position area shape top left covering 1% canvas\\ fuchsia bottom 2% selected table provided location coordinates location=top area=1%\\ = generates ```html Text Output white lays content form based spatial background objects object types cell depending type circle\\ individually *orange %* *fuchsia generated Grid % user passes `LABEL` argument additional created \\ visible version embedded non-screen users display create unnecessary redundancy recommend part process removing publishing sharing [A text earlier it]src/content/contributor-docs/images/sketch-text-outputpng ### Outputs located [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js), updated distributed library section support #### outputsjs [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js) public methods activate setting `this_accessibleOutputstext` `this_accessibleOutputsgrid `to `true` calling `this_createOutput'textOutput' Fallback'` `this_createOutput'gridOutput' passed parameter method activates `this_accessibleOutputstextLabel` calls Label'` file private `_createOutput` Depending vary initializes `thisingredients` stores data including `shapes` `colors` `pShapes` string previous `thisdummyDOM` exist HTMLCollection DOM `_updateAccsOutput` called end `setup` `draw` accessibleOutputs differs current update `_updateTextOutput` `_updateGridOutput` Calling ingredients helps avoid overwhelming access divs constantly updating `_addAccsOutput` `this_accessibleOutputs` returns true `this_accessibleOutputsgrid` `_accsBackground` `background` resets `thisingredientsshapes` `this_rgbColorName` store `thisingredientscolorsbackground` `_accsCanvasColors` fill stroke updates colors saving `thisingredientscolorsfill` `thisingredientscolorsstroke` names `_accsOutput` Builds creating src/accessibility call helper gather needed include `_getMiddle` Returns middle point centroid rectangles arcs ellipses triangles quadrilaterals `_getPos` left' mid right' `_canvasLocator` 10\\*10 mapped `_getArea` percentage total outputjs `p5prototypetriangle` `p5prototype_renderRect` `p5prototypequad` `p5prototypepoint` `p5prototypeline` `p5prototype_renderEllipse` `p5prototypearc` `p5prototyperedraw` `p5prototyperesizeCanvas` `this_setup` `p5Renderer2Dprototypestroke` `p5Renderer2Dprototypefill` `p5Renderer2Dprototypebackground` textOutputjs [src/accessibility/textOutput.js](https://github.com/processing/p5.js/blob/main/src/accessibility/textOutput.js) main build summary Building supported `p5` prototype `_textSummary` `_shapeDetails` `_shapeList` gridOutputjs [src/accessibility/gridOutput.js](https://github.com/processing/p5.js/blob/main/src/accessibility/gridOutput.js) `this_accessibleOutputsgridLabel` maps `_gridSummary` `_gridMap` `_gridShapeDetails` line color\\_namerjs naming important [src/accessibility/color\\_namer.js](https://github.com/processing/p5.js/blob/main/src/accessibility/color_namer.js) `_rgbColorName` receives RGBA values [src/accessibility/outputs.js](https://github.com/processing/p5.js/blob/main/src/accessibility/outputs.js). `p5color_conversion_rgbaToHSBA` HSV `_calculateColor` [colorNamer.js](https://github.com/MathuraMG/color-namer/), developed [2018 Processing Foundation fellowship](https://medium.com/processing-foundation/making-p5-js-accessible-e2ce366e05a0/) consultation blind expert comparing stored `colorLookUp` array returning closest User-generated author-defined optional determines displayed [src/accessibility/describe.js](https://github.com/processing/p5.js/blob/main/src/accessibility/describe.js): `_descriptionText` Checks `FALLBACK` ensures ends punctuation mark ' adds improve readability `_describeHTML` Creates fallback tag adjacent background'pink' fill'red' noStroke circle67 circle83 triangle91 describe'A red heart bottom-right corner' LABEL page reading corner]src/content/contributor-docs/images/sketch-text-output2png describeElement groups meaning custom-drawn made multiple lines Heart corner `_elementName` checks colon character `_describeElementHTML` div describeElement'Heart' circle666 circle832 triangle912 yellow background' corner]src/content/contributor-docs/images/sketch-text-output3png"},"WebGL Contribution Guide\n":{"relativeUrl":"/contribute/webgl_contribution_guide","description":"{/* started working p5js WebGL mode source code */} reading page interested helping work grateful exists explain structure contributions offer tips making ## Resources * Read [p5js architecture overview]/webgl_mode_architecture/ understand differs 2D valuable reference implementation specifics shaders strokes [contributor guidelines]/contributor_guidelines/ information create issues set codebase test helpful bit browser's API p5js's built top [WebGL fundamentals](https://webglfundamentals.org/) core rendering concepts [The Book Shaders](https://thebookofshaders.com/) explains techniques Planning organize open [in GitHub Project](https://github.com/orgs/processing/projects/20/), divide types **System-level changes** longer-term goals far-reaching implications require discussion planning jumping **Bugs solution yet** bug reports debugging narrow ready fixed found discuss fix solutions PR** bugs decided free write **Minor enhancements** features obvious spot current needing fit agreed worth **2D features** exist expected behavior feature implemented match user requirements clear **Features contexts** ways methods coordinates 3D break generally begin **Feature requests** change requests make things mode's roadmap **Documentation** documentation Put Code related `src/webgl` subdirectory directory top-level functions split files based subject area commands light `lightingjs` materials `materialsjs` implementing user-facing classes file class occasionally internal utility `p5Framebufferjs` includes `p5Framebuffer` additionally consists framebuffer-specific subclasses main `p5RendererGL` large handles lot reason functionality description put #### `p5RendererGLjs` Initialization `p5RendererGLImmediatejs` Functionality **immediate mode** drawing shapes stored reused `beginShape` `endShape` `p5RendererGLRetainedjs` **retained reuse `sphere` `materialjs` Management blend modes `3d_primitivesjs` User-facing draw `triangle` define geometry treating input generic shape `Textjs` text Testing ### Consistency hard manually verify add unit tests confident pass adding works check consistency resulting pixels ```js test'coplanar 2D' function { const getColors = functionmode myp5createCanvas20 myp5pixelDensity1 myp5background255 myp5strokeCapmyp5SQUARE myp5strokeJoinmyp5MITER === myp5WEBGL myp5translate-myp5width/2 -myp5height/2 } myp5stroke'black' myp5strokeWeight4 myp5fill'red' myp5rect10 myp5fill'blue' myp5rect0 myp5loadPixels return [myp5pixels] assertdeepEqualgetColorsmyp5P2D getColorsmyp5WEBGL ``` turn antialiasing slightly straight lines axes WebGL-only comparing ensure color expect day robust system compares full image snapshots results pixel test'color interpolation' renderer myp5createCanvas256 // upper lower center myp5beginShape myp5fill200 myp5vertex-128 -128 myp5vertex128 myp5fill0 myp5endShapemyp5CLOSE assertequalrenderer_useVertexColor true assertdeepEqualmyp5get128 [100 255] Performance #1 concern hit performance Typically creating sketches compare frame rates advice measure Disable friendly errors `p5disableFriendlyErrors true` sketch `p5minjs` include error Display average rate sense steady state frameRateP avgFrameRates [] frameRateSum numSamples setup createP frameRatePposition0 frameRate / avgFrameRatespushrate += avgFrameRateslength > -= avgFrameRatesshift frameRatePhtmlroundframeRateSum + avg fps' cases stress parts pipeline complicated model long curve simple `line` called times loop"},"p5.js WebGL Mode Architecture\n":{"relativeUrl":"/contribute/webgl_mode_architecture","description":"{/* overview design decisions make WebGL mode motivation */} document intended contributors library makers extend codebase sketches reading tutorials [on p5js Tutorials page](https://p5js.org/tutorials/#webgl) ## renderers run 2D user [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/) built web browser rendering high-performance 3D graphics key difference direct access computer's GPU allowing performantly render shapes perform image processing tasks track progress issues [a GitHub Project.](https://github.com/orgs/processing/projects/20/) Goals evaluating feature aligns goals **Features beginner-friendly** provide beginner-friendly introduction features offers means offer simple APIs cameras lighting shaders support advanced interfere simplicity core **Improving parity mode** frictionless transition making click easily users create work shader aims superset mode's **Simplicity extensibility paramount** small extensible libraries Keeping makes easier optimize reduce bug surface area Extension avenue include **Improve performance** fast interfering previous Good performance accessible wide variety viewers devices designing ensure performant implementation give preference Design differences browser's canvas context levels abstraction generally lower-level higher-level motivates fundamental p5js's modes * **WebGL creates deeply nested data structures** passes commands leading shallow call stacks contrast responsible breaking triangles caching future reuse complicated logic necessitates splitting code number classes `p5Texture` `p5RenderBuffer` `p5DataArray` implementations readable maintainable customization** control curves rendered converting picks default `curveDetail` API lets line segments predict balance quality case high- low-level APIs** finer-grained faced task picking level high unable advantage low pass managing complexity Drawing ### Creating fills strokes geometry drawn consists draw shape ready component composed calls function `circle` `beginShape` `vertex` renderer [break series points](https://github.com/processing/p5.js/blob/main/src/webgl/3d_primitives.js). points connected lines trigonometry figure place circle `curveVertex` `bezierVertex` look-up tables turn Bรฉzier curve #### Fills outline filled drawing functions `beginShapeTRIANGLE_STRIP` made [libtess](https://github.com/brendankenny/libtess.js/) break [p5.RendererGL.Immediate.js](https://github.com/processing/p5.js/blob/main/src/webgl/p5.RendererGL.Immediate.js), polygon outlines `_processVertices` libtess turns format screen Strokes varying widths styles expand centers form expansion types joins caps illustrated Generated https://codepen.io/davepvm/pen/ZEVdppQ connect add join miter extends edges rectangles intersect point bevel connects corners straight round circular arc switching recompute quad extent bounds display pixels present selected style illustrate fits similar strategy stroke disconnected ends cap square extended determines calculated change based camera's perspective avoid recalculation store information camera-dependent **center line** model space shown red **direction tangent start end blue pink helps compute **a flag uniquely identifies corner shape** Combined normal 90-degree rotation determine direction thickness combine camera intrinsics produce final positions Rendering retained **immediate **retained **Immediate optimized frame time drew spend storing saves memory variations `quadraticVertex` called `endShape` `rect` rounded `bezier` `curve` `line` `image` Retained redrawing dont re-triangulating sending saved `p5Geometry` object stores triangle uploaded buffers Calling `freeGeometry` clears re-upload `sphere` `cone` internally `buildGeometry` runs collects p5Geometry returns redrawn efficiently Materials lights single pick write materials system scene reacts light including color shininess Custom material behavior Shaders **Color Shader** flat colors activated `fill` `stroke` **Lighting complex textures Activated calling `lights` `ambientLight` `directionalLight` `pointLight` `spotLight` adds list added contribute shading fill **Normal/Debug `normalMaterial` Lights Users set parameters position contributes view-independent view-dependent reflections reflection matches desired setting `specularColor` **color shader** properties **Fill color** Set applies `beginShape`/`endShape` apply vertex texture `texture` override mixed diffuse describes bright dark areas due directly cast **Specular material** specular reflected highlights shape's parameter `specularMaterial` unspecified **Shininess** `shininess` sharp **Ambient ambient Ambient constant omnidirectional `ambientMaterial` **Emissive `emissiveMaterial` producing Shader turned attributes uniforms reference custom supply automatically writers unclear Future section describe plans improving improve publicly documenting supporting Global objects contexts global `uniform mat4 uModelViewMatrix` matrix convert object-space camera-space uProjectionMatrix` mat3 uNormalMatrix` normals Additionally per-vertex `attribute vec3 aPosition` aNormal` pointing outward vec2 aTexCoord` coordinate referring location aVertexColor` optional bool uUseLighting` provided `uUseLighting` passed ##### int uAmbientLightCount` maximum uAmbientColor[5]` Directional uDirectionalLightCount` directional uLightingDirection[5]` Light directions uDirectionalDiffuseColors[5]` uDirectionalSpecularColors[5]` Point uPointLightCount` uPointLightLocation[5]` Locations uPointLightDiffuseColors[5]` Diffuse uPointLightSpecularColors[5]` Specular Spot uSpotLightCount` spot float uSpotLightAngle[5]` cone radii uSpotLightConc[5]` Concentration focus uSpotLightDiffuseColors[5]` uSpotLightSpecularColors[5]` uSpotLightLocation[5]` locations uSpotLightDirection[5]` Fill vec4 uMaterialColor` uUseVertexColor` Per-vertex isTexture` sampler2D uSampler` uTint` tint multiplier uSpecular` show uShininess` uSpecularMatColor` blend uHasSetAmbient` uAmbientMatColor` inputs Lines supplied uViewport` vector `[minX minY maxX maxY]` rectangle uPerspective` boolean projection uStrokeJoin` enum representing represent `ROUND` `MITER` `BEVEL` uStrokeCap` `PROJECT` `SQUARE` aTangentIn` segment aTangentOut` aSide` part details Points uPointSize` radius Classes ```mermaid --- title classDiagram class Base[p5Renderer] { } P2D[p5Renderer2D] WebGL[p5RendererGL] Geometry[p5Geometry] Shader[p5Shader] Texture[p5Texture] Framebuffer[p5Framebuffer] Base <|-- P2D o-- Geometry *-- Texture Framebuffer ``` entry **p5RendererGL** Top-level current conform common `p5Renderer` interface split `p5RendererGLImmediatejs` `p5RendererGLRetainedjs` references models stored `retainedModegeometry` map `modelyourGeometry` geometry's resources main `p5Graphics` entries represented `p5Shader` `shaderyourShader` handles compiling source uniform type `p5Image` `p5MediaElement` `p5Framebuffer` asset data's representation send images manually updated assets changed video Textures unique Framebuffers surfaces Unlike `p5Framebuffer`s live transferred CPU bottleneck extra transfer reason functional aim building blocks craft extensions block considered confidently commit major milestone sufficient ecosystem lacking extension **Extend richer content** accomplish supported stable update animated gltf group multiple imported unsupported **Enable brittle shaders** integrates forced scratch copy paste parts versions internal naming structure import pieces positioning augment [an issue open task.](https://github.com/processing/p5.js/issues/6144/) strike method introduce tune output faster lower-quality Line bottlenecks state benefit lower fidelity higher options methods usage patterns `endShapeshouldClose count` supports instanced efficient"}},"examples":{"Shape Primitives":{"relativeUrl":"/examples/shapes-and-color-shape-primitives","description":"program demonstrates basic shape primitive functions square rect ellipse circle arc line triangle quad"},"Color":{"relativeUrl":"/examples/shapes-and-color-color","description":"expands Shape Primitives adding color background fills canvas stroke sets drawing lines fill inside shapes noStroke noFill turn line Colors represented ways demonstrates options"},"Drawing Lines":{"relativeUrl":"/examples/animation-and-variables-drawing-lines","description":"Click drag mouse draw line demonstrates built-in variables mouseX mouseY store current position previous represented pmouseX pmouseY * shows colorMode HSB hue-saturation-brightness variable sets hue"},"Animation with Events":{"relativeUrl":"/examples/animation-and-variables-animation-with-events","description":"demonstrates loop noLoop pause resume animation Clicking mouse toggles stopped user press key advance frame Note click set focus canvas presses registered Advancing single accomplished calling redraw function results call draw"},"Mobile Device Movement":{"relativeUrl":"/examples/animation-and-variables-mobile-device-movement","description":"deviceMoved function runs mobile device displaying sketch moves accelerationX accelerationY accelerationZ values set position size circle works devices"},"Conditions":{"relativeUrl":"/examples/animation-and-variables-conditions","description":"statements block code run condition true animates mouse held statement line read p5 reference MDN Comparison operators form conditions comparing values hue circle resets comparison Logical combined && checks black fill horizontal center canvas white circle's position || reverses speed reaches left edge"},"Words":{"relativeUrl":"/examples/imported-media-words","description":"text function inserting canvas change font size loadFont fontSize functions aligned left center textAlign shapes colored fill"},"Copy Image Data":{"relativeUrl":"/examples/imported-media-copy-image-data","description":"copy method simulate coloring image copying colored top black-and-white cursor dragged"},"Alpha Mask":{"relativeUrl":"/examples/imported-media-alpha-mask","description":"mask method create image transparency parts run locally files running local server"},"Image Transparency":{"relativeUrl":"/examples/imported-media-image-transparency","description":"program overlays image modifying alpha tint function Move cursor left canvas change image's position run locally file running local server"},"Audio Player":{"relativeUrl":"/examples/imported-media-create-audio","description":"createAudio creates audio player displays player's controls adjusts speed playback normal mouse left edge window faster moves information media elements players p5MediaElement reference page file public domain piano loop Josef Pres"},"Video Player":{"relativeUrl":"/examples/imported-media-video","description":"noCanvas createVideo functions upload video DOM embedding canvas building embedded element visit Video Canvas"},"Video on Canvas":{"relativeUrl":"/examples/imported-media-video-canvas","description":"createVideo image functions upload video canvas capture passed constructor add filters filter method run locally running local server build embedding visit Video"},"Video Capture":{"relativeUrl":"/examples/imported-media-video-capture","description":"createCapture image functions device's video capture draw canvas passed constructor add filters filter method strategies uploading presenting styling videos visit Video Canvas examples"},"Image Drop":{"relativeUrl":"/examples/input-elements-image-drop","description":"drop p5js element method registers callback time file loaded uploaded created p5File class check type write conditional statements responding"},"Input and Button":{"relativeUrl":"/examples/input-elements-input-button","description":"createElement createInput createButton functions string text submitted input display canvas"},"Form Elements":{"relativeUrl":"/examples/input-elements-dom-form-elements","description":"Document Object Model DOM represents resulting structure web page p5js's form elements createInput createSelect createRadio build ways information submitted select input radio button update based"},"Translate":{"relativeUrl":"/examples/transformation-translate","description":"translate function moves origin coordinate system location push pop functions save restore drawing settings fill color Note draw shapes rectangle circle time"},"Rotate":{"relativeUrl":"/examples/transformation-rotate","description":"rotate function rotates current coordinate system origin Note default upper left corner canvas order center translate push pop functions save restore"},"Scale":{"relativeUrl":"/examples/transformation-scale","description":"scale function scales current coordinate system factor push pop functions save restore square size drawn origin scaling factors"},"Linear Interpolation":{"relativeUrl":"/examples/calculating-values-interpolate","description":"Interpolation calculates values number halfway types interpolation rates change Linear abbreviated lerp constant rate function linearly interpolates numbers Move mouse screen symbol follow drawing frame animation ellipse moves part distance current position cursor"},"Map":{"relativeUrl":"/examples/calculating-values-map","description":"map function converts range cursor's horizontal position 0-720 0-360 resulting circle's hue Map vertical 0-400 20-300 diameter"},"Random":{"relativeUrl":"/examples/calculating-values-random","description":"demonstrates random function user presses mouse button position color circle change randomly"},"Constrain":{"relativeUrl":"/examples/calculating-values-constrain","description":"draws circle cursor's position rectangle passing mouse's coordinates constrain function"},"Clock":{"relativeUrl":"/examples/calculating-values-clock","description":"current time read minute hour functions map calculate angle hands transformations set position"},"Color Interpolation":{"relativeUrl":"/examples/repetition-color-interpolation","description":"Interpolation calculates values number halfway types interpolation rates change Linear abbreviated lerp constant rate function linearly interpolates numbers lerpColor demonstrated colors stripeCount variable adjusts horizontal stripes Setting higher individual gradient"},"Color Wheel":{"relativeUrl":"/examples/repetition-color-wheel","description":"illustrates appearance hues loop repeat transformations initializes variable called angle rotation circle hue time repeats drawn relative center canvas push pop functions make affect individual"},"Bezier":{"relativeUrl":"/examples/repetition-bezier","description":"bezier curves created control anchor points parameters function point curve middle set define shape"},"Kaleidoscope":{"relativeUrl":"/examples/repetition-kaleidoscope","description":"kaleidoscope optical instrument reflecting surfaces tilted angle translate rotate scale functions replicate resulting visual canvas"},"Noise":{"relativeUrl":"/examples/repetition-noise","description":"Perlin noise algorithm written Ken produce sequences random organic function p5 produces dots sized based values slider left sets distance offset calculation"},"Recursive Tree":{"relativeUrl":"/examples/repetition-recursive-tree","description":"rendering simple tree-like structure recursion branching angle calculated function horizontal mouse location Move left change Based Daniel Shiffman's Recursive Tree Processing"},"Random Poetry":{"relativeUrl":"/examples/listing-data-with-arrays-random-poetry","description":"floor random functions randomly select series items array draw sizes positions canvas"},"Sine and Cosine":{"relativeUrl":"/examples/angles-and-motion-sine-cosine","description":"demonstrates sine cosine mathematical functions animation shows uniform circular motion unit circle radius angle measured x-axis determines point defined coordinates"},"Aim":{"relativeUrl":"/examples/angles-and-motion-aim","description":"atan2 function calculates angle positions rotate shape eyes cursor"},"Triangle Strip":{"relativeUrl":"/examples/angles-and-motion-triangle-strip","description":"demonstrates create shape vertices TRIANGLE_STRIP mode beginShape endShape vertex functions"},"Circle Clicker":{"relativeUrl":"/examples/games-circle-clicker","description":"demonstrates game time limit score browser's local storage stores high played browser remains Clearing data clears"},"Ping Pong":{"relativeUrl":"/examples/games-ping-pong","description":"game inspired oldest arcade video games Atari's Pong two-player player controls paddle represented white rectangle keys move left arrow Players score points bouncing ball square past edge opponent's side canvas`"},"Snake":{"relativeUrl":"/examples/games-snake","description":"reproduction type arcade game called Snake Blockade released games structure player controls movements snake represented green line player's goal collide fruit red dot time collides grows longer grow long colliding edges play area array vectors store positions segments arrow keys control snake's movement"},"Geometries":{"relativeUrl":"/examples/3d-geometries","description":"p5's WEBGL mode includes primitive shapes plane box cylinder cone torus sphere ellipsoid Additionally model displays custom geometry loaded loadModel NASA's collection"},"Custom Geometry":{"relativeUrl":"/examples/3d-custom-geometry","description":"buildGeometry function stores shapes 3D model efficiently reused"},"Materials":{"relativeUrl":"/examples/3d-materials","description":"3D rendering material determines surface responds light p5's WEBGL mode supports ambient emissive normal specular materials source p5 displays color contexts typically emits visualizes direction part faces respond Ambient combined fill stroke Fill sets base object's vertices Additionally texture wraps object image model NASA's collection"},"Orbit Control":{"relativeUrl":"/examples/3d-orbit-control","description":"Orbit control mouse touch input adjust camera orientation 3D sketch rotate left click drag swipe screen pan multiple fingers move closer center scroll wheel pinch in/out"},"Filter Shader":{"relativeUrl":"/examples/3d-filter-shader","description":"Filter shaders apply effect canvas applied video"},"Adjusting Positions with a Shader":{"relativeUrl":"/examples/3d-adjusting-positions-with-a-shader","description":"Shaders adjust positions vertices shapes lets distort animate 3D models"},"Framebuffer Blur":{"relativeUrl":"/examples/3d-framebuffer-blur","description":"shader depth information p5Framebuffer apply blur real camera objects blurred closer farther lens's focus simulates effect sketch renders spheres framebuffer canvas"},"Create Graphics":{"relativeUrl":"/examples/advanced-canvas-rendering-create-graphics","description":"createGraphics function create p5Graphics object serve off-screen graphics buffer canvas Off-screen buffers dimensions properties current display surface existing space"},"Multiple Canvases":{"relativeUrl":"/examples/advanced-canvas-rendering-multiple-canvases","description":"default p5 runs Global Mode means functions global scope canvas-related apply single canvas run Instance methods instance class mode function defined parameter representing labeled variables typically belong function's Passing constructor"},"Shader as a Texture":{"relativeUrl":"/examples/advanced-canvas-rendering-shader-as-a-texture","description":"Shaders applied 2D/3D shapes textures learn shaders p5js"},"Snowflakes":{"relativeUrl":"/examples/classes-and-objects-snowflakes","description":"demonstrates particle system simulate motion falling snowflakes program defines snowflake class array hold objects"},"Shake Ball Bounce":{"relativeUrl":"/examples/classes-and-objects-shake-ball-bounce","description":"class create collection circles move canvas response tilt mobile device open page display sketch"},"Connected Particles":{"relativeUrl":"/examples/classes-and-objects-connected-particles","description":"custom classes Particle class stores position velocity hue renders circle current updates Path array objects created lines connecting particles user clicks mouse sketch creates instance drags adds path"},"Flocking":{"relativeUrl":"/examples/classes-and-objects-flocking","description":"Demonstration flocking behavior Full discussion implementation found Nature Code book Daniel Shiffman simulation based research Craig Reynolds term boid represent bird-like object"},"Local Storage":{"relativeUrl":"/examples/loading-and-saving-data-local-storage","description":"Browsers websites store data visitor's device called local storage getItem storeItem clearStorage removeItem functions control inspired Daniel Shiffman's Loading JSON Data Tabular examples Processing written Java class organize bubble visitor add bubbles saved revisits sketch reload"},"JSON":{"relativeUrl":"/examples/loading-and-saving-data-json","description":"JavaScript Object Notation JSON format writing data file syntax contexts based Daniel Shiffman's Loading Data Processing written Java class organize bubble sketch starts loads bubbles visitor add download updated load"},"Table":{"relativeUrl":"/examples/loading-and-saving-data-table","description":"Comma-Separated Values CSV format writing data file p5 work p5Table based Daniel Shiffman's Loading Tabular Data Processing class organize representing bubble sketch starts loads bubbles visitor add download updated load"},"Non-Orthogonal Reflection":{"relativeUrl":"/examples/math-and-physics-non-orthogonal-reflection","description":"demonstrates ball bouncing slanted surface implemented vector calculations reflection code makes extensive p5Vector class including createVector function create vectors methods add dot"},"Soft Body":{"relativeUrl":"/examples/math-and-physics-soft-body","description":"Physics simulation soft body experiencing acceleration mouse position shape created curves curveVertex curveTightness"},"Forces":{"relativeUrl":"/examples/math-and-physics-forces","description":"Demonstration multiple forces acting bodies Bodies experience gravity continuously fluid resistance water natureofcodecom force calculations performed p5Vector class including createVector function create vectors"},"Smoke Particles":{"relativeUrl":"/examples/math-and-physics-smoke-particle-system","description":"Smoke particle system demo based Dan Shiffman's original Processing code makes p5Vector class including createVector function calculations updating particles positions velocities performed methods implemented array objects Particle"},"Game of Life":{"relativeUrl":"/examples/math-and-physics-game-of-life","description":"Game Life cellular automaton created mathematician John Conway type simulation grid cells cell dead alive black squares represent living white runs switch based set rules live fewer neighbours dies lives unchanged generation life generate complex interactions Click canvas start randomized Clicking restart"},"Mandelbrot Set":{"relativeUrl":"/examples/math-and-physics-mandelbrot","description":"Colorful rendering Mandelbrot set based Daniel Shiffman's Processing"}},"libraries":{"AnimatorJs":{"relativeUrl":"/libraries/","description":"A javascript animation viewer based on a custom animation API primarily designed for p5.js and allows for dynamic, lightweight, real-time rendered browser animations controlled purely by code."},"BasicECSJs":{"relativeUrl":"/libraries/","description":"A basic javascript ECS system, with SceneManagers, Scenes and GameObjects with their own Start and Update functions."},"BasicUnitTesterJs":{"relativeUrl":"/libraries/","description":"BasicUnitTesterJs is a basic javascript unit tester designed to work on all JS platforms and be small and streamlined for the best developer experience."},"DoubleLinkedListLibJs":{"relativeUrl":"/libraries/","description":"A simple double linked list that stores the head, tail and length of the list"},"MatrixJs":{"relativeUrl":"/libraries/","description":"A basic javascript library for dynamic and powerful matrices based on lists wrapped around with a powerful class."},"OneWayLinkedListLibJs":{"relativeUrl":"/libraries/","description":"A simple one way linked list that stores the head, tail and length of the list"},"Pixyp5js":{"relativeUrl":"/libraries/","description":"A library for easily more easily dealing with pixels in images during runtime"},"Tilemapp5js":{"relativeUrl":"/libraries/","description":"A simple to use & performant tilemap p5.js library"},"TurtleGFX":{"relativeUrl":"/libraries/","description":"TurtleGFX allows to code with Turtle Graphics in JavaScript. Great for education and creative coding."},"TurtleGraphics":{"relativeUrl":"/libraries/","description":"Watch images being drawn using turtle graphics."},"VecJs":{"relativeUrl":"/libraries/","description":"A basic javascript library for dynamic vectors (e.g. vec2 & vec3) based on lists."},"WebGL2FBO":{"relativeUrl":"/libraries/","description":"A simple library for OOP encapsulation and abstraction of some of WebGL2 Framebuffers and the Renderbuffers they rely on"},"WebGL2Tex":{"relativeUrl":"/libraries/","description":"A simple library for OOP encapsulation and abstraction of some of the different WebGL2 textures while still giving full control over them."},"Zoomp5js":{"relativeUrl":"/libraries/","description":"A simple library for adding the zooming functionality to your p5.js project."},"BMWalker.js":{"relativeUrl":"/libraries/","description":"A simple JavaScript library for drawing the biological motion 'Walker'."},"c2.js":{"relativeUrl":"/libraries/","description":"c2.js is a JavaScript library for creative coding based on computational geometry, physics simulation, evolutionary algorithm and other modules."},"canvasGUI":{"relativeUrl":"/libraries/","description":"Create GUI controls directly on your canvas."},"concaveHull":{"relativeUrl":"/libraries/","description":"Calculate a Concave Hull from a set of points in 2D space"},"HY5":{"relativeUrl":"/libraries/","description":"hydra ๐ p5.js ~ share visuals between both frameworks!"},"lygia":{"relativeUrl":"/libraries/","description":"LYGIA is a shader library of reusable functions that will let you prototype, port or ship a project in just few minutes. It's very granular, flexible and efficient. Support multiple shading languages and can easily be added to any project, enviroment or framework of your choice. \n"},"ml5.js":{"relativeUrl":"/libraries/","description":"Friendly machine learning for the webโa neighborly approach to creating and exploring artificial intelligence in the browser."},"nรบmero":{"relativeUrl":"/libraries/","description":"A friendly and intuitive math library for p5.js."},"p5-phone":{"relativeUrl":"/libraries/","description":"Mobile hardware access for p5.js - Simplifies accessing phone hardware, locks default gestures, and adds an onscreen console."},"p5.5":{"relativeUrl":"/libraries/","description":"Add UI to p5.js and other goodies"},"p5.FIP":{"relativeUrl":"/libraries/","description":"Real-time image processing library - add filters and post-processing to your p5.js sketches."},"p5.Modbuttons":{"relativeUrl":"/libraries/","description":"a simple and modular button system for p5js"},"p5.Polar":{"relativeUrl":"/libraries/","description":"p5.Polar provides mathematical abstractions making it easy to create create beautiful, kaleidoscopic, radial patterns."},"p5.SceneManager":{"relativeUrl":"/libraries/","description":"p5.SceneManager helps you create sketches with multiple states / scenes. Each scene is a like a sketch within the main sketch."},"p5.Sprite":{"relativeUrl":"/libraries/","description":"A basic sprite library that supports both animated and static sprites for p5.js"},"p5.Utils":{"relativeUrl":"/libraries/","description":"p5.Utils is a tool collection for my coding class, featuring a pixel ruler, gradient fill color bindings, and other helpful shortcuts for beginners."},"p5.anaglyph":{"relativeUrl":"/libraries/","description":"A library for creating 3D stereoscopic 3D scenes and images using red/cyan glasses"},"p5.animS":{"relativeUrl":"/libraries/","description":"Animates p5.js shapes by rendering their drawing processes."},"p5.asciify":{"relativeUrl":"/libraries/","description":"Apply real-time ASCII conversion to your favorite WEBGL p5.js sketches instantly."},"p5.bezier":{"relativeUrl":"/libraries/","description":"p5.bezier helps draw Bรฉzier curves with more than four control points and closed curves."},"p5.ble":{"relativeUrl":"/libraries/","description":"A Javascript library that enables communication between your BLE devices and your p5.js sketch."},"p5.brush":{"relativeUrl":"/libraries/","description":"Unlock custom brushes, natural fill effects and intuitive hatching in p5.js."},"p5.capture":{"relativeUrl":"/libraries/","description":"Record your p5.js sketches effortlessly!"},"p5.cmyk":{"relativeUrl":"/libraries/","description":"CMYK color for p5.js"},"p5.collide2d":{"relativeUrl":"/libraries/","description":"p5.collide2D provides tools for calculating collision detection for 2D geometry with p5.js."},"p5.colorGenerator":{"relativeUrl":"/libraries/","description":"p5.colorGenerator generates harmonious color schemes by starting from a given base color or selecting a random color as a starting point."},"p5.comfyui-helper":{"relativeUrl":"/libraries/","description":"A library for interfacing with ComfyUI"},"p5.createLoop":{"relativeUrl":"/libraries/","description":"Create animation loops with noise and GIF exports in one line of code."},"p5.csg":{"relativeUrl":"/libraries/","description":"A library for constructive solid geometry. Do Boolean operations on your p5.Geometry to make new shapes!"},"p5.fab":{"relativeUrl":"/libraries/","description":"p5.fab controls digital fabrication machines from p5.js!\n"},"p5.fillGradient":{"relativeUrl":"/libraries/","description":"Fill shapes in p5.js with Linear, Radial and Conic Gradients."},"p5.filterRenderer":{"relativeUrl":"/libraries/","description":"A library for rendering 3D scenes with depth-of-field blur and with ambient occlusion shadows."},"p5.flex":{"relativeUrl":"/libraries/","description":"p5 container with responsive canvas feature."},"p5.fps":{"relativeUrl":"/libraries/","description":"Add a simple FPS counter to your sketches."},"p5.geolocation":{"relativeUrl":"/libraries/","description":"p5.geolocation provides techniques for acquiring, watching, calculating, and geofencing user locations for p5.js."},"p5.glitch":{"relativeUrl":"/libraries/","description":"p5.js library for glitching images and binary files in the web browser"},"p5.grain":{"relativeUrl":"/libraries/","description":"Conveniently add film grain, seamless texture overlays, and manipulate pixels to achieve nostalgic and artistic effects in p5.js sketches and artworks."},"p5.joystick":{"relativeUrl":"/libraries/","description":"Connect and play with physical joysticks."},"p5.localessage":{"relativeUrl":"/libraries/","description":"p5.localmessage provides a simple interface to send messages locally from one sketch to another."},"p5.mapper":{"relativeUrl":"/libraries/","description":"A projection mapping library for p5.js"},"p5.marching":{"relativeUrl":"/libraries/","description":"Raster to vector conversion, isosurfaces."},"p5.palette":{"relativeUrl":"/libraries/","description":"A library to manage color palettes in p5.js"},"p5.party":{"relativeUrl":"/libraries/","description":"quickly prototype networked multiplayer games and apps"},"p5.pattern":{"relativeUrl":"/libraries/","description":"A pattern drawing library for p5.js."},"p5.qol":{"relativeUrl":"/libraries/","description":"Extend p5 with Quality of Life utilities."},"p5.quadrille.js":{"relativeUrl":"/libraries/","description":"A library for creating puzzle and board games, and for visual computing experiments."},"p5.Riso":{"relativeUrl":"/libraries/","description":"p5.Riso is a library for generating files suitable for Risograph printing. It helps turn your sketches into multi-color prints."},"p5.scaler":{"relativeUrl":"/libraries/","description":"Smart scaling of p5.js sketches in a variety of ways (to fit the browser's inner dimensions, to fit the canvas DOM container, to a specific ratio, etc)."},"p5.serialserver":{"relativeUrl":"/libraries/","description":"p5.serialserver is a p5.js library that enables communication between your p5.js sketch and a serial enabled device, for example, an Arduino microcontroller."},"p5.simpleAR":{"relativeUrl":"/libraries/","description":"A simple JavaScript library that easily converts existing p5.js sketches to AR."},"p5.spatial.js":{"relativeUrl":"/libraries/","description":"Adds multichannel audio support for p5.sound.js."},"p5.speech":{"relativeUrl":"/libraries/","description":"p5.speech provides simple, clear access to the Web Speech and Speech Recognition APIs, allowing for the easy creation of sketches that can talk and listen."},"p5.teach.js":{"relativeUrl":"/libraries/","description":"A beginner friendly math animation library for p5.js"},"p5.toio":{"relativeUrl":"/libraries/","description":"A JavaScript library for controlling toioโขCore Cube from p5.js sketches."},"p5.touchgui":{"relativeUrl":"/libraries/","description":"p5.touchgui is intended to extend p5.js and make it easy to add buttons, sliders, and other GUI (graphical user interface) objects to your p5.js sketches, enabling you to focus on quickly iterating ideas with easily created GUI objects that work with both mouse and multi-touch input."},"p5.transparency":{"relativeUrl":"/libraries/","description":"In WebGL mode, you may have noticed that transparent images still occlude other objects as if they're opaque. This library provides helper functions you can surround each item with to make your items blend better."},"p5.treegl":{"relativeUrl":"/libraries/","description":"Shader development and space transformations WEBGL p5.js library."},"p5.tween":{"relativeUrl":"/libraries/","description":"With p5.tween you can create easily animations as tween in a few keyframes."},"p5.videorecorder":{"relativeUrl":"/libraries/","description":"Record your canvas as a video file with audio."},"p5.warp":{"relativeUrl":"/libraries/","description":"Fast 3D domain warping using shaders."},"p5.webserial":{"relativeUrl":"/libraries/","description":"A library for interacting with Serial devices from within the browser, based on Web Serial API (available on Chrome and Edge)."},"p5.woff2":{"relativeUrl":"/libraries/","description":"An addon to add support for WebGL rendering, textToPoints, and related text methods for woff2 fonts. Load a Google Fonts URL and you're good to go!"},"p5.xr":{"relativeUrl":"/libraries/","description":"A library for creating VR and AR sketches with p5."},"p5grid":{"relativeUrl":"/libraries/","description":"Hexagonal Tiling Library"},"p5jsDebugCam":{"relativeUrl":"/libraries/","description":"A basic keyboard only debug camera for p5.js"},"p5mirror":{"relativeUrl":"/libraries/","description":"A library to download your editor.p5js sketches into a git repo or locally"},"p5play":{"relativeUrl":"/libraries/","description":"JS game engine that uses p5.js for graphics and Box2D for physics."},"p5snap":{"relativeUrl":"/libraries/","description":"a command-line interface to create snapshots of sketches"},"p5videoKit":{"relativeUrl":"/libraries/","description":"A dashboard for mixing video in the browser"},"pretty-grid":{"relativeUrl":"/libraries/","description":"Create and manipulate grids with Javascript"},"rita.js":{"relativeUrl":"/libraries/","description":"tools for natural language and generative writing"},"Shader Park":{"relativeUrl":"/libraries/","description":"Explore shader programming through a JavaScript interface without the complexity of GLSL. Quickly script shaders using a P5.js style language."},"simple.js":{"relativeUrl":"/libraries/","description":"Helper functions and defaults for young and new coders."},"svg-shapes-p5js":{"relativeUrl":"/libraries/","description":"A SVG drawing library for p5.js."},"Total Serialism":{"relativeUrl":"/libraries/","description":"A toolbox full of methods for procedurally generating and transforming arrays mainly focused on algorithmic composition. Includes methods like markov-chain, cellular automaton, lindenmayer system, euclidean distribution and much more! Generate the array with your desired method and easily iterate over them in a for-loop to draw the results."},"UI Renderer":{"relativeUrl":"/libraries/","description":"Create a UI within your sketch, including utilities for different layouts and interactive sliders."},"WEBMIDI.js":{"relativeUrl":"/libraries/","description":"A user-friendly library to send and receive MIDI messages with ease."},"XYscope.js":{"relativeUrl":"/libraries/","description":"p5.js library to render graphics on analog vector displays"}},"events":{"p5.js Contributors Conference 2015":{"relativeUrl":"/events/contributors-conference-2015","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro VimeoEmbed ///components/VimeoEmbed/indexastro group approximately participants gathered spent week [Frank-Ratchye STUDIO Creative Inquiry](http://studioforcreativeinquiry.org/), advancing code documentation community outreach tools p5js programming environment Participants Hong Kong Seattle Los Angeles Boston York working professionals fields creative technology interaction design new-media arts included half-dozen undergraduate graduate students Carnegie Mellons Schools Art Architecture [A smile make p5 sign hands]/images/cc2015/2015_1jpg [Woman presenting statement laptop]/images/cc2015/2015_3jpg expressively speaks microphone male collaborators on]/images/cc2015/2015_4jpg [Participants attentively listen presentation]/images/cc2015/2015_5jpg reads female students]/images/cc2015/2015_6jpg sit circle white board sticky notes student microphone]/images/cc2015/2015_7jpg table laptops compare code]/images/cc2015/2015_8jpg [Whiteboard colored written programming]/images/cc2015/2015_9jpg speaking valuing skill sets powerpoint classroom]/images/cc2015/2015_10jpg podium auditorium stage skyping screen]/images/cc2015/2015_11jpg [Overhead view classroom laptops]/images/cc2015/2015_12jpg [Five people discussion circle]/images/cc2015/2015_13jpg sharing notes]/images/cc2015/2015_14jpg [Man participants]/images/cc2015/2015_15jpg jump throw hands air green lawn]/images/cc2015/2015_2jpg Introduction Casey Reas Johanna Hedva Stephanie Pi Phoenix Perry Taeyoon Choi Sara Hendren Epic Jefferson Chandler McWilliams Q&A ## [Jason Alderman](http://huah.net/jason/), [Sepand Ansari](http://sepans.com/), [Tega Brain](http://tegabrain.com/), [Emily Chen](https://medium.com/@emchenNYC/), [Andres Colubri](http://andrescolubri.net/), [Luca Damasco](https://twitter.com/lucapodular), [Guy de Bree](http://guydebree.com/), [Christine Carteret](http://www.cjdecarteret.com/), [Xy Feng](http://xystudio.cc/), [Sarah Groff-Palermo](http://www.sarahgp.com/), [Chris Hallberg](http://www.crhallberg.com/), [Val Head](http://valhead.com/), [Johanna Hedva](http://johannahedva.com/), [Kate Hollenbach](http://www.katehollenbach.com/), [Jennifer Jacobs](http://web.media.mit.edu/~jacobsj/), [Epic Jefferson](http://www.epicjefferson.com/), [Michelle Partogi](http://michellepartogi.com/), [Sam Lavigne](http://lav.io/), [Golan Levin](http://flong.com/), [Cici Liu](http://www.liuchangitp.com/), [Maya Man](http://www.mayaman.cc/), [Lauren McCarthy](http://lauren-mccarthy.com/), [David Newbury](http://www.workergnome.com/), [Paolo Pedercini](http://molleindustria.org/), [Luisa Pereira](http://luisaph.com/), [Miles Peyton](http://mileshiroo.info/), [Caroline Record](http://carolinerecord.com/), [Berenger Recoules](http://b2renger.github.io/), [Stephanie Pi](https://pibloginthesky.wordpress.com/), Sigal](http://jasonsigal.cc/), [Kevin Siwoff](http://studioindefinit.com/), [Charlotte Stiles](http://charlottestiles.com/) Diversity Alongside technical development main focuses conference diversity began panelโ[Diversity Voices Race Gender Ability Class FLOSS Internet](http://studioforcreativeinquiry.org/events/diversity-seven-voices-on-race-gender-ability-class-for-floss-and-the-internet). Organized Hedva](http://johannahedva.com/) panel place Tuesday Kresge Auditorium Mellon University Speakers [Casey Reas](http://reas.com/), [Phoenix Perry](http://phoenixperry.com/), [Taeyoon Choi](http://taeyoonchoi.com/), [Sara Hendren](http://ablersite.org/), [Chandler McWilliams](http://chandlermcwilliams.com/). poster Internet]/images/cc2015/diversity_640jpg Support contributor Inquiry](http://studioforcreativeinquiry.org/) academic laboratory atypical anti-disciplinary inter-institutional research intersections science culture event made grant [National Endowment Arts](https://arts.gov/), generous support [NYU Interactive Telecommunications Program](https://tisch.nyu.edu/itp) ITP [Processing Foundation](http://foundation.processing.org/), [TheArtificial](http://theartificial.nl/), [Bocoup](http://bocoup.com/), [Darius Kazemi](http://tinysubversions.com/), [Emergent Digital Practices | Denver] **Thank you** [The National Arts NEA]/images/logo/artworksjpg Frank-Ratchye Inquiry]/images/logo/frank-ratchyepng ITP]/images/logo/itppng Emergent program Denver]/images/logo/edppng [ITP]/images/logo/bocouppng Artificial]/images/logo/theartificialpng undefined"},"p5.js Contributors Conference 2019":{"relativeUrl":"/events/contributors-conference-2019","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro interdisciplinary group participants gathered Frank-Ratchye STUDIO Creative Inquiry advancing code documentation community outreach tools exploring current landscape p5js programming environment Comprising diverse range fields creative technology interaction design media arts conference aimed fostering dialogue multidisciplinary lens Working groups focused topic areas Access Music Code Performance Landscape Tech Internationalization Videos Qianqian Ye [Man podium giving presentation group]/images/cc2019/2019_1jpg [Participants sitting long table lunch discussion]/images/cc2019/2019_2jpg [Classroom working laptops]/images/cc2019/2019_4jpg meeting dark classroom]/images/cc2019/2019_5jpg [Woman classroom participants]/images/cc2019/2019_6jpg conversing busy classroom]/images/cc2019/2019_7jpg microphone speaking fellow classroom]/images/cc2019/2019_8jpg [Participant speaks front projected text problem anonymyzing data]/images/cc2019/2019_9jpg [Person reads add features increase access]/images/cc2019/2019_10jpg talking ]/images/cc2019/2019_11jpg [A man participants]/images/cc2019/2019_12jpg sit speakers listening intently]/images/cc2019/2019_13jpg sacred boundaries projection her]/images/cc2019/2019_15jpg [Overhead view panel people image 3d rendered it]/images/cc2019/2019_16jpg laptops observe screen]/images/cc2019/2019_17jpg lifesize teddy bear works laptop]/images/cc2019/2019_18jpg standing smiling]/images/cc2019/2019_19jpg [Four circle conversing]/images/cc2019/2019_20jpg eating together]/images/cc2019/2019_21jpg large shaped classroom]/images/cc2019/2019_22jpg energetically microphone]/images/cc2019/2019_23jpg [Group campfire made LCD monitors]/images/cc2019/campfirejpg photo smiling enthusiastically hands air]/images/cc2019/2019_24jpg Photos Jacquelyn Johnson ## Participants American Artist Omayeli Arenyeka Sina Bahram Aatish Bhatia Natalie Braginsky Jon Chambers Luca Damasco Aren Davey Ted Davis Carlos Garcia Stalgia Grigg Kate Hollenbach shawnรฉ michaelain holloway Claire Kearney-Volpe Sona Lee Kenneth Lim Evelyn Masso Lauren McCarthy LaJunรฉ McMillian Allison Parrish Luisa Pereira Guillermo Montecinos Aarรณn Montoya-Moraga Luis Morales-Navarro Shefali Nayak Everest Pipkin Olivia Ross Dorothy Santos Yasheng Jun Shern Chan Cassie Tarakajian Valley Xin Alex Yixuan Xu Outputs - Blackness Gender Virtual Space led art installations prototype notebook interface Created library system p5 Editor Prototypes connecting libraries Global Contributor's Toolkit write non-violent zine overhaul website accessibility Including updates screen reader improvements home download started reference pages contributions p5grid implementation highly flexible triangle square hexagon octagon girds p5multiplayer set template files building multi-device multiplayer game multiple clients connect host page L05 Experiments P5LIVE testing early implementations softCompile OSC interfacing added connectivity demo MIDI setup collaborative live-coding vj Collaborative performances performance Workshops closing Golan Levin Support contributor place Carnegie Mellon University academic laboratory atypical anti-disciplinary inter-institutional research intersections science culture event grant National Endowment Arts generous support Processing Foundation Mozilla Clinic Open Source COSA Denver NYU Tandon IDM ITP FHNW Academy Art Design DePaul College Computing Digital Media Parsons School Technology **Thank you** [The NEA]/images/logo/artworksjpg Inquiry]/images/logo/frank-ratchyepng [University Applied Sciences Northwestern Switzerland Design]/images/logo/northwestern-switzerlandjpg [Processing Foundation]/images/logo/processing-foundationpng [Clinic Arts]/images/logo/COSApng [NYU Engineering Integrated Media]/images/logo/nyujpg [Parsons Technology]/images/logo/Parsonsjpg ITP]/images/logo/itppng [DePaul University]/images/logo/depaulpng undefined"},"p5.js Access Day 2022":{"relativeUrl":"/events/p5js-access-day-2022","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js Access Day virtual conference talk access open-source software arts OSSTA greater issues day-long online event features themed-sessions โ Critical Web Accessibility Disability Arts Community Building Translation space contributors experienced practitioners projects share knowledge perspectives dreams building technical spaces Organizer curator [Qianqian Ye](https://qianqian-ye.com/) Event Coordinator Video Producer [Karen Abe](https://www.instagram.com/prod.ka/) ## Recap ASL Interpretation Opening Moderator [Kate Hollenbach](http://www.katehollenbach.com/), Speakers [Luis Morales-Navarro](http://luismn.com/), [Jes Daigle](https://twitter.com/techandautism) [Xiaowei Wang](https://www.xiaoweiwang.com/), [Natalee Decker](https://www.instagram.com/crip_fantasy/), [Kemi Sijuwade-Ukadike](https://www.linkedin.com/in/adekemisijuwade), [Kevin Gotkin](https://kevingotkin.com/) [Dorothy Santos](https://dorothysantos.com/), [Tiny Tech Zine](https://tinytechzines.org/), [Close Isnt Home](https://closeisnthome.com/), [Zainab Aliyu](https://zai.zone/) [Kenneth Lim](https://limzykenneth.com/), [Inhwa Yeom](https://yinhwa.art/), [Shaharyar Shamshi](https://shaharyarshamshi.xyz/), [Felipe Gomes](https://felipesg.cargo.site/) Closing Production - Advisor [Claire Kearney-Volpe](http://www.takinglifeseriously.com/index.html), [Saber Khan](https://www.edsaber.info/), [evelyn masso](https://outofambit.format.com/), [Lauren Lee McCarthy](http://lauren-mccarthy.com/), [Xin Xin](https://xin-xin.info/) Live [Pro Bono ASL](https://www.probonoasl.com/) Graphic Designer [Katie Chan](https://twitter.com/katiechaan) Support Abe](https://www.instagram.com/prod.ka/), [Jay Borgwardt](https://www.jayborgwardt.com/), [Yuehao Jiang](https://yuehaojiang.com/) Closed Captioning Transcription Ju Hye Kim Xiao Yi Wang-Beckval Wong](https://www.instagram.com/claireewongg/) made grant [Mozilla Foundation](https://foundation.mozilla.org/) Award generous support [Processing Foundation](https://processingfoundation.org/) [Frank-Ratchye STUDIO Creative Inquiry](http://studioforcreativeinquiry.org/). **Thank you** Foundation]/images/logo/mozilla-foundationpng [The Frank-Ratchye Inquiry]/images/logo/frank-ratchyepng Foundation]/images/logo/processing-foundationpng undefined"},"p5.js Community Salon 2023":{"relativeUrl":"/events/p5js-community-salon-2023","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js Community Salon public gathering community members share connect NYU ITP Thursday March 630-730pm event group speakers briefly work food social time ## Organizers organized Project Lead [Qianqian Ye](https://qianqian-ye.com), part IMA/ITP Fellowship supported Sonia Choi Communications Coordinator Processing Foundation Photo credit [Ziyuan Lin](https://www.ziyuanlin.com). Ye holding mic big tv screen grid contributor photos it]/images/p5js-salon-2023/salon-2JPG Speakers Zainab Aliyu [Zainab image book reading excerpt it]/images/p5js-salon-2023/salon-3JPG Aarati Akkapedi [Aarati whiteboard collection printed them]/images/p5js-salon-2023/salon-4JPG [Suhyun work]/images/p5js-salon-2023/salon-5JPG Don Hanson [Don front work]/images/p5js-salon-2023/salon-6JPG Shawnรฉ Michaelain Holloway [Shawnรฉ work]/images/p5js-salon-2023/salon-7JPG Tsige Tafesse [Tsige Open Call]/images/p5js-salon-2023/salon-8JPG Rachel Lim [Rachel Web Editor Features]/images/p5js-salon-2023/salon-9JPG Jackie Liu [Jackie series screenshots game project Chao bing]/images/p5js-salon-2023/salon-10JPG Olivia McKayla Ross [Olivia p5 salon poster it]/images/p5js-salon-2023/salon-11JPG Munus Shih [Munus pronouns facts him]/images/p5js-salon-2023/salon-12JPG Xin [Xin text work]/images/p5js-salon-2023/salon-13JPG Lavanya Suresh [Lavanya Kolams]/images/p5js-salon-2023/salon-14JPG [p5js poster]/images/p5js-salon-2023/0-banner-p5js-community-salonjpg [A presenters organizers smiling making silly faces camera kneeling standing upright]/images/p5js-salon-2023/salon-15JPG audience sitting crowded room curious expression]/images/p5js-salon-2023/salon-16JPG ### Recap Video Part Support **Thank you** [NYU ITP]/images/logo/itppng undefined"},"Sovereign Tech Fund x p5.js Documentation Accessibility Project":{"relativeUrl":"/events/stf-2024","description":"import YouTubeEmbed ///components/YouTubeEmbed/indexastro Logos ///components/Logos/indexastro p5js selected receive total โฌ450000 rounds funding [Sovereign Tech Fund](https://sovereigntechfund.de/en) enhance [p5js Documentation organization accessibility](https://www.sovereigntechfund.de/tech/p5js). work part Sovereign Funds [Contribute Back Open Source Challenges](https://sovereigntechfund.de/en/challenges/). project addressed longstanding challenges scatterness limited accessibility documentation final deliverable includes updated website focus accessible organized translated contributor Additionally features curated collection community sketches add-ons library educational resources providing improved aims facilitate effective navigation feature exploration empowering users create richer innovative projects promotes inclusivity ensuring people diverse backgrounds skill levels cultures engage meaningfully ## Contributors brought approximately contributors 60-75 participating round team included experienced first-time forming global group dedicated writing translating designing engineering researching conducting reviews open-source typically operate independently fostered collective efforts encouraging collaboration individuals skills perspectives shift collaborative endeavors led cohesive synergistic approach advancing exemplifying strength community-driven initiatives landscape **Thank participated STF made ๐** Processing Foundation administrative support** ### Round *September December 2023* #### Internal Team * Project Lead Manager Qianqian Ye Doc Kenneth Lim Dave Pagurek Nick McIntyre Assistant Karen Abe Website Designer Stefanie Tam Tyler Yin Developer Bocoup cypress masso Stalgia Grigg Carmen Caรฑas Isaac Durazo Accessibility Consultant Andy Slater Proofreader Fivver Definition Workshop Organizer Winnie Koundinya Dhulipalla Facilitator Yasmine Boudiaf Jazmin Morris Participants UAL CCI Examples Caleb Foss Writer Darren Kessner Kathryn Lichlyter Reviewer Amy Chen Lance Cole Tutorials Writers Reviewers Joanne Amarisa Gregory Benedis-Grab Christine Belzie Tristan Bunn Julien Kris Ruth Ikegah Portia Morrell Jaleesa Trapp Akanksha Vyas WebGL Adam Ferriss Contributor Alm Chung Tanvi Kumar Luis Morales-Navarro Community Statement Code Conduct Oluwakemi Oritsejafor Zainab Aliyu *January April 2024* Copywriter Sarah Ciston sketch Curator Special Sinan Ascioglu OpenProcessing supporting Translation Researcher Spanish Steward Cristian Baรฑuelos Sebastiรกn Mรฉndez Diana Galindo Clavijo Xavier Gongora Marcela Martinez Galvan Emilio Ocelotl Reyes Marianne Teixido Guzmรกn Chinese Weijia Li Miaoye Chirui Cheng Lingxiao Wang Shengnan Angela Rong Yudi Wu Hindi Divyansh Srivastava Eshaan Aggarwal Akash Jaiswalm Aditya Rana Sanjay Singh Rajpoot Surbhi Pittie Korean Inhwa Yeom Sejin Yewon Jang Yunyoung Minwook Park Sunghun Hyunwoo Rhee Reference Technical Layla Quiรฑones Nat Decker thai Lu Cielo Saucedo Liam Coleman Revisions Kate Machmeyer Support supported Fund supports development improvement maintenance open digital infrastructure public interest goal strengthen source ecosystem sustainably focusing security resilience technological diversity code funded German Federal Ministry Economic Affairs Climate Action BMWK hosted Agency Disruptive Innovation GmbH SPRIND **Thanks project** Links [STF](https://www.sovereigntechfund.de/programs/challenges): Contribute Open-source Challenge [MEDIUM](https://medium.com/@ProcessingOrg/p5-js-receives-major-funding-from-the-sovereign-tech-fund-bbf61d1171fe): Receives Major Funding Fund]/images/logo/stfwebp undefined"}},"people":{"A Welles":{"relativeUrl":"/people/#a-welles"},"Aarati Akkapeddi ":{"relativeUrl":"/people/#aarati-akkapeddi-"},"Aaron Casanova":{"relativeUrl":"/people/#aaron-casanova"},"Aaron George":{"relativeUrl":"/people/#aaron-george"},"aarรณn montoya-moraga":{"relativeUrl":"/people/#aaron-montoya-moraga"},"Aaron Ni":{"relativeUrl":"/people/#aaron-ni"},"Aaron Welles":{"relativeUrl":"/people/#aaron-welles"},"Aatish Bhatia":{"relativeUrl":"/people/#aatish-bhatia"},"Abdiel Lopez":{"relativeUrl":"/people/#abdiel-lopez"},"Abe Pazos":{"relativeUrl":"/people/#abe-pazos"},"Abhay M Joshi":{"relativeUrl":"/people/#abhay-m-joshi"},"Abhi Gulati":{"relativeUrl":"/people/#abhi-gulati"},"Abhinav Kumar":{"relativeUrl":"/people/#abhinav-kumar"},"Abhinav Sagar":{"relativeUrl":"/people/#abhinav-sagar"},"Abhinav Srinivas":{"relativeUrl":"/people/#abhinav-srinivas"},"Abishake":{"relativeUrl":"/people/#abishake"},"Abu Harish Faridi":{"relativeUrl":"/people/#abu-harish-faridi"},"AC":{"relativeUrl":"/people/#ac"},"Acha":{"relativeUrl":"/people/#acha"},"Adam Ferriss":{"relativeUrl":"/people/#adam-ferriss"},"Adam Krรกl":{"relativeUrl":"/people/#adam-kral"},"Adam Smith":{"relativeUrl":"/people/#adam-smith"},"Adarsh":{"relativeUrl":"/people/#adarsh"},"Adil Rabbani":{"relativeUrl":"/people/#adil-rabbani"},"Aditya Deshpande":{"relativeUrl":"/people/#aditya-deshpande"},"Aditya Mohan":{"relativeUrl":"/people/#aditya-mohan"},"Aditya Rachman Putra":{"relativeUrl":"/people/#aditya-rachman-putra"},"Aditya Rana":{"relativeUrl":"/people/#aditya-rana"},"Aditya Shrivastav":{"relativeUrl":"/people/#aditya-shrivastav"},"Aditya Siddheshwar":{"relativeUrl":"/people/#aditya-siddheshwar"},"aditya123473892":{"relativeUrl":"/people/#aditya123473892"},"Adwaith D":{"relativeUrl":"/people/#adwaith-d"},"agrshch":{"relativeUrl":"/people/#agrshch"},"Ahmet Kaya":{"relativeUrl":"/people/#ahmet-kaya"},"Aidan Nelson":{"relativeUrl":"/people/#aidan-nelson"},"Aierie":{"relativeUrl":"/people/#aierie"},"Ajaya Mati":{"relativeUrl":"/people/#ajaya-mati"},"ajayTDM":{"relativeUrl":"/people/#ajaytdm"},"Ajeet Pratap Singh":{"relativeUrl":"/people/#ajeet-pratap-singh"},"Akash Jaiswal":{"relativeUrl":"/people/#akash-jaiswal"},"AKASH RAJ":{"relativeUrl":"/people/#akash-raj"},"Akash":{"relativeUrl":"/people/#akash"},"Akhil Raj":{"relativeUrl":"/people/#akhil-raj"},"Akshat Nema":{"relativeUrl":"/people/#akshat-nema"},"Akshay Padte":{"relativeUrl":"/people/#akshay-padte"},"al6862":{"relativeUrl":"/people/#al6862"},"Alberto Di Biase":{"relativeUrl":"/people/#alberto-di-biase"},"Alejandra Trejo":{"relativeUrl":"/people/#alejandra-trejo"},"Alejandro":{"relativeUrl":"/people/#alejandro"},"Alex Lyons":{"relativeUrl":"/people/#alex-lyons"},"Alex Troesch":{"relativeUrl":"/people/#alex-troesch"},"AliLordLoss":{"relativeUrl":"/people/#alilordloss"},"AlM Chng":{"relativeUrl":"/people/#alm-chng"},"Aloneduckling":{"relativeUrl":"/people/#aloneduckling"},"alp tuฤan":{"relativeUrl":"/people/#alp-tugan"},"Alza Alzaki":{"relativeUrl":"/people/#alza-alzaki"},"Amey Bhavsar":{"relativeUrl":"/people/#amey-bhavsar"},"anagondesign":{"relativeUrl":"/people/#anagondesign"},"Andrรกs Gรกrdos":{"relativeUrl":"/people/#andras-gardos"},"AndrasGG":{"relativeUrl":"/people/#andrasgg"},"andrei antonescu":{"relativeUrl":"/people/#andrei-antonescu"},"Andrew McWhae":{"relativeUrl":"/people/#andrew-mcwhae"},"Andy Timmons":{"relativeUrl":"/people/#andy-timmons"},"Animesh Sinha":{"relativeUrl":"/people/#animesh-sinha"},"Ankush Banik":{"relativeUrl":"/people/#ankush-banik"},"Anna Carreras":{"relativeUrl":"/people/#anna-carreras"},"Annie McKinnon":{"relativeUrl":"/people/#annie-mckinnon"},"anniezhengg":{"relativeUrl":"/people/#anniezhengg"},"Anshuman Maurya":{"relativeUrl":"/people/#anshuman-maurya"},"Anthony Su":{"relativeUrl":"/people/#anthony-su"},"Antoinette Bumatay-Chan":{"relativeUrl":"/people/#antoinette-bumatay-chan"},"Antonio Jesรบs Sรกnchez Padial":{"relativeUrl":"/people/#antonio-jesus-sanchez-padial"},"ANURAG GUPTA":{"relativeUrl":"/people/#anurag-gupta"},"Aqmalp99":{"relativeUrl":"/people/#aqmalp99"},"Arbaaz":{"relativeUrl":"/people/#arbaaz"},"Arihant Parsoya":{"relativeUrl":"/people/#arihant-parsoya"},"Arijit Kundu":{"relativeUrl":"/people/#arijit-kundu"},"Arijit":{"relativeUrl":"/people/#arijit"},"Armaan Gupta":{"relativeUrl":"/people/#armaan-gupta"},"Arsenije Savic":{"relativeUrl":"/people/#arsenije-savic"},"ArshM17":{"relativeUrl":"/people/#arshm17"},"Aryan Koundal":{"relativeUrl":"/people/#aryan-koundal"},"Aryan Singh":{"relativeUrl":"/people/#aryan-singh"},"Aryan Thakor":{"relativeUrl":"/people/#aryan-thakor"},"Ashish Karn":{"relativeUrl":"/people/#ashish-karn"},"ashish singh":{"relativeUrl":"/people/#ashish-singh"},"Ashley Kang":{"relativeUrl":"/people/#ashley-kang"},"Ashris":{"relativeUrl":"/people/#ashris"},"ashu8912":{"relativeUrl":"/people/#ashu8912"},"Ashwani Dey":{"relativeUrl":"/people/#ashwani-dey"},"AsukaMinato":{"relativeUrl":"/people/#asukaminato"},"Atmaja P.":{"relativeUrl":"/people/#atmaja-p-"},"Atul Varma":{"relativeUrl":"/people/#atul-varma"},"Austin Cawley-Edwards":{"relativeUrl":"/people/#austin-cawley-edwards"},"Austin Lee Slominski":{"relativeUrl":"/people/#austin-lee-slominski"},"Avelar":{"relativeUrl":"/people/#avelar"},"Ayush Jain":{"relativeUrl":"/people/#ayush-jain"},"Ayush Shankar":{"relativeUrl":"/people/#ayush-shankar"},"Ayush Sharma":{"relativeUrl":"/people/#ayush-sharma"},"Ayushman":{"relativeUrl":"/people/#ayushman"},"b2renger":{"relativeUrl":"/people/#b2renger"},"beau-muylle":{"relativeUrl":"/people/#beau-muylle"},"Ben Fry":{"relativeUrl":"/people/#ben-fry"},"Ben Gilbert":{"relativeUrl":"/people/#ben-gilbert"},"Ben Greenberg":{"relativeUrl":"/people/#ben-greenberg"},"Ben Hinchley":{"relativeUrl":"/people/#ben-hinchley"},"Ben Moren":{"relativeUrl":"/people/#ben-moren"},"Ben Scheiner":{"relativeUrl":"/people/#ben-scheiner"},"Ben Wendt":{"relativeUrl":"/people/#ben-wendt"},"Benjamin Davies":{"relativeUrl":"/people/#benjamin-davies"},"Benoรฎt Bourรฉ":{"relativeUrl":"/people/#benoit-boure"},"benpalevsky":{"relativeUrl":"/people/#benpalevsky"},"BerfinA":{"relativeUrl":"/people/#berfina"},"Berke รzgen":{"relativeUrl":"/people/#berke-ozgen"},"Bernice Wu":{"relativeUrl":"/people/#bernice-wu"},"Bharath Kumar R":{"relativeUrl":"/people/#bharath-kumar-r"},"blackboxlogic":{"relativeUrl":"/people/#blackboxlogic"},"Blaize Kaye":{"relativeUrl":"/people/#blaize-kaye"},"Boaz":{"relativeUrl":"/people/#boaz"},"Bob Holt":{"relativeUrl":"/people/#bob-holt"},"Bob Ippolito":{"relativeUrl":"/people/#bob-ippolito"},"Bobby Kazimiroff":{"relativeUrl":"/people/#bobby-kazimiroff"},"Bojidar Marinov":{"relativeUrl":"/people/#bojidar-marinov"},"Boris Bucha":{"relativeUrl":"/people/#boris-bucha"},"Brad Buchanan":{"relativeUrl":"/people/#brad-buchanan"},"Brad Smith":{"relativeUrl":"/people/#brad-smith"},"Brahvim":{"relativeUrl":"/people/#brahvim"},"Brett Cooper":{"relativeUrl":"/people/#brett-cooper"},"Brian Boucheron":{"relativeUrl":"/people/#brian-boucheron"},"Brian Whitman":{"relativeUrl":"/people/#brian-whitman"},"brightredchilli":{"relativeUrl":"/people/#brightredchilli"},"Bryan":{"relativeUrl":"/people/#bryan"},"bsubbaraman":{"relativeUrl":"/people/#bsubbaraman"},"Bulkan Evcimen":{"relativeUrl":"/people/#bulkan-evcimen"},"c-dacanay":{"relativeUrl":"/people/#c-dacanay"},"cab_kyabe":{"relativeUrl":"/people/#cab-kyabe"},"cacoollib":{"relativeUrl":"/people/#cacoollib"},"Caitlin":{"relativeUrl":"/people/#caitlin"},"Caleb Eggensperger":{"relativeUrl":"/people/#caleb-eggensperger"},"Caleb Foss":{"relativeUrl":"/people/#caleb-foss"},"Caleb Mazalevskis":{"relativeUrl":"/people/#caleb-mazalevskis"},"Callie":{"relativeUrl":"/people/#callie"},"Cameron Yick":{"relativeUrl":"/people/#cameron-yick"},"Camille Roux":{"relativeUrl":"/people/#camille-roux"},"Caroline Hermans":{"relativeUrl":"/people/#caroline-hermans"},"Caroline Record":{"relativeUrl":"/people/#caroline-record"},"Carrie Wang":{"relativeUrl":"/people/#carrie-wang"},"Casey Conchinha":{"relativeUrl":"/people/#casey-conchinha"},"Casey Reas":{"relativeUrl":"/people/#casey-reas"},"Cassie Tarakajian":{"relativeUrl":"/people/#cassie-tarakajian"},"cedarfall":{"relativeUrl":"/people/#cedarfall"},"Ceesjan Luiten":{"relativeUrl":"/people/#ceesjan-luiten"},"Chan Jun Shern":{"relativeUrl":"/people/#chan-jun-shern"},"Chandler McWilliams":{"relativeUrl":"/people/#chandler-mcwilliams"},"Char":{"relativeUrl":"/people/#char"},"charlotte ๐ธ":{"relativeUrl":"/people/#charlotte-๐ธ"},"chaski":{"relativeUrl":"/people/#chaski"},"chechenxu":{"relativeUrl":"/people/#chechenxu"},"Chelly Jin":{"relativeUrl":"/people/#chelly-jin"},"Chiciuc Nicuศor":{"relativeUrl":"/people/#chiciuc-nicusor"},"Chinmay Kadam":{"relativeUrl":"/people/#chinmay-kadam"},"Chiun Hau You":{"relativeUrl":"/people/#chiun-hau-you"},"Chloe Yan":{"relativeUrl":"/people/#chloe-yan"},"Chris Hallberg":{"relativeUrl":"/people/#chris-hallberg"},"Chris P.":{"relativeUrl":"/people/#chris-p-"},"Chris Thomson":{"relativeUrl":"/people/#chris-thomson"},"Chris":{"relativeUrl":"/people/#chris"},"Christine de Carteret":{"relativeUrl":"/people/#christine-de-carteret"},"Christopher Coleman":{"relativeUrl":"/people/#christopher-coleman"},"Christopher John Ryan":{"relativeUrl":"/people/#christopher-john-ryan"},"Claire K-V":{"relativeUrl":"/people/#claire-k-v"},"Claire Peng":{"relativeUrl":"/people/#claire-peng"},"Cliff Su":{"relativeUrl":"/people/#cliff-su"},"codeanticode":{"relativeUrl":"/people/#codeanticode"},"Coding for the Arts":{"relativeUrl":"/people/#coding-for-the-arts"},"Cody Fuller":{"relativeUrl":"/people/#cody-fuller"},"cog25":{"relativeUrl":"/people/#cog25"},"CommanderRoot":{"relativeUrl":"/people/#commanderroot"},"computational mama":{"relativeUrl":"/people/#computational-mama"},"Connie Liu":{"relativeUrl":"/people/#connie-liu"},"Constance Yu":{"relativeUrl":"/people/#constance-yu"},"Corey Farwell":{"relativeUrl":"/people/#corey-farwell"},"Corey Gouker":{"relativeUrl":"/people/#corey-gouker"},"Cosme Escobedo":{"relativeUrl":"/people/#cosme-escobedo"},"Craig Pickard":{"relativeUrl":"/people/#craig-pickard"},"crh82":{"relativeUrl":"/people/#crh82"},"Cristรณbal Valenzuela":{"relativeUrl":"/people/#cristobal-valenzuela"},"cypress masso":{"relativeUrl":"/people/#cypress-masso"},"Dabe Andre Enajada":{"relativeUrl":"/people/#dabe-andre-enajada"},"Dan Hoizner":{"relativeUrl":"/people/#dan-hoizner"},"Dan":{"relativeUrl":"/people/#dan"},"Dana Mulder":{"relativeUrl":"/people/#dana-mulder"},"Daniel Adams":{"relativeUrl":"/people/#daniel-adams"},"Daniel Grantham":{"relativeUrl":"/people/#daniel-grantham"},"Daniel Howe":{"relativeUrl":"/people/#daniel-howe"},"Daniel Marino":{"relativeUrl":"/people/#daniel-marino"},"Daniel Michel":{"relativeUrl":"/people/#daniel-michel"},"Daniel Sarno":{"relativeUrl":"/people/#daniel-sarno"},"Daniel Shiffman":{"relativeUrl":"/people/#daniel-shiffman"},"Darby Rathbone":{"relativeUrl":"/people/#darby-rathbone"},"Darรญo Hereรฑรบ":{"relativeUrl":"/people/#dario-herenu"},"Darius Morawiec":{"relativeUrl":"/people/#darius-morawiec"},"Darren Kessner":{"relativeUrl":"/people/#darren-kessner"},"Darren Shaw":{"relativeUrl":"/people/#darren-shaw"},"Dave Pagurek":{"relativeUrl":"/people/#dave-pagurek"},"Dave":{"relativeUrl":"/people/#dave"},"David Aerne":{"relativeUrl":"/people/#david-aerne"},"David Newbury":{"relativeUrl":"/people/#david-newbury"},"David Weiss":{"relativeUrl":"/people/#david-weiss"},"David White":{"relativeUrl":"/people/#david-white"},"David Wicks":{"relativeUrl":"/people/#david-wicks"},"David":{"relativeUrl":"/people/#david"},"davidblitz":{"relativeUrl":"/people/#davidblitz"},"Decoy4ever":{"relativeUrl":"/people/#decoy4ever"},"Derek Enlow":{"relativeUrl":"/people/#derek-enlow"},"Derek J. Kinsman":{"relativeUrl":"/people/#derek-j--kinsman"},"Derrick McMillen":{"relativeUrl":"/people/#derrick-mcmillen"},"Deveshi Dwivedi":{"relativeUrl":"/people/#deveshi-dwivedi"},"Devon Rifkin":{"relativeUrl":"/people/#devon-rifkin"},"Dewansh Thakur":{"relativeUrl":"/people/#dewansh-thakur"},"dhanush":{"relativeUrl":"/people/#dhanush"},"Dharshan":{"relativeUrl":"/people/#dharshan"},"Dhruv Sahnan":{"relativeUrl":"/people/#dhruv-sahnan"},"Diana Galindo":{"relativeUrl":"/people/#diana-galindo"},"digitalfrost":{"relativeUrl":"/people/#digitalfrost"},"Dipanshu Gupta":{"relativeUrl":"/people/#dipanshu-gupta"},"Divyansh013":{"relativeUrl":"/people/#divyansh013"},"DIVYANSHU RAJ":{"relativeUrl":"/people/#divyanshu-raj"},"Diya Solanki":{"relativeUrl":"/people/#diya-solanki"},"DIYgirls":{"relativeUrl":"/people/#diygirls"},"Dominic Jodoin":{"relativeUrl":"/people/#dominic-jodoin"},"Dorine Tipo ":{"relativeUrl":"/people/#dorine-tipo-"},"Dorothy R. Santos":{"relativeUrl":"/people/#dorothy-r--santos"},"Dr. Holomorfo":{"relativeUrl":"/people/#dr--holomorfo"},"dummyAccount22":{"relativeUrl":"/people/#dummyaccount22"},"Dusk":{"relativeUrl":"/people/#dusk"},"Dwiferdio Seagal Putra":{"relativeUrl":"/people/#dwiferdio-seagal-putra"},"e-Coucou":{"relativeUrl":"/people/#e-coucou"},"Ed Brannin":{"relativeUrl":"/people/#ed-brannin"},"Eden Cridge":{"relativeUrl":"/people/#eden-cridge"},"elgin mclaren":{"relativeUrl":"/people/#elgin-mclaren"},"Elliot-Hernandez":{"relativeUrl":"/people/#elliot-hernandez"},"EmilioOcelotl":{"relativeUrl":"/people/#emilioocelotl"},"Emily Chen":{"relativeUrl":"/people/#emily-chen"},"Emily Xie":{"relativeUrl":"/people/#emily-xie"},"Emma Krantz":{"relativeUrl":"/people/#emma-krantz"},"Epic Jefferson":{"relativeUrl":"/people/#epic-jefferson"},"epramer-godaddy":{"relativeUrl":"/people/#epramer-godaddy"},"Eric Rabinowitz":{"relativeUrl":"/people/#eric-rabinowitz"},"Erica Pramer":{"relativeUrl":"/people/#erica-pramer"},"Erik Butcher":{"relativeUrl":"/people/#erik-butcher"},"Eshaan Aggarwal":{"relativeUrl":"/people/#eshaan-aggarwal"},"eslteacher902010":{"relativeUrl":"/people/#eslteacher902010"},"Evelyn Eastmond":{"relativeUrl":"/people/#evelyn-eastmond"},"evelyn masso":{"relativeUrl":"/people/#evelyn-masso"},"everything became blue":{"relativeUrl":"/people/#everything-became-blue"},"Evorage":{"relativeUrl":"/people/#evorage"},"Ewan Johnstone":{"relativeUrl":"/people/#ewan-johnstone"},"Fabian Morรณn Zirfas":{"relativeUrl":"/people/#fabian-moron-zirfas"},"Faith Wuyue Yu":{"relativeUrl":"/people/#faith-wuyue-yu"},"FAL":{"relativeUrl":"/people/#fal"},"Federico Grandi":{"relativeUrl":"/people/#federico-grandi"},"feedzh":{"relativeUrl":"/people/#feedzh"},"Fenil Gandhi":{"relativeUrl":"/people/#fenil-gandhi"},"FerrinThreatt":{"relativeUrl":"/people/#ferrinthreatt"},"ffd8":{"relativeUrl":"/people/#ffd8"},"Fisher Diede":{"relativeUrl":"/people/#fisher-diede"},"FORCHA PEARL":{"relativeUrl":"/people/#forcha-pearl"},"Francesco Bigiarini":{"relativeUrl":"/people/#francesco-bigiarini"},"Franolich Design":{"relativeUrl":"/people/#franolich-design"},"Freddie Rawlins":{"relativeUrl":"/people/#freddie-rawlins"},"Frederik Ring":{"relativeUrl":"/people/#frederik-ring"},"fuder.eth":{"relativeUrl":"/people/#fuder-eth"},"Fun Planet":{"relativeUrl":"/people/#fun-planet"},"Gabriel Sroka":{"relativeUrl":"/people/#gabriel-sroka"},"Gareth Battensby":{"relativeUrl":"/people/#gareth-battensby"},"Gareth Williams":{"relativeUrl":"/people/#gareth-williams"},"Garima":{"relativeUrl":"/people/#garima"},"gauini":{"relativeUrl":"/people/#gauini"},"Gaurav Tiwary":{"relativeUrl":"/people/#gaurav-tiwary"},"Gene Kogan":{"relativeUrl":"/people/#gene-kogan"},"Geraldo Neto":{"relativeUrl":"/people/#geraldo-neto"},"ggorlen":{"relativeUrl":"/people/#ggorlen"},"Ghales":{"relativeUrl":"/people/#ghales"},"Golan Levin":{"relativeUrl":"/people/#golan-levin"},"GoToLoop":{"relativeUrl":"/people/#gotoloop"},"Gracia-zhang":{"relativeUrl":"/people/#gracia-zhang"},"Greg Albers":{"relativeUrl":"/people/#greg-albers"},"Greg Sadetsky":{"relativeUrl":"/people/#greg-sadetsky"},"Greg Stanton":{"relativeUrl":"/people/#greg-stanton"},"Gregor Martynus":{"relativeUrl":"/people/#gregor-martynus"},"Guilherme Silveira":{"relativeUrl":"/people/#guilherme-silveira"},"Guillermo Montecinos":{"relativeUrl":"/people/#guillermo-montecinos"},"Gus Becker":{"relativeUrl":"/people/#gus-becker"},"Haider Ali Punjabi":{"relativeUrl":"/people/#haider-ali-punjabi"},"Half Scheidl":{"relativeUrl":"/people/#half-scheidl"},"Hana Cho":{"relativeUrl":"/people/#hana-cho"},"harkirat singh":{"relativeUrl":"/people/#harkirat-singh"},"Harman Batheja":{"relativeUrl":"/people/#harman-batheja"},"Harrycheng233":{"relativeUrl":"/people/#harrycheng233"},"Harsh Agrawal":{"relativeUrl":"/people/#harsh-agrawal"},"Harsh Range":{"relativeUrl":"/people/#harsh-range"},"Harshil Goel":{"relativeUrl":"/people/#harshil-goel"},"Hilary Lau":{"relativeUrl":"/people/#hilary-lau"},"Himanshu Kholiya":{"relativeUrl":"/people/#himanshu-kholiya"},"Himanshu Malviya":{"relativeUrl":"/people/#himanshu-malviya"},"Hirad Sab":{"relativeUrl":"/people/#hirad-sab"},"Hitesh Kumar":{"relativeUrl":"/people/#hitesh-kumar"},"Homaid":{"relativeUrl":"/people/#homaid"},"hrishit":{"relativeUrl":"/people/#hrishit"},"HughJacks":{"relativeUrl":"/people/#hughjacks"},"hunahpu18":{"relativeUrl":"/people/#hunahpu18"},"hvillase":{"relativeUrl":"/people/#hvillase"},"iambiancafonseca":{"relativeUrl":"/people/#iambiancafonseca"},"IENGROUND":{"relativeUrl":"/people/#ienground"},"Ike Bischof":{"relativeUrl":"/people/#ike-bischof"},"Ikko Ashimine":{"relativeUrl":"/people/#ikko-ashimine"},"Ilona Brand":{"relativeUrl":"/people/#ilona-brand"},"INARI_DARKFOX":{"relativeUrl":"/people/#inari-darkfox"},"Inhwa":{"relativeUrl":"/people/#inhwa"},"Irina Mengqi Wang":{"relativeUrl":"/people/#irina-mengqi-wang"},"Isaac Durazo ":{"relativeUrl":"/people/#isaac-durazo-"},"ฤฐsmail Namdar":{"relativeUrl":"/people/#ismail-namdar"},"Ivy Feraco":{"relativeUrl":"/people/#ivy-feraco"},"J Wong":{"relativeUrl":"/people/#j-wong"},"Jack B. Du":{"relativeUrl":"/people/#jack-b--du"},"Jack Dempsey":{"relativeUrl":"/people/#jack-dempsey"},"Jack L":{"relativeUrl":"/people/#jack-l"},"Jackie Liu":{"relativeUrl":"/people/#jackie-liu"},"Jacques P. du Toit":{"relativeUrl":"/people/#jacques-p--du-toit"},"Jai Kotia":{"relativeUrl":"/people/#jai-kotia"},"Jai Vignesh J":{"relativeUrl":"/people/#jai-vignesh-j"},"Jakub Valtar":{"relativeUrl":"/people/#jakub-valtar"},"James Dunn":{"relativeUrl":"/people/#james-dunn"},"JangJunseok":{"relativeUrl":"/people/#jangjunseok"},"Janis Sepรบlveda":{"relativeUrl":"/people/#janis-sepulveda"},"Jared Berghold":{"relativeUrl":"/people/#jared-berghold"},"Jared Donovan":{"relativeUrl":"/people/#jared-donovan"},"Jared Sprague":{"relativeUrl":"/people/#jared-sprague"},"Jason Alderman":{"relativeUrl":"/people/#jason-alderman"},"Jason Mandel":{"relativeUrl":"/people/#jason-mandel"},"Jason Sigal":{"relativeUrl":"/people/#jason-sigal"},"Jatin Panjwani":{"relativeUrl":"/people/#jatin-panjwani"},"Jay Dev Jha":{"relativeUrl":"/people/#jay-dev-jha"},"Jay Gupta":{"relativeUrl":"/people/#jay-gupta"},"Jaymz Rhime":{"relativeUrl":"/people/#jaymz-rhime"},"Jean-Michaรซl Celerier":{"relativeUrl":"/people/#jean-michael-celerier"},"Jean Pierre Charalambos":{"relativeUrl":"/people/#jean-pierre-charalambos"},"jeanette":{"relativeUrl":"/people/#jeanette"},"Jen Kagan":{"relativeUrl":"/people/#jen-kagan"},"Jenna deBoisblanc":{"relativeUrl":"/people/#jenna-deboisblanc"},"Jenna":{"relativeUrl":"/people/#jenna"},"Jennifer Jacobs":{"relativeUrl":"/people/#jennifer-jacobs"},"Jenny Biette Kowalski":{"relativeUrl":"/people/#jenny-biette-kowalski"},"Jens Axel Sรธgaard":{"relativeUrl":"/people/#jens-axel-sรธgaard"},"jeong":{"relativeUrl":"/people/#jeong"},"jep":{"relativeUrl":"/people/#jep"},"Jerel Johnson":{"relativeUrl":"/people/#jerel-johnson"},"Jeremy Tuloup":{"relativeUrl":"/people/#jeremy-tuloup"},"Jess Klein":{"relativeUrl":"/people/#jess-klein"},"jesse cahn-thompson":{"relativeUrl":"/people/#jesse-cahn-thompson"},"Jesรบs Enrique Rascรณn":{"relativeUrl":"/people/#jesus-enrique-rascon"},"JetStarBlues":{"relativeUrl":"/people/#jetstarblues"},"Jiashan Wu":{"relativeUrl":"/people/#jiashan-wu"},"Jimish Fotariya":{"relativeUrl":"/people/#jimish-fotariya"},"Jithin KS":{"relativeUrl":"/people/#jithin-ks"},"Jiwon Park (hanpanic)":{"relativeUrl":"/people/#jiwon-park-(hanpanic)"},"JoeCastor":{"relativeUrl":"/people/#joecastor"},"Johan Karlsson":{"relativeUrl":"/people/#johan-karlsson"},"John Pasquarello":{"relativeUrl":"/people/#john-pasquarello"},"Jon Kaufman":{"relativeUrl":"/people/#jon-kaufman"},"Jonas Rinke":{"relativeUrl":"/people/#jonas-rinke"},"Jonathan Dahan":{"relativeUrl":"/people/#jonathan-dahan"},"Jonathan-David Schrรถder":{"relativeUrl":"/people/#jonathan-david-schroder"},"Jonathan Heindl":{"relativeUrl":"/people/#jonathan-heindl"},"Joonas Jokinen":{"relativeUrl":"/people/#joonas-jokinen"},"Jordan Philyaw":{"relativeUrl":"/people/#jordan-philyaw"},"Jordan Shaw":{"relativeUrl":"/people/#jordan-shaw"},"Jordan Sucher":{"relativeUrl":"/people/#jordan-sucher"},"Jorge Moreno":{"relativeUrl":"/people/#jorge-moreno"},"Josรฉ Miguel Tajuelo Garrigรณs":{"relativeUrl":"/people/#jose-miguel-tajuelo-garrigos"},"Joseph Aronson":{"relativeUrl":"/people/#joseph-aronson"},"Joseph Hong":{"relativeUrl":"/people/#joseph-hong"},"Joshua Marris":{"relativeUrl":"/people/#joshua-marris"},"Joshua Noble":{"relativeUrl":"/people/#joshua-noble"},"Joshua Storm Becker":{"relativeUrl":"/people/#joshua-storm-becker"},"Jstodd":{"relativeUrl":"/people/#jstodd"},"JT Nimoy":{"relativeUrl":"/people/#jt-nimoy"},"Juan Irache":{"relativeUrl":"/people/#juan-irache"},"juliane nagao":{"relativeUrl":"/people/#juliane-nagao"},"Julio Lab":{"relativeUrl":"/people/#julio-lab"},"JUNGMIN KANG":{"relativeUrl":"/people/#jungmin-kang"},"Juraj Onuska":{"relativeUrl":"/people/#juraj-onuska"},"Justin Kim":{"relativeUrl":"/people/#justin-kim"},"Jyotiraditya Pradhan":{"relativeUrl":"/people/#jyotiraditya-pradhan"},"K.Adam White":{"relativeUrl":"/people/#k-adam-white"},"kaabe1":{"relativeUrl":"/people/#kaabe1"},"Kai-han Chang":{"relativeUrl":"/people/#kai-han-chang"},"Karen":{"relativeUrl":"/people/#karen"},"karinaxlpz":{"relativeUrl":"/people/#karinaxlpz"},"Kate Grant":{"relativeUrl":"/people/#kate-grant"},"Kate Hollenbach":{"relativeUrl":"/people/#kate-hollenbach"},"Kathryn Isabelle Lawrence":{"relativeUrl":"/people/#kathryn-isabelle-lawrence"},"Kathryn Lichlyter":{"relativeUrl":"/people/#kathryn-lichlyter"},"Katie":{"relativeUrl":"/people/#katie"},"Katsuya Endoh":{"relativeUrl":"/people/#katsuya-endoh"},"Keith Tan":{"relativeUrl":"/people/#keith-tan"},"Ken Miller":{"relativeUrl":"/people/#ken-miller"},"Kenneth Lim":{"relativeUrl":"/people/#kenneth-lim"},"Keshav Gupta":{"relativeUrl":"/people/#keshav-gupta"},"Keshav Malik":{"relativeUrl":"/people/#keshav-malik"},"Kevin Barabash":{"relativeUrl":"/people/#kevin-barabash"},"Kevin Bradley":{"relativeUrl":"/people/#kevin-bradley"},"Kevin Grajeda":{"relativeUrl":"/people/#kevin-grajeda"},"Kevin Ho":{"relativeUrl":"/people/#kevin-ho"},"Kevin Siwoff":{"relativeUrl":"/people/#kevin-siwoff"},"Kevin Workman":{"relativeUrl":"/people/#kevin-workman"},"kilavvy":{"relativeUrl":"/people/#kilavvy"},"Kit Kuksenok":{"relativeUrl":"/people/#kit-kuksenok"},"kjav":{"relativeUrl":"/people/#kjav"},"konstantinstanmeyer":{"relativeUrl":"/people/#konstantinstanmeyer"},"koolaidkrusade":{"relativeUrl":"/people/#koolaidkrusade"},"Kristian Hamilton":{"relativeUrl":"/people/#kristian-hamilton"},"kroko / Reinis Adoviฤs":{"relativeUrl":"/people/#kroko---reinis-adovics"},"Kunal Kumar Verma":{"relativeUrl":"/people/#kunal-kumar-verma"},"Kyle James":{"relativeUrl":"/people/#kyle-james"},"Kyle McDonald":{"relativeUrl":"/people/#kyle-mcdonald"},"L05":{"relativeUrl":"/people/#l05"},"Laith Alwazani":{"relativeUrl":"/people/#laith-alwazani"},"Laksh Singla":{"relativeUrl":"/people/#laksh-singla"},"Lakshay Joshi":{"relativeUrl":"/people/#lakshay-joshi"},"Lalit Narayan Yadav":{"relativeUrl":"/people/#lalit-narayan-yadav"},"lam802":{"relativeUrl":"/people/#lam802"},"Laura Ciro":{"relativeUrl":"/people/#laura-ciro"},"Lauren Berrios":{"relativeUrl":"/people/#lauren-berrios"},"Lauren Lee McCarthy":{"relativeUrl":"/people/#lauren-lee-mccarthy"},"Lauren":{"relativeUrl":"/people/#lauren"},"Lee T":{"relativeUrl":"/people/#lee-t"},"LEMIBANDDEXARI":{"relativeUrl":"/people/#lemibanddexari"},"Leo Kamwathi":{"relativeUrl":"/people/#leo-kamwathi"},"Leo Wang":{"relativeUrl":"/people/#leo-wang"},"leopardracer":{"relativeUrl":"/people/#leopardracer"},"Leslie Yip":{"relativeUrl":"/people/#leslie-yip"},"Liam Piesley":{"relativeUrl":"/people/#liam-piesley"},"Liang Tang":{"relativeUrl":"/people/#liang-tang"},"Linda Paiste":{"relativeUrl":"/people/#linda-paiste"},"Lingxiao Wang":{"relativeUrl":"/people/#lingxiao-wang"},"linnhallonqvist":{"relativeUrl":"/people/#linnhallonqvist"},"Lionel Ringenbach":{"relativeUrl":"/people/#lionel-ringenbach"},"Lisa Mabley":{"relativeUrl":"/people/#lisa-mabley"},"Liu Chang":{"relativeUrl":"/people/#liu-chang"},"Liz Peng":{"relativeUrl":"/people/#liz-peng"},"Long Phan":{"relativeUrl":"/people/#long-phan"},"lottihill":{"relativeUrl":"/people/#lottihill"},"Louis Demange":{"relativeUrl":"/people/#louis-demange"},"Luc de wit":{"relativeUrl":"/people/#luc-de-wit"},"Luca Damasco":{"relativeUrl":"/people/#luca-damasco"},"Luis Morales-Navarro":{"relativeUrl":"/people/#luis-morales-navarro"},"luisaph":{"relativeUrl":"/people/#luisaph"},"Luke Burgess-Yeo":{"relativeUrl":"/people/#luke-burgess-yeo"},"Luke Plowden":{"relativeUrl":"/people/#luke-plowden"},"M":{"relativeUrl":"/people/#m"},"ma haidong":{"relativeUrl":"/people/#ma-haidong"},"Maciej Stankiewicz":{"relativeUrl":"/people/#maciej-stankiewicz"},"maddy":{"relativeUrl":"/people/#maddy"},"maddyfisher":{"relativeUrl":"/people/#maddyfisher"},"Madhav Majumdar":{"relativeUrl":"/people/#madhav-majumdar"},"mainstreamdev":{"relativeUrl":"/people/#mainstreamdev"},"Malay Vasa":{"relativeUrl":"/people/#malay-vasa"},"Manan Arora":{"relativeUrl":"/people/#manan-arora"},"Mann Shah":{"relativeUrl":"/people/#mann-shah"},"Manpreet Singh":{"relativeUrl":"/people/#manpreet-singh"},"manpreet":{"relativeUrl":"/people/#manpreet"},"Marc Abbey":{"relativeUrl":"/people/#marc-abbey"},"Marco Macarena":{"relativeUrl":"/people/#marco-macarena"},"Marcus Parsons":{"relativeUrl":"/people/#marcus-parsons"},"Mark Nikora":{"relativeUrl":"/people/#mark-nikora"},"Mark Russo":{"relativeUrl":"/people/#mark-russo"},"Martin Leopold Groedl":{"relativeUrl":"/people/#martin-leopold-groedl"},"Martin Lorentzon":{"relativeUrl":"/people/#martin-lorentzon"},"Mateusz Swiatkowski":{"relativeUrl":"/people/#mateusz-swiatkowski"},"mathewpan2":{"relativeUrl":"/people/#mathewpan2"},"Mathura MG":{"relativeUrl":"/people/#mathura-mg"},"MATSUDA, Kouichi":{"relativeUrl":"/people/#matsuda,-kouichi"},"Matthew Kaney":{"relativeUrl":"/people/#matthew-kaney"},"Mattia Micheletta Merlin":{"relativeUrl":"/people/#mattia-micheletta-merlin"},"Mauricio Verano Merino":{"relativeUrl":"/people/#mauricio-verano-merino"},"Max Goldstein":{"relativeUrl":"/people/#max-goldstein"},"Max Kolyanov":{"relativeUrl":"/people/#max-kolyanov"},"Max Segal":{"relativeUrl":"/people/#max-segal"},"maxdevjs":{"relativeUrl":"/people/#maxdevjs"},"Maya Arguelles":{"relativeUrl":"/people/#maya-arguelles"},"Maya Man":{"relativeUrl":"/people/#maya-man"},"Mayank Verma":{"relativeUrl":"/people/#mayank-verma"},"mclark414":{"relativeUrl":"/people/#mclark414"},"mcturner1995":{"relativeUrl":"/people/#mcturner1995"},"meezwhite":{"relativeUrl":"/people/#meezwhite"},"Melody Sharp":{"relativeUrl":"/people/#melody-sharp"},"mhsh312":{"relativeUrl":"/people/#mhsh312"},"Miaoye Que":{"relativeUrl":"/people/#miaoye-que"},"Michael Hadley":{"relativeUrl":"/people/#michael-hadley"},"Michael J Conrad":{"relativeUrl":"/people/#michael-j-conrad"},"Mikael Lindqvist":{"relativeUrl":"/people/#mikael-lindqvist"},"Mike ":{"relativeUrl":"/people/#mike-"},"Mike Anderson":{"relativeUrl":"/people/#mike-anderson"},"Miles Peyton":{"relativeUrl":"/people/#miles-peyton"},"min-kim42":{"relativeUrl":"/people/#min-kim42"},"MiniPear":{"relativeUrl":"/people/#minipear"},"Minjun Kim":{"relativeUrl":"/people/#minjun-kim"},"Minwook Park":{"relativeUrl":"/people/#minwook-park"},"Mislav Milicevic":{"relativeUrl":"/people/#mislav-milicevic"},"ml.008":{"relativeUrl":"/people/#ml-008"},"mohamedalisaifudeen":{"relativeUrl":"/people/#mohamedalisaifudeen"},"Mohammad Hussain Nagaria":{"relativeUrl":"/people/#mohammad-hussain-nagaria"},"Mohana Sundaram S":{"relativeUrl":"/people/#mohana-sundaram-s"},"Mohit Balwani":{"relativeUrl":"/people/#mohit-balwani"},"Moira Turner":{"relativeUrl":"/people/#moira-turner"},"Monalisa Maity":{"relativeUrl":"/people/#monalisa-maity"},"Monica Powell":{"relativeUrl":"/people/#monica-powell"},"Mostafa Ewis":{"relativeUrl":"/people/#mostafa-ewis"},"Mr. Algorithm":{"relativeUrl":"/people/#mr--algorithm"},"Mudit Maheshwari":{"relativeUrl":"/people/#mudit-maheshwari"},"Muhammad Haroon":{"relativeUrl":"/people/#muhammad-haroon"},"Munus Shih":{"relativeUrl":"/people/#munus-shih"},"Musab Kฤฑlฤฑรง":{"relativeUrl":"/people/#musab-kฤฑlฤฑc"},"Mx. Ramsey":{"relativeUrl":"/people/#mx--ramsey"},"mxchelle":{"relativeUrl":"/people/#mxchelle"},"Nabeel (Dexter)":{"relativeUrl":"/people/#nabeel-(dexter)"},"Nabil Hassein":{"relativeUrl":"/people/#nabil-hassein"},"Nahuel Palumbo":{"relativeUrl":"/people/#nahuel-palumbo"},"Nakul Shahdadpuri":{"relativeUrl":"/people/#nakul-shahdadpuri"},"nancy":{"relativeUrl":"/people/#nancy"},"Nandu Krishna":{"relativeUrl":"/people/#nandu-krishna"},"Naoto Hieda":{"relativeUrl":"/people/#naoto-hieda"},"naoyashiga":{"relativeUrl":"/people/#naoyashiga"},"Nat Decker":{"relativeUrl":"/people/#nat-decker"},"Nicholas Marino":{"relativeUrl":"/people/#nicholas-marino"},"NicholasGillen":{"relativeUrl":"/people/#nicholasgillen"},"Nick Briz":{"relativeUrl":"/people/#nick-briz"},"Nick McIntyre":{"relativeUrl":"/people/#nick-mcintyre"},"Nick Mรผller":{"relativeUrl":"/people/#nick-muller"},"Nick Yahnke":{"relativeUrl":"/people/#nick-yahnke"},"Nico Finkernagel":{"relativeUrl":"/people/#nico-finkernagel"},"Niels Joubert":{"relativeUrl":"/people/#niels-joubert"},"NIINOMI":{"relativeUrl":"/people/#niinomi"},"Nik Nyby":{"relativeUrl":"/people/#nik-nyby"},"Nikhil":{"relativeUrl":"/people/#nikhil"},"nikhilkalburgi":{"relativeUrl":"/people/#nikhilkalburgi"},"Niki Ito":{"relativeUrl":"/people/#niki-ito"},"Nikita Korol":{"relativeUrl":"/people/#nikita-korol"},"Niklas Peters":{"relativeUrl":"/people/#niklas-peters"},"Nisar Hassan Naqvi":{"relativeUrl":"/people/#nisar-hassan-naqvi"},"Nitin Rana":{"relativeUrl":"/people/#nitin-rana"},"Nitish Bansal":{"relativeUrl":"/people/#nitish-bansal"},"nully0x":{"relativeUrl":"/people/#nully0x"},"odm275":{"relativeUrl":"/people/#odm275"},"oleboleskole3":{"relativeUrl":"/people/#oleboleskole3"},"Oleksii Bulba":{"relativeUrl":"/people/#oleksii-bulba"},"Oliver Steele":{"relativeUrl":"/people/#oliver-steele"},"oliver thurley":{"relativeUrl":"/people/#oliver-thurley"},"Oliver Wright":{"relativeUrl":"/people/#oliver-wright"},"Onexi":{"relativeUrl":"/people/#onexi"},"Ong Zhi Zheng":{"relativeUrl":"/people/#ong-zhi-zheng"},"Oren Shoham":{"relativeUrl":"/people/#oren-shoham"},"Orwiss":{"relativeUrl":"/people/#orwiss"},"ov":{"relativeUrl":"/people/#ov"},"oz":{"relativeUrl":"/people/#oz"},"paollabd":{"relativeUrl":"/people/#paollabd"},"Paolo Pedercini":{"relativeUrl":"/people/#paolo-pedercini"},"Paul Wheeler":{"relativeUrl":"/people/#paul-wheeler"},"Peiling Jiang":{"relativeUrl":"/people/#peiling-jiang"},"perminder-17":{"relativeUrl":"/people/#perminder-17"},"Peter Marsh":{"relativeUrl":"/people/#peter-marsh"},"peter":{"relativeUrl":"/people/#peter"},"Petr Brzek":{"relativeUrl":"/people/#petr-brzek"},"Philip Bell":{"relativeUrl":"/people/#philip-bell"},"Phoenix Perry":{"relativeUrl":"/people/#phoenix-perry"},"pie999":{"relativeUrl":"/people/#pie999"},"Pierre Krafft":{"relativeUrl":"/people/#pierre-krafft"},"pifragile":{"relativeUrl":"/people/#pifragile"},"piinthecloud":{"relativeUrl":"/people/#piinthecloud"},"Pim Tournaye":{"relativeUrl":"/people/#pim-tournaye"},"pinky-pig":{"relativeUrl":"/people/#pinky-pig"},"PiyushChandra17":{"relativeUrl":"/people/#piyushchandra17"},"plural":{"relativeUrl":"/people/#plural"},"Poulav Bhowmick":{"relativeUrl":"/people/#poulav-bhowmick"},"PracDuckling":{"relativeUrl":"/people/#pracduckling"},"Pragya":{"relativeUrl":"/people/#pragya"},"Prashant Gupta":{"relativeUrl":"/people/#prashant-gupta"},"Prateek Jain":{"relativeUrl":"/people/#prateek-jain"},"Prateekgit":{"relativeUrl":"/people/#prateekgit"},"Pratyay Banerjee":{"relativeUrl":"/people/#pratyay-banerjee"},"Priya-Pathak":{"relativeUrl":"/people/#priya-pathak"},"Qianqian Ye":{"relativeUrl":"/people/#qianqian-ye"},"Qingfeng Huang":{"relativeUrl":"/people/#qingfeng-huang"},"Quinton Ashley":{"relativeUrl":"/people/#quinton-ashley"},"R. Luke DuBois":{"relativeUrl":"/people/#r--luke-dubois"},"Rachel Lim":{"relativeUrl":"/people/#rachel-lim"},"raclim":{"relativeUrl":"/people/#raclim"},"Rahul Mohata":{"relativeUrl":"/people/#rahul-mohata"},"rahulrangers":{"relativeUrl":"/people/#rahulrangers"},"Rajas Samse":{"relativeUrl":"/people/#rajas-samse"},"Rajiv Ranjan Singh":{"relativeUrl":"/people/#rajiv-ranjan-singh"},"Ramin":{"relativeUrl":"/people/#ramin"},"Ramon Jr. Yniguez":{"relativeUrl":"/people/#ramon-jr--yniguez"},"RandomGamingDev":{"relativeUrl":"/people/#randomgamingdev"},"Raphaรซl de Courville":{"relativeUrl":"/people/#raphael-de-courville"},"reejuBhattacharya":{"relativeUrl":"/people/#reejubhattacharya"},"Reijo Vosu":{"relativeUrl":"/people/#reijo-vosu"},"Renjie Li":{"relativeUrl":"/people/#renjie-li"},"reona396":{"relativeUrl":"/people/#reona396"},"Reshma R":{"relativeUrl":"/people/#reshma-r"},"rinkydevi":{"relativeUrl":"/people/#rinkydevi"},"Rishab Kumar Jha":{"relativeUrl":"/people/#rishab-kumar-jha"},"Rishabh Taparia":{"relativeUrl":"/people/#rishabh-taparia"},"Rishi":{"relativeUrl":"/people/#rishi"},"Ritesh Patil":{"relativeUrl":"/people/#ritesh-patil"},"Robyn Overstreet":{"relativeUrl":"/people/#robyn-overstreet"},"Rohan Julka":{"relativeUrl":"/people/#rohan-julka"},"roxi09":{"relativeUrl":"/people/#roxi09"},"Rune Skjoldborg Madsen":{"relativeUrl":"/people/#rune-skjoldborg-madsen"},"Ryan Slade":{"relativeUrl":"/people/#ryan-slade"},"Ryuya":{"relativeUrl":"/people/#ryuya"},"saber khan":{"relativeUrl":"/people/#saber-khan"},"Sachin Varghese":{"relativeUrl":"/people/#sachin-varghese"},"Sagar Arora":{"relativeUrl":"/people/#sagar-arora"},"Sai Bhushan":{"relativeUrl":"/people/#sai-bhushan"},"Saksham Saxena":{"relativeUrl":"/people/#saksham-saxena"},"sam delong":{"relativeUrl":"/people/#sam-delong"},"Sam Lavigne":{"relativeUrl":"/people/#sam-lavigne"},"sambensim":{"relativeUrl":"/people/#sambensim"},"Samir Ghosh":{"relativeUrl":"/people/#samir-ghosh"},"Sampo Rapeli":{"relativeUrl":"/people/#sampo-rapeli"},"Samrudh Shetty":{"relativeUrl":"/people/#samrudh-shetty"},"Samuel Alarco Cantos":{"relativeUrl":"/people/#samuel-alarco-cantos"},"Samuel Cho":{"relativeUrl":"/people/#samuel-cho"},"Sanchit Kapoor":{"relativeUrl":"/people/#sanchit-kapoor"},"Sandeep Kumar Bhagat":{"relativeUrl":"/people/#sandeep-kumar-bhagat"},"Sanjay Singh Rajpoot":{"relativeUrl":"/people/#sanjay-singh-rajpoot"},"Sanket Singh":{"relativeUrl":"/people/#sanket-singh"},"Sarah Ciston":{"relativeUrl":"/people/#sarah-ciston"},"Sarah Groff Hennigh-Palermo":{"relativeUrl":"/people/#sarah-groff-hennigh-palermo"},"Sarthak Saxena":{"relativeUrl":"/people/#sarthak-saxena"},"Saskia Freeke":{"relativeUrl":"/people/#saskia-freeke"},"Satyam Kulkarni":{"relativeUrl":"/people/#satyam-kulkarni"},"Sawai Singh Rajpurohit":{"relativeUrl":"/people/#sawai-singh-rajpurohit"},"Scott Garner":{"relativeUrl":"/people/#scott-garner"},"Scott Murray":{"relativeUrl":"/people/#scott-murray"},"Seb Mรฉndez":{"relativeUrl":"/people/#seb-mendez"},"SejinOH":{"relativeUrl":"/people/#sejinoh"},"Sekani Warner":{"relativeUrl":"/people/#sekani-warner"},"senbaku":{"relativeUrl":"/people/#senbaku"},"Seonghyeon Kim":{"relativeUrl":"/people/#seonghyeon-kim"},"Sepand Ansari":{"relativeUrl":"/people/#sepand-ansari"},"Serena20003":{"relativeUrl":"/people/#serena20003"},"Seth":{"relativeUrl":"/people/#seth"},"Seung-Gi Kim(David)":{"relativeUrl":"/people/#seung-gi-kim(david)"},"Seyko":{"relativeUrl":"/people/#seyko"},"shaharyarshamshi":{"relativeUrl":"/people/#shaharyarshamshi"},"Shahma Ansari":{"relativeUrl":"/people/#shahma-ansari"},"Shahriar Rahman Rubayet":{"relativeUrl":"/people/#shahriar-rahman-rubayet"},"Shawn Van Every":{"relativeUrl":"/people/#shawn-van-every"},"sheamus":{"relativeUrl":"/people/#sheamus"},"SHIBAHARA Hiroki":{"relativeUrl":"/people/#shibahara-hiroki"},"Shirou":{"relativeUrl":"/people/#shirou"},"Shiva":{"relativeUrl":"/people/#shiva"},"Shivansh Sharma":{"relativeUrl":"/people/#shivansh-sharma"},"Shoury Singh":{"relativeUrl":"/people/#shoury-singh"},"Shubham Kumar":{"relativeUrl":"/people/#shubham-kumar"},"Shubham Rathore":{"relativeUrl":"/people/#shubham-rathore"},"shujulin":{"relativeUrl":"/people/#shujulin"},"siddhant":{"relativeUrl":"/people/#siddhant"},"Simranjeet Singh":{"relativeUrl":"/people/#simranjeet-singh"},"Sinan Ascioglu":{"relativeUrl":"/people/#sinan-ascioglu"},"Sithe Ncube":{"relativeUrl":"/people/#sithe-ncube"},"Sivaram D":{"relativeUrl":"/people/#sivaram-d"},"skools-here":{"relativeUrl":"/people/#skools-here"},"skyperx":{"relativeUrl":"/people/#skyperx"},"sm7515":{"relativeUrl":"/people/#sm7515"},"smilee":{"relativeUrl":"/people/#smilee"},"So Sun Park":{"relativeUrl":"/people/#so-sun-park"},"Somnath Mishra":{"relativeUrl":"/people/#somnath-mishra"},"Sona Lee":{"relativeUrl":"/people/#sona-lee"},"SonyaCode":{"relativeUrl":"/people/#sonyacode"},"sortasleepy":{"relativeUrl":"/people/#sortasleepy"},"Souvik Kumar":{"relativeUrl":"/people/#souvik-kumar"},"Sparsh Paliwal":{"relativeUrl":"/people/#sparsh-paliwal"},"sparshg":{"relativeUrl":"/people/#sparshg"},"Spencer Faith":{"relativeUrl":"/people/#spencer-faith"},"sphantom-code":{"relativeUrl":"/people/#sphantom-code"},"Spongman":{"relativeUrl":"/people/#spongman"},"Stalgia Grigg":{"relativeUrl":"/people/#stalgia-grigg"},"stampyzfanz":{"relativeUrl":"/people/#stampyzfanz"},"Stef Tervelde":{"relativeUrl":"/people/#stef-tervelde"},"Steven Green":{"relativeUrl":"/people/#steven-green"},"Stig Mรธller Hansen":{"relativeUrl":"/people/#stig-mรธller-hansen"},"stormCup":{"relativeUrl":"/people/#stormcup"},"Sudhanshu Tiwari":{"relativeUrl":"/people/#sudhanshu-tiwari"},"suhani6904":{"relativeUrl":"/people/#suhani6904"},"Suhas CV":{"relativeUrl":"/people/#suhas-cv"},"sukrucildirr":{"relativeUrl":"/people/#sukrucildirr"},"Summer Rizzo":{"relativeUrl":"/people/#summer-rizzo"},"Sun Lifei":{"relativeUrl":"/people/#sun-lifei"},"surajsurajsuraj":{"relativeUrl":"/people/#surajsurajsuraj"},"Surbhi Pittie":{"relativeUrl":"/people/#surbhi-pittie"},"susan evans":{"relativeUrl":"/people/#susan-evans"},"Swapnil-2001":{"relativeUrl":"/people/#swapnil-2001"},"sz245":{"relativeUrl":"/people/#sz245"},"tae":{"relativeUrl":"/people/#tae"},"Taeyoon Choi":{"relativeUrl":"/people/#taeyoon-choi"},"takawo":{"relativeUrl":"/people/#takawo"},"Takuma Kira":{"relativeUrl":"/people/#takuma-kira"},"Tanner Dolby":{"relativeUrl":"/people/#tanner-dolby"},"Tanvi Kumar":{"relativeUrl":"/people/#tanvi-kumar"},"tapioca24":{"relativeUrl":"/people/#tapioca24"},"taseenb":{"relativeUrl":"/people/#taseenb"},"Tega Brain":{"relativeUrl":"/people/#tega-brain"},"Teixido":{"relativeUrl":"/people/#teixido"},"TetroGem":{"relativeUrl":"/people/#tetrogem"},"tetunori":{"relativeUrl":"/people/#tetunori"},"Thรฉodore Orfรจvres":{"relativeUrl":"/people/#theodore-orfevres"},"Thomas Diewald":{"relativeUrl":"/people/#thomas-diewald"},"Thomas Herlea":{"relativeUrl":"/people/#thomas-herlea"},"Tiago Hermano":{"relativeUrl":"/people/#tiago-hermano"},"Tibor Udvari":{"relativeUrl":"/people/#tibor-udvari"},"Todd H. Page":{"relativeUrl":"/people/#todd-h--page"},"togekisse":{"relativeUrl":"/people/#togekisse"},"Tokini Irene Fubara":{"relativeUrl":"/people/#tokini-irene-fubara"},"tonipizza":{"relativeUrl":"/people/#tonipizza"},"truemaxdh":{"relativeUrl":"/people/#truemaxdh"},"trych":{"relativeUrl":"/people/#trych"},"tuan":{"relativeUrl":"/people/#tuan"},"Tushar Choudhari":{"relativeUrl":"/people/#tushar-choudhari"},"TwoTicks":{"relativeUrl":"/people/#twoticks"},"Tyler Jordan":{"relativeUrl":"/people/#tyler-jordan"},"Tyler Stefanich":{"relativeUrl":"/people/#tyler-stefanich"},"Umang Utkarsh":{"relativeUrl":"/people/#umang-utkarsh"},"Unicar":{"relativeUrl":"/people/#unicar"},"UnityOfFairfax":{"relativeUrl":"/people/#unityoffairfax"},"uno seis tres":{"relativeUrl":"/people/#uno-seis-tres"},"Urvashi":{"relativeUrl":"/people/#urvashi"},"Utkarsh Tiwari":{"relativeUrl":"/people/#utkarsh-tiwari"},"Vaivaswat Dubey":{"relativeUrl":"/people/#vaivaswat-dubey"},"Val Head":{"relativeUrl":"/people/#val-head"},"Varsha Verma":{"relativeUrl":"/people/#varsha-verma"},"Vasu Goel":{"relativeUrl":"/people/#vasu-goel"},"Vedhant Agarwal":{"relativeUrl":"/people/#vedhant-agarwal"},"Victor Morgan":{"relativeUrl":"/people/#victor-morgan"},"Vijith Assar":{"relativeUrl":"/people/#vijith-assar"},"Vik":{"relativeUrl":"/people/#vik"},"viola ":{"relativeUrl":"/people/#viola-"},"vipulrawat":{"relativeUrl":"/people/#vipulrawat"},"Vishal Sharma":{"relativeUrl":"/people/#vishal-sharma"},"Vishal Singh":{"relativeUrl":"/people/#vishal-singh"},"Vishesh Rawal":{"relativeUrl":"/people/#vishesh-rawal"},"Vishwas Srivastava":{"relativeUrl":"/people/#vishwas-srivastava"},"Vรญtor Galvรฃo":{"relativeUrl":"/people/#vitor-galvao"},"Vivek Tiwari":{"relativeUrl":"/people/#vivek-tiwari"},"Vivek":{"relativeUrl":"/people/#vivek"},"wackbyte":{"relativeUrl":"/people/#wackbyte"},"Wade Marshall":{"relativeUrl":"/people/#wade-marshall"},"wagedu":{"relativeUrl":"/people/#wagedu"},"Wes Lord":{"relativeUrl":"/people/#wes-lord"},"Will Martin":{"relativeUrl":"/people/#will-martin"},"willallstet":{"relativeUrl":"/people/#willallstet"},"William Hazard":{"relativeUrl":"/people/#william-hazard"},"Wu Che Yu":{"relativeUrl":"/people/#wu-che-yu"},"Xavier Gรณngora":{"relativeUrl":"/people/#xavier-gongora"},"Xavier Snelgrove":{"relativeUrl":"/people/#xavier-snelgrove"},"Xevi H. Aqeel":{"relativeUrl":"/people/#xevi-h--aqeel"},"Xin Xin":{"relativeUrl":"/people/#xin-xin"},"XingZiLong":{"relativeUrl":"/people/#xingzilong"},"XTY":{"relativeUrl":"/people/#xty"},"XY Feng":{"relativeUrl":"/people/#xy-feng"},"Yana Agun Siswanto":{"relativeUrl":"/people/#yana-agun-siswanto"},"Yannick Assogba":{"relativeUrl":"/people/#yannick-assogba"},"Yasai":{"relativeUrl":"/people/#yasai"},"Yash Pandey":{"relativeUrl":"/people/#yash-pandey"},"YewonCALLI":{"relativeUrl":"/people/#yewoncalli"},"Yifan Mai":{"relativeUrl":"/people/#yifan-mai"},"Yining Shi":{"relativeUrl":"/people/#yining-shi"},"Yograj Rajput":{"relativeUrl":"/people/#yograj-rajput"},"Yolonanido":{"relativeUrl":"/people/#yolonanido"},"Yousef Abu-Salah":{"relativeUrl":"/people/#yousef-abu-salah"},"yu":{"relativeUrl":"/people/#yu"},"Yugal Kaushik":{"relativeUrl":"/people/#yugal-kaushik"},"Yuki":{"relativeUrl":"/people/#yuki"},"Yuting Lu":{"relativeUrl":"/people/#yuting-lu"},"Zac Tolle":{"relativeUrl":"/people/#zac-tolle"},"Zach Rispoli":{"relativeUrl":"/people/#zach-rispoli"},"zacharystenger":{"relativeUrl":"/people/#zacharystenger"},"Zearin":{"relativeUrl":"/people/#zearin"},"Zeke Sikelianos":{"relativeUrl":"/people/#zeke-sikelianos"},"zelf0":{"relativeUrl":"/people/#zelf0"},"Zeno Zeng":{"relativeUrl":"/people/#zeno-zeng"},"Zhao Xin":{"relativeUrl":"/people/#zhao-xin"},"Zoรซ Ingram":{"relativeUrl":"/people/#zoe-ingram"},"Zoe Stenger":{"relativeUrl":"/people/#zoe-stenger"},"รฆmon":{"relativeUrl":"/people/#รฆmon"},"โค":{"relativeUrl":"/people/#โค"},"ๆๅค้":{"relativeUrl":"/people/#ๆๅค้"}},"reference":{"abs()":{"relativeUrl":"/reference/p5/abs","alias":"abs"},"accelerationX":{"relativeUrl":"/reference/p5/accelerationX"},"accelerationY":{"relativeUrl":"/reference/p5/accelerationY"},"accelerationZ":{"relativeUrl":"/reference/p5/accelerationZ"},"acos()":{"relativeUrl":"/reference/p5/acos","alias":"acos"},"alpha()":{"relativeUrl":"/reference/p5/alpha","alias":"alpha"},"ambientLight()":{"relativeUrl":"/reference/p5/ambientLight","alias":"ambientLight"},"ambientMaterial()":{"relativeUrl":"/reference/p5/ambientMaterial","alias":"ambientMaterial"},"angleMode()":{"relativeUrl":"/reference/p5/angleMode","alias":"angleMode"},"append()":{"relativeUrl":"/reference/p5/append","alias":"append"},"applyMatrix()":{"relativeUrl":"/reference/p5/applyMatrix","alias":"applyMatrix"},"arc()":{"relativeUrl":"/reference/p5/arc","alias":"arc"},"arrayCopy()":{"relativeUrl":"/reference/p5/arrayCopy","alias":"arrayCopy"},"asin()":{"relativeUrl":"/reference/p5/asin","alias":"asin"},"atan()":{"relativeUrl":"/reference/p5/atan","alias":"atan"},"atan2()":{"relativeUrl":"/reference/p5/atan2","alias":"atan2"},"background()":{"relativeUrl":"/reference/p5/background","alias":"background"},"baseColorShader()":{"relativeUrl":"/reference/p5/baseColorShader","alias":"baseColorShader"},"baseMaterialShader()":{"relativeUrl":"/reference/p5/baseMaterialShader","alias":"baseMaterialShader"},"baseNormalShader()":{"relativeUrl":"/reference/p5/baseNormalShader","alias":"baseNormalShader"},"baseStrokeShader()":{"relativeUrl":"/reference/p5/baseStrokeShader","alias":"baseStrokeShader"},"beginClip()":{"relativeUrl":"/reference/p5/beginClip","alias":"beginClip"},"beginContour()":{"relativeUrl":"/reference/p5/beginContour","alias":"beginContour"},"beginGeometry()":{"relativeUrl":"/reference/p5/beginGeometry","alias":"beginGeometry"},"beginShape()":{"relativeUrl":"/reference/p5/beginShape","alias":"beginShape"},"bezier()":{"relativeUrl":"/reference/p5/bezier","alias":"bezier"},"bezierDetail()":{"relativeUrl":"/reference/p5/bezierDetail","alias":"bezierDetail"},"bezierPoint()":{"relativeUrl":"/reference/p5/bezierPoint","alias":"bezierPoint"},"bezierTangent()":{"relativeUrl":"/reference/p5/bezierTangent","alias":"bezierTangent"},"bezierVertex()":{"relativeUrl":"/reference/p5/bezierVertex","alias":"bezierVertex"},"blend()":{"relativeUrl":"/reference/p5/blend","alias":"blend"},"blendMode()":{"relativeUrl":"/reference/p5/blendMode","alias":"blendMode"},"blue()":{"relativeUrl":"/reference/p5/blue","alias":"blue"},"boolean()":{"relativeUrl":"/reference/p5/boolean","alias":"boolean"},"box()":{"relativeUrl":"/reference/p5/box","alias":"box"},"brightness()":{"relativeUrl":"/reference/p5/brightness","alias":"brightness"},"buildGeometry()":{"relativeUrl":"/reference/p5/buildGeometry","alias":"buildGeometry"},"byte()":{"relativeUrl":"/reference/p5/byte","alias":"byte"},"camera()":{"relativeUrl":"/reference/p5/camera","alias":"camera"},"ceil()":{"relativeUrl":"/reference/p5/ceil","alias":"ceil"},"changed()":{"relativeUrl":"/reference/p5/changed","alias":"changed"},"char()":{"relativeUrl":"/reference/p5/char","alias":"char"},"circle()":{"relativeUrl":"/reference/p5/circle","alias":"circle"},"class":{"relativeUrl":"/reference/p5/class"},"clear()":{"relativeUrl":"/reference/p5/clear","alias":"clear"},"clearDepth()":{"relativeUrl":"/reference/p5/clearDepth","alias":"clearDepth"},"clearStorage()":{"relativeUrl":"/reference/p5/clearStorage","alias":"clearStorage"},"clip()":{"relativeUrl":"/reference/p5/clip","alias":"clip"},"color()":{"relativeUrl":"/reference/p5/color","alias":"color"},"colorMode()":{"relativeUrl":"/reference/p5/colorMode","alias":"colorMode"},"concat()":{"relativeUrl":"/reference/p5/concat","alias":"concat"},"cone()":{"relativeUrl":"/reference/p5/cone","alias":"cone"},"console":{"relativeUrl":"/reference/p5/console"},"AUTO":{"relativeUrl":"/reference/p5/AUTO"},"DEGREES":{"relativeUrl":"/reference/p5/DEGREES"},"HALF_PI":{"relativeUrl":"/reference/p5/HALF_PI"},"HSB":{"relativeUrl":"/reference/p5/HSB"},"P2D":{"relativeUrl":"/reference/p5/P2D"},"PI":{"relativeUrl":"/reference/p5/PI"},"QUARTER_PI":{"relativeUrl":"/reference/p5/QUARTER_PI"},"RADIANS":{"relativeUrl":"/reference/p5/RADIANS"},"TAU":{"relativeUrl":"/reference/p5/TAU"},"TWO_PI":{"relativeUrl":"/reference/p5/TWO_PI"},"VERSION":{"relativeUrl":"/reference/p5/VERSION"},"WEBGL":{"relativeUrl":"/reference/p5/WEBGL"},"WEBGL2":{"relativeUrl":"/reference/p5/WEBGL2"},"constrain()":{"relativeUrl":"/reference/p5/constrain","alias":"constrain"},"copy()":{"relativeUrl":"/reference/p5/copy","alias":"copy"},"cos()":{"relativeUrl":"/reference/p5/cos","alias":"cos"},"createA()":{"relativeUrl":"/reference/p5/createA","alias":"createA"},"createAudio()":{"relativeUrl":"/reference/p5/createAudio","alias":"createAudio"},"createButton()":{"relativeUrl":"/reference/p5/createButton","alias":"createButton"},"createCamera()":{"relativeUrl":"/reference/p5/createCamera","alias":"createCamera"},"createCanvas()":{"relativeUrl":"/reference/p5/createCanvas","alias":"createCanvas"},"createCapture()":{"relativeUrl":"/reference/p5/createCapture","alias":"createCapture"},"createCheckbox()":{"relativeUrl":"/reference/p5/createCheckbox","alias":"createCheckbox"},"createColorPicker()":{"relativeUrl":"/reference/p5/createColorPicker","alias":"createColorPicker"},"createConvolver()":{"relativeUrl":"/reference/p5/createConvolver","alias":"createConvolver"},"createDiv()":{"relativeUrl":"/reference/p5/createDiv","alias":"createDiv"},"createElement()":{"relativeUrl":"/reference/p5/createElement","alias":"createElement"},"createFileInput()":{"relativeUrl":"/reference/p5/createFileInput","alias":"createFileInput"},"createFilterShader()":{"relativeUrl":"/reference/p5/createFilterShader","alias":"createFilterShader"},"createFramebuffer()":{"relativeUrl":"/reference/p5/createFramebuffer","alias":"createFramebuffer"},"createGraphics()":{"relativeUrl":"/reference/p5/createGraphics","alias":"createGraphics"},"createImage()":{"relativeUrl":"/reference/p5/createImage","alias":"createImage"},"createImg()":{"relativeUrl":"/reference/p5/createImg","alias":"createImg"},"createInput()":{"relativeUrl":"/reference/p5/createInput","alias":"createInput"},"createModel()":{"relativeUrl":"/reference/p5/createModel","alias":"createModel"},"createNumberDict()":{"relativeUrl":"/reference/p5/createNumberDict","alias":"createNumberDict"},"createP()":{"relativeUrl":"/reference/p5/createP","alias":"createP"},"createRadio()":{"relativeUrl":"/reference/p5/createRadio","alias":"createRadio"},"createSelect()":{"relativeUrl":"/reference/p5/createSelect","alias":"createSelect"},"createShader()":{"relativeUrl":"/reference/p5/createShader","alias":"createShader"},"createSlider()":{"relativeUrl":"/reference/p5/createSlider","alias":"createSlider"},"createSpan()":{"relativeUrl":"/reference/p5/createSpan","alias":"createSpan"},"createStringDict()":{"relativeUrl":"/reference/p5/createStringDict","alias":"createStringDict"},"createVector()":{"relativeUrl":"/reference/p5/createVector","alias":"createVector"},"createVideo()":{"relativeUrl":"/reference/p5/createVideo","alias":"createVideo"},"createWriter()":{"relativeUrl":"/reference/p5/createWriter","alias":"createWriter"},"cursor()":{"relativeUrl":"/reference/p5/cursor","alias":"cursor"},"curve()":{"relativeUrl":"/reference/p5/curve","alias":"curve"},"curveDetail()":{"relativeUrl":"/reference/p5/curveDetail","alias":"curveDetail"},"curvePoint()":{"relativeUrl":"/reference/p5/curvePoint","alias":"curvePoint"},"curveTangent()":{"relativeUrl":"/reference/p5/curveTangent","alias":"curveTangent"},"curveTightness()":{"relativeUrl":"/reference/p5/curveTightness","alias":"curveTightness"},"curveVertex()":{"relativeUrl":"/reference/p5/curveVertex","alias":"curveVertex"},"cylinder()":{"relativeUrl":"/reference/p5/cylinder","alias":"cylinder"},"day()":{"relativeUrl":"/reference/p5/day","alias":"day"},"debugMode()":{"relativeUrl":"/reference/p5/debugMode","alias":"debugMode"},"degrees()":{"relativeUrl":"/reference/p5/degrees","alias":"degrees"},"deltaTime":{"relativeUrl":"/reference/p5/deltaTime"},"describe()":{"relativeUrl":"/reference/p5/describe","alias":"describe"},"describeElement()":{"relativeUrl":"/reference/p5/describeElement","alias":"describeElement"},"deviceMoved()":{"relativeUrl":"/reference/p5/deviceMoved","alias":"deviceMoved"},"deviceOrientation":{"relativeUrl":"/reference/p5/deviceOrientation"},"deviceShaken()":{"relativeUrl":"/reference/p5/deviceShaken","alias":"deviceShaken"},"deviceTurned()":{"relativeUrl":"/reference/p5/deviceTurned","alias":"deviceTurned"},"directionalLight()":{"relativeUrl":"/reference/p5/directionalLight","alias":"directionalLight"},"disableFriendlyErrors":{"relativeUrl":"/reference/p5/disableFriendlyErrors"},"displayDensity()":{"relativeUrl":"/reference/p5/displayDensity","alias":"displayDensity"},"displayHeight":{"relativeUrl":"/reference/p5/displayHeight"},"displayWidth":{"relativeUrl":"/reference/p5/displayWidth"},"dist()":{"relativeUrl":"/reference/p5/dist","alias":"dist"},"doubleClicked()":{"relativeUrl":"/reference/p5/doubleClicked","alias":"doubleClicked"},"draw()":{"relativeUrl":"/reference/p5/draw","alias":"draw"},"drawingContext":{"relativeUrl":"/reference/p5/drawingContext"},"ellipse()":{"relativeUrl":"/reference/p5/ellipse","alias":"ellipse"},"ellipseMode()":{"relativeUrl":"/reference/p5/ellipseMode","alias":"ellipseMode"},"ellipsoid()":{"relativeUrl":"/reference/p5/ellipsoid","alias":"ellipsoid"},"emissiveMaterial()":{"relativeUrl":"/reference/p5/emissiveMaterial","alias":"emissiveMaterial"},"endClip()":{"relativeUrl":"/reference/p5/endClip","alias":"endClip"},"endContour()":{"relativeUrl":"/reference/p5/endContour","alias":"endContour"},"endGeometry()":{"relativeUrl":"/reference/p5/endGeometry","alias":"endGeometry"},"endShape()":{"relativeUrl":"/reference/p5/endShape","alias":"endShape"},"erase()":{"relativeUrl":"/reference/p5/erase","alias":"erase"},"exitPointerLock()":{"relativeUrl":"/reference/p5/exitPointerLock","alias":"exitPointerLock"},"exp()":{"relativeUrl":"/reference/p5/exp","alias":"exp"},"fill()":{"relativeUrl":"/reference/p5/fill","alias":"fill"},"filter()":{"relativeUrl":"/reference/p5/filter","alias":"filter"},"float()":{"relativeUrl":"/reference/p5/float","alias":"float"},"floor()":{"relativeUrl":"/reference/p5/floor","alias":"floor"},"focused":{"relativeUrl":"/reference/p5/focused"},"for":{"relativeUrl":"/reference/p5/for"},"fract()":{"relativeUrl":"/reference/p5/fract","alias":"fract"},"frameCount":{"relativeUrl":"/reference/p5/frameCount"},"frameRate()":{"relativeUrl":"/reference/p5/frameRate","alias":"frameRate"},"freeGeometry()":{"relativeUrl":"/reference/p5/freeGeometry","alias":"freeGeometry"},"freqToMidi()":{"relativeUrl":"/reference/p5/freqToMidi","alias":"freqToMidi"},"frustum()":{"relativeUrl":"/reference/p5/frustum","alias":"frustum"},"fullscreen()":{"relativeUrl":"/reference/p5/fullscreen","alias":"fullscreen"},"function":{"relativeUrl":"/reference/p5/function"},"get()":{"relativeUrl":"/reference/p5/get","alias":"get"},"getAudioContext()":{"relativeUrl":"/reference/p5/getAudioContext","alias":"getAudioContext"},"getItem()":{"relativeUrl":"/reference/p5/getItem","alias":"getItem"},"getOutputVolume()":{"relativeUrl":"/reference/p5/getOutputVolume","alias":"getOutputVolume"},"getTargetFrameRate()":{"relativeUrl":"/reference/p5/getTargetFrameRate","alias":"getTargetFrameRate"},"getURL()":{"relativeUrl":"/reference/p5/getURL","alias":"getURL"},"getURLParams()":{"relativeUrl":"/reference/p5/getURLParams","alias":"getURLParams"},"getURLPath()":{"relativeUrl":"/reference/p5/getURLPath","alias":"getURLPath"},"green()":{"relativeUrl":"/reference/p5/green","alias":"green"},"gridOutput()":{"relativeUrl":"/reference/p5/gridOutput","alias":"gridOutput"},"height":{"relativeUrl":"/reference/p5/height"},"hex()":{"relativeUrl":"/reference/p5/hex","alias":"hex"},"hour()":{"relativeUrl":"/reference/p5/hour","alias":"hour"},"httpDo()":{"relativeUrl":"/reference/p5/httpDo","alias":"httpDo"},"httpGet()":{"relativeUrl":"/reference/p5/httpGet","alias":"httpGet"},"httpPost()":{"relativeUrl":"/reference/p5/httpPost","alias":"httpPost"},"hue()":{"relativeUrl":"/reference/p5/hue","alias":"hue"},"if":{"relativeUrl":"/reference/p5/if"},"image()":{"relativeUrl":"/reference/p5/image","alias":"image"},"imageLight()":{"relativeUrl":"/reference/p5/imageLight","alias":"imageLight"},"imageMode()":{"relativeUrl":"/reference/p5/imageMode","alias":"imageMode"},"input()":{"relativeUrl":"/reference/p5/input","alias":"input"},"int()":{"relativeUrl":"/reference/p5/int","alias":"int"},"isLooping()":{"relativeUrl":"/reference/p5/isLooping","alias":"isLooping"},"join()":{"relativeUrl":"/reference/p5/join","alias":"join"},"key":{"relativeUrl":"/reference/p5/key"},"keyCode":{"relativeUrl":"/reference/p5/keyCode"},"keyIsDown()":{"relativeUrl":"/reference/p5/keyIsDown","alias":"keyIsDown"},"keyIsPressed":{"relativeUrl":"/reference/p5/keyIsPressed"},"keyPressed()":{"relativeUrl":"/reference/p5/keyPressed","alias":"keyPressed"},"keyReleased()":{"relativeUrl":"/reference/p5/keyReleased","alias":"keyReleased"},"keyTyped()":{"relativeUrl":"/reference/p5/keyTyped","alias":"keyTyped"},"lerp()":{"relativeUrl":"/reference/p5/lerp","alias":"lerp"},"lerpColor()":{"relativeUrl":"/reference/p5/lerpColor","alias":"lerpColor"},"let":{"relativeUrl":"/reference/p5/let"},"lightFalloff()":{"relativeUrl":"/reference/p5/lightFalloff","alias":"lightFalloff"},"lightness()":{"relativeUrl":"/reference/p5/lightness","alias":"lightness"},"lights()":{"relativeUrl":"/reference/p5/lights","alias":"lights"},"line()":{"relativeUrl":"/reference/p5/line","alias":"line"},"linePerspective()":{"relativeUrl":"/reference/p5/linePerspective","alias":"linePerspective"},"loadBytes()":{"relativeUrl":"/reference/p5/loadBytes","alias":"loadBytes"},"loadFont()":{"relativeUrl":"/reference/p5/loadFont","alias":"loadFont"},"loadImage()":{"relativeUrl":"/reference/p5/loadImage","alias":"loadImage"},"loadJSON()":{"relativeUrl":"/reference/p5/loadJSON","alias":"loadJSON"},"loadModel()":{"relativeUrl":"/reference/p5/loadModel","alias":"loadModel"},"loadPixels()":{"relativeUrl":"/reference/p5/loadPixels","alias":"loadPixels"},"loadShader()":{"relativeUrl":"/reference/p5/loadShader","alias":"loadShader"},"loadSound()":{"relativeUrl":"/reference/p5/loadSound","alias":"loadSound"},"loadStrings()":{"relativeUrl":"/reference/p5/loadStrings","alias":"loadStrings"},"loadTable()":{"relativeUrl":"/reference/p5/loadTable","alias":"loadTable"},"loadXML()":{"relativeUrl":"/reference/p5/loadXML","alias":"loadXML"},"log()":{"relativeUrl":"/reference/p5/log","alias":"log"},"loop()":{"relativeUrl":"/reference/p5/loop","alias":"loop"},"mag()":{"relativeUrl":"/reference/p5/mag","alias":"mag"},"map()":{"relativeUrl":"/reference/p5/map","alias":"map"},"match()":{"relativeUrl":"/reference/p5/match","alias":"match"},"matchAll()":{"relativeUrl":"/reference/p5/matchAll","alias":"matchAll"},"max()":{"relativeUrl":"/reference/p5/max","alias":"max"},"metalness()":{"relativeUrl":"/reference/p5/metalness","alias":"metalness"},"midiToFreq()":{"relativeUrl":"/reference/p5/midiToFreq","alias":"midiToFreq"},"millis()":{"relativeUrl":"/reference/p5/millis","alias":"millis"},"min()":{"relativeUrl":"/reference/p5/min","alias":"min"},"minute()":{"relativeUrl":"/reference/p5/minute","alias":"minute"},"model()":{"relativeUrl":"/reference/p5/model","alias":"model"},"month()":{"relativeUrl":"/reference/p5/month","alias":"month"},"mouseButton":{"relativeUrl":"/reference/p5/mouseButton"},"mouseClicked()":{"relativeUrl":"/reference/p5/mouseClicked","alias":"mouseClicked"},"mouseDragged()":{"relativeUrl":"/reference/p5/mouseDragged","alias":"mouseDragged"},"mouseIsPressed":{"relativeUrl":"/reference/p5/mouseIsPressed"},"mouseMoved()":{"relativeUrl":"/reference/p5/mouseMoved","alias":"mouseMoved"},"mousePressed()":{"relativeUrl":"/reference/p5/mousePressed","alias":"mousePressed"},"mouseReleased()":{"relativeUrl":"/reference/p5/mouseReleased","alias":"mouseReleased"},"mouseWheel()":{"relativeUrl":"/reference/p5/mouseWheel","alias":"mouseWheel"},"mouseX":{"relativeUrl":"/reference/p5/mouseX"},"mouseY":{"relativeUrl":"/reference/p5/mouseY"},"movedX":{"relativeUrl":"/reference/p5/movedX"},"movedY":{"relativeUrl":"/reference/p5/movedY"},"nf()":{"relativeUrl":"/reference/p5/nf","alias":"nf"},"nfc()":{"relativeUrl":"/reference/p5/nfc","alias":"nfc"},"nfp()":{"relativeUrl":"/reference/p5/nfp","alias":"nfp"},"nfs()":{"relativeUrl":"/reference/p5/nfs","alias":"nfs"},"noCanvas()":{"relativeUrl":"/reference/p5/noCanvas","alias":"noCanvas"},"noCursor()":{"relativeUrl":"/reference/p5/noCursor","alias":"noCursor"},"noDebugMode()":{"relativeUrl":"/reference/p5/noDebugMode","alias":"noDebugMode"},"noErase()":{"relativeUrl":"/reference/p5/noErase","alias":"noErase"},"noFill()":{"relativeUrl":"/reference/p5/noFill","alias":"noFill"},"noLights()":{"relativeUrl":"/reference/p5/noLights","alias":"noLights"},"noLoop()":{"relativeUrl":"/reference/p5/noLoop","alias":"noLoop"},"noSmooth()":{"relativeUrl":"/reference/p5/noSmooth","alias":"noSmooth"},"noStroke()":{"relativeUrl":"/reference/p5/noStroke","alias":"noStroke"},"noTint()":{"relativeUrl":"/reference/p5/noTint","alias":"noTint"},"noise()":{"relativeUrl":"/reference/p5/noise","alias":"noise"},"noiseDetail()":{"relativeUrl":"/reference/p5/noiseDetail","alias":"noiseDetail"},"noiseSeed()":{"relativeUrl":"/reference/p5/noiseSeed","alias":"noiseSeed"},"norm()":{"relativeUrl":"/reference/p5/norm","alias":"norm"},"normal()":{"relativeUrl":"/reference/p5/normal","alias":"normal"},"normalMaterial()":{"relativeUrl":"/reference/p5/normalMaterial","alias":"normalMaterial"},"orbitControl()":{"relativeUrl":"/reference/p5/orbitControl","alias":"orbitControl"},"ortho()":{"relativeUrl":"/reference/p5/ortho","alias":"ortho"},"outputVolume()":{"relativeUrl":"/reference/p5/outputVolume","alias":"outputVolume"},"p5.Camera":{"relativeUrl":"/reference/p5/p5.Camera"},"p5.Color":{"relativeUrl":"/reference/p5/p5.Color"},"p5.Element":{"relativeUrl":"/reference/p5/p5.Element"},"p5.File":{"relativeUrl":"/reference/p5/p5.File"},"p5.Font":{"relativeUrl":"/reference/p5/p5.Font"},"p5.Framebuffer":{"relativeUrl":"/reference/p5/p5.Framebuffer"},"p5.Geometry":{"relativeUrl":"/reference/p5/p5.Geometry"},"p5.Graphics":{"relativeUrl":"/reference/p5/p5.Graphics"},"p5.Image":{"relativeUrl":"/reference/p5/p5.Image"},"p5.MediaElement":{"relativeUrl":"/reference/p5/p5.MediaElement"},"p5.NumberDict":{"relativeUrl":"/reference/p5/p5.NumberDict"},"p5.PrintWriter":{"relativeUrl":"/reference/p5/p5.PrintWriter"},"p5.Renderer":{"relativeUrl":"/reference/p5/p5.Renderer"},"p5.Shader":{"relativeUrl":"/reference/p5/p5.Shader"},"p5.StringDict":{"relativeUrl":"/reference/p5/p5.StringDict"},"p5.Table":{"relativeUrl":"/reference/p5/p5.Table"},"p5.TableRow":{"relativeUrl":"/reference/p5/p5.TableRow"},"p5.TypedDict":{"relativeUrl":"/reference/p5/p5.TypedDict"},"p5.Vector":{"relativeUrl":"/reference/p5/p5.Vector"},"p5.XML":{"relativeUrl":"/reference/p5/p5.XML"},"p5":{"relativeUrl":"/reference/p5/p5"},"pAccelerationX":{"relativeUrl":"/reference/p5/pAccelerationX"},"pAccelerationY":{"relativeUrl":"/reference/p5/pAccelerationY"},"pAccelerationZ":{"relativeUrl":"/reference/p5/pAccelerationZ"},"pRotationX":{"relativeUrl":"/reference/p5/pRotationX"},"pRotationY":{"relativeUrl":"/reference/p5/pRotationY"},"pRotationZ":{"relativeUrl":"/reference/p5/pRotationZ"},"paletteLerp()":{"relativeUrl":"/reference/p5/paletteLerp","alias":"paletteLerp"},"panorama()":{"relativeUrl":"/reference/p5/panorama","alias":"panorama"},"perspective()":{"relativeUrl":"/reference/p5/perspective","alias":"perspective"},"pixelDensity()":{"relativeUrl":"/reference/p5/pixelDensity","alias":"pixelDensity"},"pixels":{"relativeUrl":"/reference/p5/pixels"},"plane()":{"relativeUrl":"/reference/p5/plane","alias":"plane"},"pmouseX":{"relativeUrl":"/reference/p5/pmouseX"},"pmouseY":{"relativeUrl":"/reference/p5/pmouseY"},"point()":{"relativeUrl":"/reference/p5/point","alias":"point"},"pointLight()":{"relativeUrl":"/reference/p5/pointLight","alias":"pointLight"},"pop()":{"relativeUrl":"/reference/p5/pop","alias":"pop"},"pow()":{"relativeUrl":"/reference/p5/pow","alias":"pow"},"preload()":{"relativeUrl":"/reference/p5/preload","alias":"preload"},"print()":{"relativeUrl":"/reference/p5/print","alias":"print"},"push()":{"relativeUrl":"/reference/p5/push","alias":"push"},"pwinMouseX":{"relativeUrl":"/reference/p5/pwinMouseX"},"pwinMouseY":{"relativeUrl":"/reference/p5/pwinMouseY"},"quad()":{"relativeUrl":"/reference/p5/quad","alias":"quad"},"quadraticVertex()":{"relativeUrl":"/reference/p5/quadraticVertex","alias":"quadraticVertex"},"radians()":{"relativeUrl":"/reference/p5/radians","alias":"radians"},"random()":{"relativeUrl":"/reference/p5/random","alias":"random"},"randomGaussian()":{"relativeUrl":"/reference/p5/randomGaussian","alias":"randomGaussian"},"randomSeed()":{"relativeUrl":"/reference/p5/randomSeed","alias":"randomSeed"},"rect()":{"relativeUrl":"/reference/p5/rect","alias":"rect"},"rectMode()":{"relativeUrl":"/reference/p5/rectMode","alias":"rectMode"},"red()":{"relativeUrl":"/reference/p5/red","alias":"red"},"redraw()":{"relativeUrl":"/reference/p5/redraw","alias":"redraw"},"remove()":{"relativeUrl":"/reference/p5/remove","alias":"remove"},"removeElements()":{"relativeUrl":"/reference/p5/removeElements","alias":"removeElements"},"removeItem()":{"relativeUrl":"/reference/p5/removeItem","alias":"removeItem"},"requestPointerLock()":{"relativeUrl":"/reference/p5/requestPointerLock","alias":"requestPointerLock"},"resetMatrix()":{"relativeUrl":"/reference/p5/resetMatrix","alias":"resetMatrix"},"resetShader()":{"relativeUrl":"/reference/p5/resetShader","alias":"resetShader"},"resizeCanvas()":{"relativeUrl":"/reference/p5/resizeCanvas","alias":"resizeCanvas"},"reverse()":{"relativeUrl":"/reference/p5/reverse","alias":"reverse"},"rotate()":{"relativeUrl":"/reference/p5/rotate","alias":"rotate"},"rotateX()":{"relativeUrl":"/reference/p5/rotateX","alias":"rotateX"},"rotateY()":{"relativeUrl":"/reference/p5/rotateY","alias":"rotateY"},"rotateZ()":{"relativeUrl":"/reference/p5/rotateZ","alias":"rotateZ"},"rotationX":{"relativeUrl":"/reference/p5/rotationX"},"rotationY":{"relativeUrl":"/reference/p5/rotationY"},"rotationZ":{"relativeUrl":"/reference/p5/rotationZ"},"round()":{"relativeUrl":"/reference/p5/round","alias":"round"},"sampleRate()":{"relativeUrl":"/reference/p5/sampleRate","alias":"sampleRate"},"saturation()":{"relativeUrl":"/reference/p5/saturation","alias":"saturation"},"save()":{"relativeUrl":"/reference/p5/save","alias":"save"},"saveCanvas()":{"relativeUrl":"/reference/p5/saveCanvas","alias":"saveCanvas"},"saveFrames()":{"relativeUrl":"/reference/p5/saveFrames","alias":"saveFrames"},"saveGif()":{"relativeUrl":"/reference/p5/saveGif","alias":"saveGif"},"saveJSON()":{"relativeUrl":"/reference/p5/saveJSON","alias":"saveJSON"},"saveSound()":{"relativeUrl":"/reference/p5/saveSound","alias":"saveSound"},"saveStrings()":{"relativeUrl":"/reference/p5/saveStrings","alias":"saveStrings"},"saveTable()":{"relativeUrl":"/reference/p5/saveTable","alias":"saveTable"},"scale()":{"relativeUrl":"/reference/p5/scale","alias":"scale"},"second()":{"relativeUrl":"/reference/p5/second","alias":"second"},"select()":{"relativeUrl":"/reference/p5/select","alias":"select"},"selectAll()":{"relativeUrl":"/reference/p5/selectAll","alias":"selectAll"},"set()":{"relativeUrl":"/reference/p5/set","alias":"set"},"setAttributes()":{"relativeUrl":"/reference/p5/setAttributes","alias":"setAttributes"},"setBPM()":{"relativeUrl":"/reference/p5/setBPM","alias":"setBPM"},"setCamera()":{"relativeUrl":"/reference/p5/setCamera","alias":"setCamera"},"setMoveThreshold()":{"relativeUrl":"/reference/p5/setMoveThreshold","alias":"setMoveThreshold"},"setShakeThreshold()":{"relativeUrl":"/reference/p5/setShakeThreshold","alias":"setShakeThreshold"},"setup()":{"relativeUrl":"/reference/p5/setup","alias":"setup"},"shader()":{"relativeUrl":"/reference/p5/shader","alias":"shader"},"shearX()":{"relativeUrl":"/reference/p5/shearX","alias":"shearX"},"shearY()":{"relativeUrl":"/reference/p5/shearY","alias":"shearY"},"shininess()":{"relativeUrl":"/reference/p5/shininess","alias":"shininess"},"shorten()":{"relativeUrl":"/reference/p5/shorten","alias":"shorten"},"shuffle()":{"relativeUrl":"/reference/p5/shuffle","alias":"shuffle"},"sin()":{"relativeUrl":"/reference/p5/sin","alias":"sin"},"smooth()":{"relativeUrl":"/reference/p5/smooth","alias":"smooth"},"sort()":{"relativeUrl":"/reference/p5/sort","alias":"sort"},"soundFormats()":{"relativeUrl":"/reference/p5/soundFormats","alias":"soundFormats"},"soundOut":{"relativeUrl":"/reference/p5/soundOut"},"specularColor()":{"relativeUrl":"/reference/p5/specularColor","alias":"specularColor"},"specularMaterial()":{"relativeUrl":"/reference/p5/specularMaterial","alias":"specularMaterial"},"sphere()":{"relativeUrl":"/reference/p5/sphere","alias":"sphere"},"splice()":{"relativeUrl":"/reference/p5/splice","alias":"splice"},"split()":{"relativeUrl":"/reference/p5/split","alias":"split"},"splitTokens()":{"relativeUrl":"/reference/p5/splitTokens","alias":"splitTokens"},"spotLight()":{"relativeUrl":"/reference/p5/spotLight","alias":"spotLight"},"sq()":{"relativeUrl":"/reference/p5/sq","alias":"sq"},"sqrt()":{"relativeUrl":"/reference/p5/sqrt","alias":"sqrt"},"square()":{"relativeUrl":"/reference/p5/square","alias":"square"},"storeItem()":{"relativeUrl":"/reference/p5/storeItem","alias":"storeItem"},"str()":{"relativeUrl":"/reference/p5/str","alias":"str"},"stroke()":{"relativeUrl":"/reference/p5/stroke","alias":"stroke"},"strokeCap()":{"relativeUrl":"/reference/p5/strokeCap","alias":"strokeCap"},"strokeJoin()":{"relativeUrl":"/reference/p5/strokeJoin","alias":"strokeJoin"},"strokeWeight()":{"relativeUrl":"/reference/p5/strokeWeight","alias":"strokeWeight"},"subset()":{"relativeUrl":"/reference/p5/subset","alias":"subset"},"tan()":{"relativeUrl":"/reference/p5/tan","alias":"tan"},"text()":{"relativeUrl":"/reference/p5/text","alias":"text"},"textAlign()":{"relativeUrl":"/reference/p5/textAlign","alias":"textAlign"},"textAscent()":{"relativeUrl":"/reference/p5/textAscent","alias":"textAscent"},"textDescent()":{"relativeUrl":"/reference/p5/textDescent","alias":"textDescent"},"textFont()":{"relativeUrl":"/reference/p5/textFont","alias":"textFont"},"textLeading()":{"relativeUrl":"/reference/p5/textLeading","alias":"textLeading"},"textOutput()":{"relativeUrl":"/reference/p5/textOutput","alias":"textOutput"},"textSize()":{"relativeUrl":"/reference/p5/textSize","alias":"textSize"},"textStyle()":{"relativeUrl":"/reference/p5/textStyle","alias":"textStyle"},"textWidth()":{"relativeUrl":"/reference/p5/textWidth","alias":"textWidth"},"textWrap()":{"relativeUrl":"/reference/p5/textWrap","alias":"textWrap"},"texture()":{"relativeUrl":"/reference/p5/texture","alias":"texture"},"textureMode()":{"relativeUrl":"/reference/p5/textureMode","alias":"textureMode"},"textureWrap()":{"relativeUrl":"/reference/p5/textureWrap","alias":"textureWrap"},"tint()":{"relativeUrl":"/reference/p5/tint","alias":"tint"},"torus()":{"relativeUrl":"/reference/p5/torus","alias":"torus"},"touchEnded()":{"relativeUrl":"/reference/p5/touchEnded","alias":"touchEnded"},"touchMoved()":{"relativeUrl":"/reference/p5/touchMoved","alias":"touchMoved"},"touchStarted()":{"relativeUrl":"/reference/p5/touchStarted","alias":"touchStarted"},"touches":{"relativeUrl":"/reference/p5/touches"},"translate()":{"relativeUrl":"/reference/p5/translate","alias":"translate"},"triangle()":{"relativeUrl":"/reference/p5/triangle","alias":"triangle"},"trim()":{"relativeUrl":"/reference/p5/trim","alias":"trim"},"turnAxis":{"relativeUrl":"/reference/p5/turnAxis"},"Array":{"relativeUrl":"/reference/p5/Array"},"Boolean":{"relativeUrl":"/reference/p5/Boolean"},"Number":{"relativeUrl":"/reference/p5/Number"},"Object":{"relativeUrl":"/reference/p5/Object"},"String":{"relativeUrl":"/reference/p5/String"},"unchar()":{"relativeUrl":"/reference/p5/unchar","alias":"unchar"},"unhex()":{"relativeUrl":"/reference/p5/unhex","alias":"unhex"},"updatePixels()":{"relativeUrl":"/reference/p5/updatePixels","alias":"updatePixels"},"userStartAudio()":{"relativeUrl":"/reference/p5/userStartAudio","alias":"userStartAudio"},"vertex()":{"relativeUrl":"/reference/p5/vertex","alias":"vertex"},"webglVersion":{"relativeUrl":"/reference/p5/webglVersion"},"while":{"relativeUrl":"/reference/p5/while"},"width":{"relativeUrl":"/reference/p5/width"},"winMouseX":{"relativeUrl":"/reference/p5/winMouseX"},"winMouseY":{"relativeUrl":"/reference/p5/winMouseY"},"windowHeight":{"relativeUrl":"/reference/p5/windowHeight"},"windowResized()":{"relativeUrl":"/reference/p5/windowResized","alias":"windowResized"},"windowWidth":{"relativeUrl":"/reference/p5/windowWidth"},"year()":{"relativeUrl":"/reference/p5/year","alias":"year"},"p5.Amplitude.getLevel()":{"relativeUrl":"/reference/p5.Amplitude/getLevel","alias":"getLevel"},"p5.Amplitude.setInput()":{"relativeUrl":"/reference/p5.Amplitude/setInput","alias":"setInput"},"p5.Amplitude.smooth()":{"relativeUrl":"/reference/p5.Amplitude/smooth","alias":"smooth"},"p5.Amplitude.toggleNormalize()":{"relativeUrl":"/reference/p5.Amplitude/toggleNormalize","alias":"toggleNormalize"},"p5.AudioIn.amp()":{"relativeUrl":"/reference/p5.AudioIn/amp","alias":"amp"},"p5.AudioIn.amplitude":{"relativeUrl":"/reference/p5.AudioIn/amplitude","alias":"amplitude"},"p5.AudioIn.connect()":{"relativeUrl":"/reference/p5.AudioIn/connect","alias":"connect"},"p5.AudioIn.disconnect()":{"relativeUrl":"/reference/p5.AudioIn/disconnect","alias":"disconnect"},"p5.AudioIn.enabled":{"relativeUrl":"/reference/p5.AudioIn/enabled","alias":"enabled"},"p5.AudioIn.getLevel()":{"relativeUrl":"/reference/p5.AudioIn/getLevel","alias":"getLevel"},"p5.AudioIn.getSources()":{"relativeUrl":"/reference/p5.AudioIn/getSources","alias":"getSources"},"p5.AudioIn.setSource()":{"relativeUrl":"/reference/p5.AudioIn/setSource","alias":"setSource"},"p5.AudioIn.start()":{"relativeUrl":"/reference/p5.AudioIn/start","alias":"start"},"p5.AudioIn.stop()":{"relativeUrl":"/reference/p5.AudioIn/stop","alias":"stop"},"p5.AudioVoice.connect()":{"relativeUrl":"/reference/p5.AudioVoice/connect","alias":"connect"},"p5.AudioVoice.disconnect()":{"relativeUrl":"/reference/p5.AudioVoice/disconnect","alias":"disconnect"},"p5.Camera.camera()":{"relativeUrl":"/reference/p5.Camera/camera","alias":"camera"},"p5.Camera.centerX":{"relativeUrl":"/reference/p5.Camera/centerX","alias":"centerX"},"p5.Camera.centerY":{"relativeUrl":"/reference/p5.Camera/centerY","alias":"centerY"},"p5.Camera.centerZ":{"relativeUrl":"/reference/p5.Camera/centerZ","alias":"centerZ"},"p5.Camera.eyeX":{"relativeUrl":"/reference/p5.Camera/eyeX","alias":"eyeX"},"p5.Camera.eyeY":{"relativeUrl":"/reference/p5.Camera/eyeY","alias":"eyeY"},"p5.Camera.eyeZ":{"relativeUrl":"/reference/p5.Camera/eyeZ","alias":"eyeZ"},"p5.Camera.frustum()":{"relativeUrl":"/reference/p5.Camera/frustum","alias":"frustum"},"p5.Camera.lookAt()":{"relativeUrl":"/reference/p5.Camera/lookAt","alias":"lookAt"},"p5.Camera.move()":{"relativeUrl":"/reference/p5.Camera/move","alias":"move"},"p5.Camera.ortho()":{"relativeUrl":"/reference/p5.Camera/ortho","alias":"ortho"},"p5.Camera.pan()":{"relativeUrl":"/reference/p5.Camera/pan","alias":"pan"},"p5.Camera.perspective()":{"relativeUrl":"/reference/p5.Camera/perspective","alias":"perspective"},"p5.Camera.roll()":{"relativeUrl":"/reference/p5.Camera/roll","alias":"roll"},"p5.Camera.set()":{"relativeUrl":"/reference/p5.Camera/set","alias":"set"},"p5.Camera.setPosition()":{"relativeUrl":"/reference/p5.Camera/setPosition","alias":"setPosition"},"p5.Camera.slerp()":{"relativeUrl":"/reference/p5.Camera/slerp","alias":"slerp"},"p5.Camera.tilt()":{"relativeUrl":"/reference/p5.Camera/tilt","alias":"tilt"},"p5.Camera.upX":{"relativeUrl":"/reference/p5.Camera/upX","alias":"upX"},"p5.Camera.upY":{"relativeUrl":"/reference/p5.Camera/upY","alias":"upY"},"p5.Camera.upZ":{"relativeUrl":"/reference/p5.Camera/upZ","alias":"upZ"},"p5.Color.setAlpha()":{"relativeUrl":"/reference/p5.Color/setAlpha","alias":"setAlpha"},"p5.Color.setBlue()":{"relativeUrl":"/reference/p5.Color/setBlue","alias":"setBlue"},"p5.Color.setGreen()":{"relativeUrl":"/reference/p5.Color/setGreen","alias":"setGreen"},"p5.Color.setRed()":{"relativeUrl":"/reference/p5.Color/setRed","alias":"setRed"},"p5.Color.toString()":{"relativeUrl":"/reference/p5.Color/toString","alias":"toString"},"p5.Compressor.attack()":{"relativeUrl":"/reference/p5.Compressor/attack","alias":"attack"},"p5.Compressor.compressor":{"relativeUrl":"/reference/p5.Compressor/compressor","alias":"compressor"},"p5.Compressor.knee()":{"relativeUrl":"/reference/p5.Compressor/knee","alias":"knee"},"p5.Compressor.process()":{"relativeUrl":"/reference/p5.Compressor/process","alias":"process"},"p5.Compressor.ratio()":{"relativeUrl":"/reference/p5.Compressor/ratio","alias":"ratio"},"p5.Compressor.reduction()":{"relativeUrl":"/reference/p5.Compressor/reduction","alias":"reduction"},"p5.Compressor.release()":{"relativeUrl":"/reference/p5.Compressor/release","alias":"release"},"p5.Compressor.set()":{"relativeUrl":"/reference/p5.Compressor/set","alias":"set"},"p5.Compressor.threshold()":{"relativeUrl":"/reference/p5.Compressor/threshold","alias":"threshold"},"p5.Convolver.addImpulse()":{"relativeUrl":"/reference/p5.Convolver/addImpulse","alias":"addImpulse"},"p5.Convolver.convolverNode":{"relativeUrl":"/reference/p5.Convolver/convolverNode","alias":"convolverNode"},"p5.Convolver.impulses":{"relativeUrl":"/reference/p5.Convolver/impulses","alias":"impulses"},"p5.Convolver.process()":{"relativeUrl":"/reference/p5.Convolver/process","alias":"process"},"p5.Convolver.resetImpulse()":{"relativeUrl":"/reference/p5.Convolver/resetImpulse","alias":"resetImpulse"},"p5.Convolver.toggleImpulse()":{"relativeUrl":"/reference/p5.Convolver/toggleImpulse","alias":"toggleImpulse"},"p5.Delay.amp()":{"relativeUrl":"/reference/p5.Delay/amp","alias":"amp"},"p5.Delay.connect()":{"relativeUrl":"/reference/p5.Delay/connect","alias":"connect"},"p5.Delay.delayTime()":{"relativeUrl":"/reference/p5.Delay/delayTime","alias":"delayTime"},"p5.Delay.disconnect()":{"relativeUrl":"/reference/p5.Delay/disconnect","alias":"disconnect"},"p5.Delay.feedback()":{"relativeUrl":"/reference/p5.Delay/feedback","alias":"feedback"},"p5.Delay.filter()":{"relativeUrl":"/reference/p5.Delay/filter","alias":"filter"},"p5.Delay.leftDelay":{"relativeUrl":"/reference/p5.Delay/leftDelay","alias":"leftDelay"},"p5.Delay.process()":{"relativeUrl":"/reference/p5.Delay/process","alias":"process"},"p5.Delay.rightDelay":{"relativeUrl":"/reference/p5.Delay/rightDelay","alias":"rightDelay"},"p5.Delay.setType()":{"relativeUrl":"/reference/p5.Delay/setType","alias":"setType"},"p5.Distortion.WaveShaperNode":{"relativeUrl":"/reference/p5.Distortion/WaveShaperNode","alias":"WaveShaperNode"},"p5.Distortion.getAmount()":{"relativeUrl":"/reference/p5.Distortion/getAmount","alias":"getAmount"},"p5.Distortion.getOversample()":{"relativeUrl":"/reference/p5.Distortion/getOversample","alias":"getOversample"},"p5.Distortion.process()":{"relativeUrl":"/reference/p5.Distortion/process","alias":"process"},"p5.Distortion.set()":{"relativeUrl":"/reference/p5.Distortion/set","alias":"set"},"p5.EQ.bands":{"relativeUrl":"/reference/p5.EQ/bands","alias":"bands"},"p5.EQ.process()":{"relativeUrl":"/reference/p5.EQ/process","alias":"process"},"p5.Effect.amp()":{"relativeUrl":"/reference/p5.Effect/amp","alias":"amp"},"p5.Effect.chain()":{"relativeUrl":"/reference/p5.Effect/chain","alias":"chain"},"p5.Effect.connect()":{"relativeUrl":"/reference/p5.Effect/connect","alias":"connect"},"p5.Effect.disconnect()":{"relativeUrl":"/reference/p5.Effect/disconnect","alias":"disconnect"},"p5.Effect.drywet()":{"relativeUrl":"/reference/p5.Effect/drywet","alias":"drywet"},"p5.Element.addClass()":{"relativeUrl":"/reference/p5.Element/addClass","alias":"addClass"},"p5.Element.attribute()":{"relativeUrl":"/reference/p5.Element/attribute","alias":"attribute"},"p5.Element.center()":{"relativeUrl":"/reference/p5.Element/center","alias":"center"},"p5.Element.child()":{"relativeUrl":"/reference/p5.Element/child","alias":"child"},"p5.Element.class()":{"relativeUrl":"/reference/p5.Element/class","alias":"class"},"p5.Element.doubleClicked()":{"relativeUrl":"/reference/p5.Element/doubleClicked","alias":"doubleClicked"},"p5.Element.dragLeave()":{"relativeUrl":"/reference/p5.Element/dragLeave","alias":"dragLeave"},"p5.Element.dragOver()":{"relativeUrl":"/reference/p5.Element/dragOver","alias":"dragOver"},"p5.Element.draggable()":{"relativeUrl":"/reference/p5.Element/draggable","alias":"draggable"},"p5.Element.drop()":{"relativeUrl":"/reference/p5.Element/drop","alias":"drop"},"p5.Element.elt":{"relativeUrl":"/reference/p5.Element/elt","alias":"elt"},"p5.Element.hasClass()":{"relativeUrl":"/reference/p5.Element/hasClass","alias":"hasClass"},"p5.Element.height":{"relativeUrl":"/reference/p5.Element/height","alias":"height"},"p5.Element.hide()":{"relativeUrl":"/reference/p5.Element/hide","alias":"hide"},"p5.Element.html()":{"relativeUrl":"/reference/p5.Element/html","alias":"html"},"p5.Element.id()":{"relativeUrl":"/reference/p5.Element/id","alias":"id"},"p5.Element.mouseClicked()":{"relativeUrl":"/reference/p5.Element/mouseClicked","alias":"mouseClicked"},"p5.Element.mouseMoved()":{"relativeUrl":"/reference/p5.Element/mouseMoved","alias":"mouseMoved"},"p5.Element.mouseOut()":{"relativeUrl":"/reference/p5.Element/mouseOut","alias":"mouseOut"},"p5.Element.mouseOver()":{"relativeUrl":"/reference/p5.Element/mouseOver","alias":"mouseOver"},"p5.Element.mousePressed()":{"relativeUrl":"/reference/p5.Element/mousePressed","alias":"mousePressed"},"p5.Element.mouseReleased()":{"relativeUrl":"/reference/p5.Element/mouseReleased","alias":"mouseReleased"},"p5.Element.mouseWheel()":{"relativeUrl":"/reference/p5.Element/mouseWheel","alias":"mouseWheel"},"p5.Element.parent()":{"relativeUrl":"/reference/p5.Element/parent","alias":"parent"},"p5.Element.position()":{"relativeUrl":"/reference/p5.Element/position","alias":"position"},"p5.Element.remove()":{"relativeUrl":"/reference/p5.Element/remove","alias":"remove"},"p5.Element.removeAttribute()":{"relativeUrl":"/reference/p5.Element/removeAttribute","alias":"removeAttribute"},"p5.Element.removeClass()":{"relativeUrl":"/reference/p5.Element/removeClass","alias":"removeClass"},"p5.Element.show()":{"relativeUrl":"/reference/p5.Element/show","alias":"show"},"p5.Element.size()":{"relativeUrl":"/reference/p5.Element/size","alias":"size"},"p5.Element.style()":{"relativeUrl":"/reference/p5.Element/style","alias":"style"},"p5.Element.toggleClass()":{"relativeUrl":"/reference/p5.Element/toggleClass","alias":"toggleClass"},"p5.Element.touchEnded()":{"relativeUrl":"/reference/p5.Element/touchEnded","alias":"touchEnded"},"p5.Element.touchMoved()":{"relativeUrl":"/reference/p5.Element/touchMoved","alias":"touchMoved"},"p5.Element.touchStarted()":{"relativeUrl":"/reference/p5.Element/touchStarted","alias":"touchStarted"},"p5.Element.value()":{"relativeUrl":"/reference/p5.Element/value","alias":"value"},"p5.Element.width":{"relativeUrl":"/reference/p5.Element/width","alias":"width"},"p5.Envelope.add()":{"relativeUrl":"/reference/p5.Envelope/add","alias":"add"},"p5.Envelope.attackLevel":{"relativeUrl":"/reference/p5.Envelope/attackLevel","alias":"attackLevel"},"p5.Envelope.attackTime":{"relativeUrl":"/reference/p5.Envelope/attackTime","alias":"attackTime"},"p5.Envelope.decayLevel":{"relativeUrl":"/reference/p5.Envelope/decayLevel","alias":"decayLevel"},"p5.Envelope.decayTime":{"relativeUrl":"/reference/p5.Envelope/decayTime","alias":"decayTime"},"p5.Envelope.mult()":{"relativeUrl":"/reference/p5.Envelope/mult","alias":"mult"},"p5.Envelope.play()":{"relativeUrl":"/reference/p5.Envelope/play","alias":"play"},"p5.Envelope.ramp()":{"relativeUrl":"/reference/p5.Envelope/ramp","alias":"ramp"},"p5.Envelope.releaseLevel":{"relativeUrl":"/reference/p5.Envelope/releaseLevel","alias":"releaseLevel"},"p5.Envelope.releaseTime":{"relativeUrl":"/reference/p5.Envelope/releaseTime","alias":"releaseTime"},"p5.Envelope.scale()":{"relativeUrl":"/reference/p5.Envelope/scale","alias":"scale"},"p5.Envelope.set()":{"relativeUrl":"/reference/p5.Envelope/set","alias":"set"},"p5.Envelope.setADSR()":{"relativeUrl":"/reference/p5.Envelope/setADSR","alias":"setADSR"},"p5.Envelope.setExp()":{"relativeUrl":"/reference/p5.Envelope/setExp","alias":"setExp"},"p5.Envelope.setInput()":{"relativeUrl":"/reference/p5.Envelope/setInput","alias":"setInput"},"p5.Envelope.setRange()":{"relativeUrl":"/reference/p5.Envelope/setRange","alias":"setRange"},"p5.Envelope.triggerAttack()":{"relativeUrl":"/reference/p5.Envelope/triggerAttack","alias":"triggerAttack"},"p5.Envelope.triggerRelease()":{"relativeUrl":"/reference/p5.Envelope/triggerRelease","alias":"triggerRelease"},"p5.FFT.analyze()":{"relativeUrl":"/reference/p5.FFT/analyze","alias":"analyze"},"p5.FFT.getCentroid()":{"relativeUrl":"/reference/p5.FFT/getCentroid","alias":"getCentroid"},"p5.FFT.getEnergy()":{"relativeUrl":"/reference/p5.FFT/getEnergy","alias":"getEnergy"},"p5.FFT.getOctaveBands()":{"relativeUrl":"/reference/p5.FFT/getOctaveBands","alias":"getOctaveBands"},"p5.FFT.linAverages()":{"relativeUrl":"/reference/p5.FFT/linAverages","alias":"linAverages"},"p5.FFT.logAverages()":{"relativeUrl":"/reference/p5.FFT/logAverages","alias":"logAverages"},"p5.FFT.setInput()":{"relativeUrl":"/reference/p5.FFT/setInput","alias":"setInput"},"p5.FFT.smooth()":{"relativeUrl":"/reference/p5.FFT/smooth","alias":"smooth"},"p5.FFT.waveform()":{"relativeUrl":"/reference/p5.FFT/waveform","alias":"waveform"},"p5.File.data":{"relativeUrl":"/reference/p5.File/data","alias":"data"},"p5.File.file":{"relativeUrl":"/reference/p5.File/file","alias":"file"},"p5.File.name":{"relativeUrl":"/reference/p5.File/name","alias":"name"},"p5.File.size":{"relativeUrl":"/reference/p5.File/size","alias":"size"},"p5.File.subtype":{"relativeUrl":"/reference/p5.File/subtype","alias":"subtype"},"p5.File.type":{"relativeUrl":"/reference/p5.File/type","alias":"type"},"p5.Filter.biquadFilter":{"relativeUrl":"/reference/p5.Filter/biquadFilter","alias":"biquadFilter"},"p5.Filter.freq()":{"relativeUrl":"/reference/p5.Filter/freq","alias":"freq"},"p5.Filter.gain()":{"relativeUrl":"/reference/p5.Filter/gain","alias":"gain"},"p5.Filter.process()":{"relativeUrl":"/reference/p5.Filter/process","alias":"process"},"p5.Filter.res()":{"relativeUrl":"/reference/p5.Filter/res","alias":"res"},"p5.Filter.set()":{"relativeUrl":"/reference/p5.Filter/set","alias":"set"},"p5.Filter.setType()":{"relativeUrl":"/reference/p5.Filter/setType","alias":"setType"},"p5.Filter.toggle()":{"relativeUrl":"/reference/p5.Filter/toggle","alias":"toggle"},"p5.Font.font":{"relativeUrl":"/reference/p5.Font/font","alias":"font"},"p5.Font.textBounds()":{"relativeUrl":"/reference/p5.Font/textBounds","alias":"textBounds"},"p5.Font.textToPoints()":{"relativeUrl":"/reference/p5.Font/textToPoints","alias":"textToPoints"},"p5.Framebuffer.autoSized()":{"relativeUrl":"/reference/p5.Framebuffer/autoSized","alias":"autoSized"},"p5.Framebuffer.begin()":{"relativeUrl":"/reference/p5.Framebuffer/begin","alias":"begin"},"p5.Framebuffer.color":{"relativeUrl":"/reference/p5.Framebuffer/color","alias":"color"},"p5.Framebuffer.createCamera()":{"relativeUrl":"/reference/p5.Framebuffer/createCamera","alias":"createCamera"},"p5.Framebuffer.depth":{"relativeUrl":"/reference/p5.Framebuffer/depth","alias":"depth"},"p5.Framebuffer.draw()":{"relativeUrl":"/reference/p5.Framebuffer/draw","alias":"draw"},"p5.Framebuffer.end()":{"relativeUrl":"/reference/p5.Framebuffer/end","alias":"end"},"p5.Framebuffer.get()":{"relativeUrl":"/reference/p5.Framebuffer/get","alias":"get"},"p5.Framebuffer.loadPixels()":{"relativeUrl":"/reference/p5.Framebuffer/loadPixels","alias":"loadPixels"},"p5.Framebuffer.pixelDensity()":{"relativeUrl":"/reference/p5.Framebuffer/pixelDensity","alias":"pixelDensity"},"p5.Framebuffer.pixels":{"relativeUrl":"/reference/p5.Framebuffer/pixels","alias":"pixels"},"p5.Framebuffer.remove()":{"relativeUrl":"/reference/p5.Framebuffer/remove","alias":"remove"},"p5.Framebuffer.resize()":{"relativeUrl":"/reference/p5.Framebuffer/resize","alias":"resize"},"p5.Framebuffer.updatePixels()":{"relativeUrl":"/reference/p5.Framebuffer/updatePixels","alias":"updatePixels"},"p5.Gain.amp()":{"relativeUrl":"/reference/p5.Gain/amp","alias":"amp"},"p5.Gain.connect()":{"relativeUrl":"/reference/p5.Gain/connect","alias":"connect"},"p5.Gain.disconnect()":{"relativeUrl":"/reference/p5.Gain/disconnect","alias":"disconnect"},"p5.Gain.setInput()":{"relativeUrl":"/reference/p5.Gain/setInput","alias":"setInput"},"p5.Geometry.calculateBoundingBox()":{"relativeUrl":"/reference/p5.Geometry/calculateBoundingBox","alias":"calculateBoundingBox"},"p5.Geometry.clearColors()":{"relativeUrl":"/reference/p5.Geometry/clearColors","alias":"clearColors"},"p5.Geometry.computeFaces()":{"relativeUrl":"/reference/p5.Geometry/computeFaces","alias":"computeFaces"},"p5.Geometry.computeNormals()":{"relativeUrl":"/reference/p5.Geometry/computeNormals","alias":"computeNormals"},"p5.Geometry.faces":{"relativeUrl":"/reference/p5.Geometry/faces","alias":"faces"},"p5.Geometry.flipU()":{"relativeUrl":"/reference/p5.Geometry/flipU","alias":"flipU"},"p5.Geometry.flipV()":{"relativeUrl":"/reference/p5.Geometry/flipV","alias":"flipV"},"p5.Geometry.normalize()":{"relativeUrl":"/reference/p5.Geometry/normalize","alias":"normalize"},"p5.Geometry.saveObj()":{"relativeUrl":"/reference/p5.Geometry/saveObj","alias":"saveObj"},"p5.Geometry.saveStl()":{"relativeUrl":"/reference/p5.Geometry/saveStl","alias":"saveStl"},"p5.Geometry.uvs":{"relativeUrl":"/reference/p5.Geometry/uvs","alias":"uvs"},"p5.Geometry.vertexNormals":{"relativeUrl":"/reference/p5.Geometry/vertexNormals","alias":"vertexNormals"},"p5.Geometry.vertices":{"relativeUrl":"/reference/p5.Geometry/vertices","alias":"vertices"},"p5.Graphics.createFramebuffer()":{"relativeUrl":"/reference/p5.Graphics/createFramebuffer","alias":"createFramebuffer"},"p5.Graphics.remove()":{"relativeUrl":"/reference/p5.Graphics/remove","alias":"remove"},"p5.Graphics.reset()":{"relativeUrl":"/reference/p5.Graphics/reset","alias":"reset"},"p5.Image.blend()":{"relativeUrl":"/reference/p5.Image/blend","alias":"blend"},"p5.Image.copy()":{"relativeUrl":"/reference/p5.Image/copy","alias":"copy"},"p5.Image.delay()":{"relativeUrl":"/reference/p5.Image/delay","alias":"delay"},"p5.Image.filter()":{"relativeUrl":"/reference/p5.Image/filter","alias":"filter"},"p5.Image.get()":{"relativeUrl":"/reference/p5.Image/get","alias":"get"},"p5.Image.getCurrentFrame()":{"relativeUrl":"/reference/p5.Image/getCurrentFrame","alias":"getCurrentFrame"},"p5.Image.height":{"relativeUrl":"/reference/p5.Image/height","alias":"height"},"p5.Image.loadPixels()":{"relativeUrl":"/reference/p5.Image/loadPixels","alias":"loadPixels"},"p5.Image.mask()":{"relativeUrl":"/reference/p5.Image/mask","alias":"mask"},"p5.Image.numFrames()":{"relativeUrl":"/reference/p5.Image/numFrames","alias":"numFrames"},"p5.Image.pause()":{"relativeUrl":"/reference/p5.Image/pause","alias":"pause"},"p5.Image.pixelDensity()":{"relativeUrl":"/reference/p5.Image/pixelDensity","alias":"pixelDensity"},"p5.Image.pixels":{"relativeUrl":"/reference/p5.Image/pixels","alias":"pixels"},"p5.Image.play()":{"relativeUrl":"/reference/p5.Image/play","alias":"play"},"p5.Image.reset()":{"relativeUrl":"/reference/p5.Image/reset","alias":"reset"},"p5.Image.resize()":{"relativeUrl":"/reference/p5.Image/resize","alias":"resize"},"p5.Image.save()":{"relativeUrl":"/reference/p5.Image/save","alias":"save"},"p5.Image.set()":{"relativeUrl":"/reference/p5.Image/set","alias":"set"},"p5.Image.setFrame()":{"relativeUrl":"/reference/p5.Image/setFrame","alias":"setFrame"},"p5.Image.updatePixels()":{"relativeUrl":"/reference/p5.Image/updatePixels","alias":"updatePixels"},"p5.Image.width":{"relativeUrl":"/reference/p5.Image/width","alias":"width"},"p5.MediaElement.addCue()":{"relativeUrl":"/reference/p5.MediaElement/addCue","alias":"addCue"},"p5.MediaElement.autoplay()":{"relativeUrl":"/reference/p5.MediaElement/autoplay","alias":"autoplay"},"p5.MediaElement.clearCues()":{"relativeUrl":"/reference/p5.MediaElement/clearCues","alias":"clearCues"},"p5.MediaElement.connect()":{"relativeUrl":"/reference/p5.MediaElement/connect","alias":"connect"},"p5.MediaElement.disconnect()":{"relativeUrl":"/reference/p5.MediaElement/disconnect","alias":"disconnect"},"p5.MediaElement.duration()":{"relativeUrl":"/reference/p5.MediaElement/duration","alias":"duration"},"p5.MediaElement.hideControls()":{"relativeUrl":"/reference/p5.MediaElement/hideControls","alias":"hideControls"},"p5.MediaElement.loop()":{"relativeUrl":"/reference/p5.MediaElement/loop","alias":"loop"},"p5.MediaElement.noLoop()":{"relativeUrl":"/reference/p5.MediaElement/noLoop","alias":"noLoop"},"p5.MediaElement.onended()":{"relativeUrl":"/reference/p5.MediaElement/onended","alias":"onended"},"p5.MediaElement.pause()":{"relativeUrl":"/reference/p5.MediaElement/pause","alias":"pause"},"p5.MediaElement.play()":{"relativeUrl":"/reference/p5.MediaElement/play","alias":"play"},"p5.MediaElement.removeCue()":{"relativeUrl":"/reference/p5.MediaElement/removeCue","alias":"removeCue"},"p5.MediaElement.showControls()":{"relativeUrl":"/reference/p5.MediaElement/showControls","alias":"showControls"},"p5.MediaElement.speed()":{"relativeUrl":"/reference/p5.MediaElement/speed","alias":"speed"},"p5.MediaElement.src":{"relativeUrl":"/reference/p5.MediaElement/src","alias":"src"},"p5.MediaElement.stop()":{"relativeUrl":"/reference/p5.MediaElement/stop","alias":"stop"},"p5.MediaElement.time()":{"relativeUrl":"/reference/p5.MediaElement/time","alias":"time"},"p5.MediaElement.volume()":{"relativeUrl":"/reference/p5.MediaElement/volume","alias":"volume"},"p5.MonoSynth.amp()":{"relativeUrl":"/reference/p5.MonoSynth/amp","alias":"amp"},"p5.MonoSynth.attack":{"relativeUrl":"/reference/p5.MonoSynth/attack","alias":"attack"},"p5.MonoSynth.connect()":{"relativeUrl":"/reference/p5.MonoSynth/connect","alias":"connect"},"p5.MonoSynth.disconnect()":{"relativeUrl":"/reference/p5.MonoSynth/disconnect","alias":"disconnect"},"p5.MonoSynth.dispose()":{"relativeUrl":"/reference/p5.MonoSynth/dispose","alias":"dispose"},"p5.MonoSynth.play()":{"relativeUrl":"/reference/p5.MonoSynth/play","alias":"play"},"p5.MonoSynth.setADSR()":{"relativeUrl":"/reference/p5.MonoSynth/setADSR","alias":"setADSR"},"p5.MonoSynth.triggerAttack()":{"relativeUrl":"/reference/p5.MonoSynth/triggerAttack","alias":"triggerAttack"},"p5.MonoSynth.triggerRelease()":{"relativeUrl":"/reference/p5.MonoSynth/triggerRelease","alias":"triggerRelease"},"p5.Noise.setType()":{"relativeUrl":"/reference/p5.Noise/setType","alias":"setType"},"p5.NumberDict.add()":{"relativeUrl":"/reference/p5.NumberDict/add","alias":"add"},"p5.NumberDict.div()":{"relativeUrl":"/reference/p5.NumberDict/div","alias":"div"},"p5.NumberDict.maxKey()":{"relativeUrl":"/reference/p5.NumberDict/maxKey","alias":"maxKey"},"p5.NumberDict.maxValue()":{"relativeUrl":"/reference/p5.NumberDict/maxValue","alias":"maxValue"},"p5.NumberDict.minKey()":{"relativeUrl":"/reference/p5.NumberDict/minKey","alias":"minKey"},"p5.NumberDict.minValue()":{"relativeUrl":"/reference/p5.NumberDict/minValue","alias":"minValue"},"p5.NumberDict.mult()":{"relativeUrl":"/reference/p5.NumberDict/mult","alias":"mult"},"p5.NumberDict.sub()":{"relativeUrl":"/reference/p5.NumberDict/sub","alias":"sub"},"p5.Oscillator.add()":{"relativeUrl":"/reference/p5.Oscillator/add","alias":"add"},"p5.Oscillator.amp()":{"relativeUrl":"/reference/p5.Oscillator/amp","alias":"amp"},"p5.Oscillator.connect()":{"relativeUrl":"/reference/p5.Oscillator/connect","alias":"connect"},"p5.Oscillator.disconnect()":{"relativeUrl":"/reference/p5.Oscillator/disconnect","alias":"disconnect"},"p5.Oscillator.freq()":{"relativeUrl":"/reference/p5.Oscillator/freq","alias":"freq"},"p5.Oscillator.getAmp()":{"relativeUrl":"/reference/p5.Oscillator/getAmp","alias":"getAmp"},"p5.Oscillator.getFreq()":{"relativeUrl":"/reference/p5.Oscillator/getFreq","alias":"getFreq"},"p5.Oscillator.getPan()":{"relativeUrl":"/reference/p5.Oscillator/getPan","alias":"getPan"},"p5.Oscillator.getType()":{"relativeUrl":"/reference/p5.Oscillator/getType","alias":"getType"},"p5.Oscillator.mult()":{"relativeUrl":"/reference/p5.Oscillator/mult","alias":"mult"},"p5.Oscillator.pan()":{"relativeUrl":"/reference/p5.Oscillator/pan","alias":"pan"},"p5.Oscillator.phase()":{"relativeUrl":"/reference/p5.Oscillator/phase","alias":"phase"},"p5.Oscillator.scale()":{"relativeUrl":"/reference/p5.Oscillator/scale","alias":"scale"},"p5.Oscillator.setType()":{"relativeUrl":"/reference/p5.Oscillator/setType","alias":"setType"},"p5.Oscillator.start()":{"relativeUrl":"/reference/p5.Oscillator/start","alias":"start"},"p5.Oscillator.stop()":{"relativeUrl":"/reference/p5.Oscillator/stop","alias":"stop"},"p5.Panner3D.maxDist()":{"relativeUrl":"/reference/p5.Panner3D/maxDist","alias":"maxDist"},"p5.Panner3D.orient()":{"relativeUrl":"/reference/p5.Panner3D/orient","alias":"orient"},"p5.Panner3D.orientX()":{"relativeUrl":"/reference/p5.Panner3D/orientX","alias":"orientX"},"p5.Panner3D.orientY()":{"relativeUrl":"/reference/p5.Panner3D/orientY","alias":"orientY"},"p5.Panner3D.orientZ()":{"relativeUrl":"/reference/p5.Panner3D/orientZ","alias":"orientZ"},"p5.Panner3D.panner":{"relativeUrl":"/reference/p5.Panner3D/panner","alias":"panner"},"p5.Panner3D.positionX()":{"relativeUrl":"/reference/p5.Panner3D/positionX","alias":"positionX"},"p5.Panner3D.positionY()":{"relativeUrl":"/reference/p5.Panner3D/positionY","alias":"positionY"},"p5.Panner3D.positionZ()":{"relativeUrl":"/reference/p5.Panner3D/positionZ","alias":"positionZ"},"p5.Panner3D.process()":{"relativeUrl":"/reference/p5.Panner3D/process","alias":"process"},"p5.Panner3D.rollof()":{"relativeUrl":"/reference/p5.Panner3D/rollof","alias":"rollof"},"p5.Panner3D.set()":{"relativeUrl":"/reference/p5.Panner3D/set","alias":"set"},"p5.Panner3D.setFalloff()":{"relativeUrl":"/reference/p5.Panner3D/setFalloff","alias":"setFalloff"},"p5.Part.addPhrase()":{"relativeUrl":"/reference/p5.Part/addPhrase","alias":"addPhrase"},"p5.Part.getBPM()":{"relativeUrl":"/reference/p5.Part/getBPM","alias":"getBPM"},"p5.Part.getPhrase()":{"relativeUrl":"/reference/p5.Part/getPhrase","alias":"getPhrase"},"p5.Part.loop()":{"relativeUrl":"/reference/p5.Part/loop","alias":"loop"},"p5.Part.noLoop()":{"relativeUrl":"/reference/p5.Part/noLoop","alias":"noLoop"},"p5.Part.onStep()":{"relativeUrl":"/reference/p5.Part/onStep","alias":"onStep"},"p5.Part.pause()":{"relativeUrl":"/reference/p5.Part/pause","alias":"pause"},"p5.Part.removePhrase()":{"relativeUrl":"/reference/p5.Part/removePhrase","alias":"removePhrase"},"p5.Part.replaceSequence()":{"relativeUrl":"/reference/p5.Part/replaceSequence","alias":"replaceSequence"},"p5.Part.setBPM()":{"relativeUrl":"/reference/p5.Part/setBPM","alias":"setBPM"},"p5.Part.start()":{"relativeUrl":"/reference/p5.Part/start","alias":"start"},"p5.Part.stop()":{"relativeUrl":"/reference/p5.Part/stop","alias":"stop"},"isDetected":{"relativeUrl":"/reference/p5.PeakDetect/isDetected"},"p5.PeakDetect.onPeak()":{"relativeUrl":"/reference/p5.PeakDetect/onPeak","alias":"onPeak"},"p5.PeakDetect.update()":{"relativeUrl":"/reference/p5.PeakDetect/update","alias":"update"},"p5.Phrase.sequence":{"relativeUrl":"/reference/p5.Phrase/sequence","alias":"sequence"},"p5.PolySynth.AudioVoice":{"relativeUrl":"/reference/p5.PolySynth/AudioVoice","alias":"AudioVoice"},"p5.PolySynth.connect()":{"relativeUrl":"/reference/p5.PolySynth/connect","alias":"connect"},"p5.PolySynth.disconnect()":{"relativeUrl":"/reference/p5.PolySynth/disconnect","alias":"disconnect"},"p5.PolySynth.dispose()":{"relativeUrl":"/reference/p5.PolySynth/dispose","alias":"dispose"},"p5.PolySynth.noteADSR()":{"relativeUrl":"/reference/p5.PolySynth/noteADSR","alias":"noteADSR"},"p5.PolySynth.noteAttack()":{"relativeUrl":"/reference/p5.PolySynth/noteAttack","alias":"noteAttack"},"p5.PolySynth.noteRelease()":{"relativeUrl":"/reference/p5.PolySynth/noteRelease","alias":"noteRelease"},"p5.PolySynth.notes":{"relativeUrl":"/reference/p5.PolySynth/notes","alias":"notes"},"p5.PolySynth.play()":{"relativeUrl":"/reference/p5.PolySynth/play","alias":"play"},"p5.PolySynth.polyvalue":{"relativeUrl":"/reference/p5.PolySynth/polyvalue","alias":"polyvalue"},"p5.PolySynth.setADSR()":{"relativeUrl":"/reference/p5.PolySynth/setADSR","alias":"setADSR"},"p5.PrintWriter.clear()":{"relativeUrl":"/reference/p5.PrintWriter/clear","alias":"clear"},"p5.PrintWriter.close()":{"relativeUrl":"/reference/p5.PrintWriter/close","alias":"close"},"p5.PrintWriter.print()":{"relativeUrl":"/reference/p5.PrintWriter/print","alias":"print"},"p5.PrintWriter.write()":{"relativeUrl":"/reference/p5.PrintWriter/write","alias":"write"},"p5.Pulse.width()":{"relativeUrl":"/reference/p5.Pulse/width","alias":"width"},"p5.Reverb.amp()":{"relativeUrl":"/reference/p5.Reverb/amp","alias":"amp"},"p5.Reverb.connect()":{"relativeUrl":"/reference/p5.Reverb/connect","alias":"connect"},"p5.Reverb.disconnect()":{"relativeUrl":"/reference/p5.Reverb/disconnect","alias":"disconnect"},"p5.Reverb.process()":{"relativeUrl":"/reference/p5.Reverb/process","alias":"process"},"p5.Reverb.set()":{"relativeUrl":"/reference/p5.Reverb/set","alias":"set"},"p5.Score.loop()":{"relativeUrl":"/reference/p5.Score/loop","alias":"loop"},"p5.Score.noLoop()":{"relativeUrl":"/reference/p5.Score/noLoop","alias":"noLoop"},"p5.Score.pause()":{"relativeUrl":"/reference/p5.Score/pause","alias":"pause"},"p5.Score.setBPM()":{"relativeUrl":"/reference/p5.Score/setBPM","alias":"setBPM"},"p5.Score.start()":{"relativeUrl":"/reference/p5.Score/start","alias":"start"},"p5.Score.stop()":{"relativeUrl":"/reference/p5.Score/stop","alias":"stop"},"p5.Shader.copyToContext()":{"relativeUrl":"/reference/p5.Shader/copyToContext","alias":"copyToContext"},"p5.Shader.inspectHooks()":{"relativeUrl":"/reference/p5.Shader/inspectHooks","alias":"inspectHooks"},"p5.Shader.modify()":{"relativeUrl":"/reference/p5.Shader/modify","alias":"modify"},"p5.Shader.setUniform()":{"relativeUrl":"/reference/p5.Shader/setUniform","alias":"setUniform"},"p5.SoundFile.addCue()":{"relativeUrl":"/reference/p5.SoundFile/addCue","alias":"addCue"},"p5.SoundFile.channels()":{"relativeUrl":"/reference/p5.SoundFile/channels","alias":"channels"},"p5.SoundFile.clearCues()":{"relativeUrl":"/reference/p5.SoundFile/clearCues","alias":"clearCues"},"p5.SoundFile.connect()":{"relativeUrl":"/reference/p5.SoundFile/connect","alias":"connect"},"p5.SoundFile.currentTime()":{"relativeUrl":"/reference/p5.SoundFile/currentTime","alias":"currentTime"},"p5.SoundFile.disconnect()":{"relativeUrl":"/reference/p5.SoundFile/disconnect","alias":"disconnect"},"p5.SoundFile.duration()":{"relativeUrl":"/reference/p5.SoundFile/duration","alias":"duration"},"p5.SoundFile.frames()":{"relativeUrl":"/reference/p5.SoundFile/frames","alias":"frames"},"p5.SoundFile.getBlob()":{"relativeUrl":"/reference/p5.SoundFile/getBlob","alias":"getBlob"},"p5.SoundFile.getPan()":{"relativeUrl":"/reference/p5.SoundFile/getPan","alias":"getPan"},"p5.SoundFile.getPeaks()":{"relativeUrl":"/reference/p5.SoundFile/getPeaks","alias":"getPeaks"},"p5.SoundFile.isLoaded()":{"relativeUrl":"/reference/p5.SoundFile/isLoaded","alias":"isLoaded"},"p5.SoundFile.isLooping()":{"relativeUrl":"/reference/p5.SoundFile/isLooping","alias":"isLooping"},"p5.SoundFile.isPaused()":{"relativeUrl":"/reference/p5.SoundFile/isPaused","alias":"isPaused"},"p5.SoundFile.isPlaying()":{"relativeUrl":"/reference/p5.SoundFile/isPlaying","alias":"isPlaying"},"p5.SoundFile.jump()":{"relativeUrl":"/reference/p5.SoundFile/jump","alias":"jump"},"p5.SoundFile.loop()":{"relativeUrl":"/reference/p5.SoundFile/loop","alias":"loop"},"p5.SoundFile.onended()":{"relativeUrl":"/reference/p5.SoundFile/onended","alias":"onended"},"p5.SoundFile.pan()":{"relativeUrl":"/reference/p5.SoundFile/pan","alias":"pan"},"p5.SoundFile.pause()":{"relativeUrl":"/reference/p5.SoundFile/pause","alias":"pause"},"p5.SoundFile.play()":{"relativeUrl":"/reference/p5.SoundFile/play","alias":"play"},"p5.SoundFile.playMode()":{"relativeUrl":"/reference/p5.SoundFile/playMode","alias":"playMode"},"p5.SoundFile.rate()":{"relativeUrl":"/reference/p5.SoundFile/rate","alias":"rate"},"p5.SoundFile.removeCue()":{"relativeUrl":"/reference/p5.SoundFile/removeCue","alias":"removeCue"},"p5.SoundFile.reverseBuffer()":{"relativeUrl":"/reference/p5.SoundFile/reverseBuffer","alias":"reverseBuffer"},"p5.SoundFile.sampleRate()":{"relativeUrl":"/reference/p5.SoundFile/sampleRate","alias":"sampleRate"},"p5.SoundFile.save()":{"relativeUrl":"/reference/p5.SoundFile/save","alias":"save"},"p5.SoundFile.setBuffer()":{"relativeUrl":"/reference/p5.SoundFile/setBuffer","alias":"setBuffer"},"p5.SoundFile.setLoop()":{"relativeUrl":"/reference/p5.SoundFile/setLoop","alias":"setLoop"},"p5.SoundFile.setPath()":{"relativeUrl":"/reference/p5.SoundFile/setPath","alias":"setPath"},"p5.SoundFile.setVolume()":{"relativeUrl":"/reference/p5.SoundFile/setVolume","alias":"setVolume"},"p5.SoundFile.stop()":{"relativeUrl":"/reference/p5.SoundFile/stop","alias":"stop"},"p5.SoundLoop.bpm":{"relativeUrl":"/reference/p5.SoundLoop/bpm","alias":"bpm"},"p5.SoundLoop.interval":{"relativeUrl":"/reference/p5.SoundLoop/interval","alias":"interval"},"p5.SoundLoop.iterations":{"relativeUrl":"/reference/p5.SoundLoop/iterations","alias":"iterations"},"p5.SoundLoop.maxIterations":{"relativeUrl":"/reference/p5.SoundLoop/maxIterations","alias":"maxIterations"},"p5.SoundLoop.musicalTimeMode":{"relativeUrl":"/reference/p5.SoundLoop/musicalTimeMode","alias":"musicalTimeMode"},"p5.SoundLoop.pause()":{"relativeUrl":"/reference/p5.SoundLoop/pause","alias":"pause"},"p5.SoundLoop.start()":{"relativeUrl":"/reference/p5.SoundLoop/start","alias":"start"},"p5.SoundLoop.stop()":{"relativeUrl":"/reference/p5.SoundLoop/stop","alias":"stop"},"p5.SoundLoop.syncedStart()":{"relativeUrl":"/reference/p5.SoundLoop/syncedStart","alias":"syncedStart"},"p5.SoundLoop.timeSignature":{"relativeUrl":"/reference/p5.SoundLoop/timeSignature","alias":"timeSignature"},"p5.SoundRecorder.record()":{"relativeUrl":"/reference/p5.SoundRecorder/record","alias":"record"},"p5.SoundRecorder.setInput()":{"relativeUrl":"/reference/p5.SoundRecorder/setInput","alias":"setInput"},"p5.SoundRecorder.stop()":{"relativeUrl":"/reference/p5.SoundRecorder/stop","alias":"stop"},"p5.Table.addColumn()":{"relativeUrl":"/reference/p5.Table/addColumn","alias":"addColumn"},"p5.Table.addRow()":{"relativeUrl":"/reference/p5.Table/addRow","alias":"addRow"},"p5.Table.clearRows()":{"relativeUrl":"/reference/p5.Table/clearRows","alias":"clearRows"},"p5.Table.columns":{"relativeUrl":"/reference/p5.Table/columns","alias":"columns"},"p5.Table.findRow()":{"relativeUrl":"/reference/p5.Table/findRow","alias":"findRow"},"p5.Table.findRows()":{"relativeUrl":"/reference/p5.Table/findRows","alias":"findRows"},"p5.Table.get()":{"relativeUrl":"/reference/p5.Table/get","alias":"get"},"p5.Table.getArray()":{"relativeUrl":"/reference/p5.Table/getArray","alias":"getArray"},"p5.Table.getColumn()":{"relativeUrl":"/reference/p5.Table/getColumn","alias":"getColumn"},"p5.Table.getColumnCount()":{"relativeUrl":"/reference/p5.Table/getColumnCount","alias":"getColumnCount"},"p5.Table.getNum()":{"relativeUrl":"/reference/p5.Table/getNum","alias":"getNum"},"p5.Table.getObject()":{"relativeUrl":"/reference/p5.Table/getObject","alias":"getObject"},"p5.Table.getRow()":{"relativeUrl":"/reference/p5.Table/getRow","alias":"getRow"},"p5.Table.getRowCount()":{"relativeUrl":"/reference/p5.Table/getRowCount","alias":"getRowCount"},"p5.Table.getRows()":{"relativeUrl":"/reference/p5.Table/getRows","alias":"getRows"},"p5.Table.getString()":{"relativeUrl":"/reference/p5.Table/getString","alias":"getString"},"p5.Table.matchRow()":{"relativeUrl":"/reference/p5.Table/matchRow","alias":"matchRow"},"p5.Table.matchRows()":{"relativeUrl":"/reference/p5.Table/matchRows","alias":"matchRows"},"p5.Table.removeColumn()":{"relativeUrl":"/reference/p5.Table/removeColumn","alias":"removeColumn"},"p5.Table.removeRow()":{"relativeUrl":"/reference/p5.Table/removeRow","alias":"removeRow"},"p5.Table.removeTokens()":{"relativeUrl":"/reference/p5.Table/removeTokens","alias":"removeTokens"},"p5.Table.rows":{"relativeUrl":"/reference/p5.Table/rows","alias":"rows"},"p5.Table.set()":{"relativeUrl":"/reference/p5.Table/set","alias":"set"},"p5.Table.setNum()":{"relativeUrl":"/reference/p5.Table/setNum","alias":"setNum"},"p5.Table.setString()":{"relativeUrl":"/reference/p5.Table/setString","alias":"setString"},"p5.Table.trim()":{"relativeUrl":"/reference/p5.Table/trim","alias":"trim"},"p5.TableRow.get()":{"relativeUrl":"/reference/p5.TableRow/get","alias":"get"},"p5.TableRow.getNum()":{"relativeUrl":"/reference/p5.TableRow/getNum","alias":"getNum"},"p5.TableRow.getString()":{"relativeUrl":"/reference/p5.TableRow/getString","alias":"getString"},"p5.TableRow.set()":{"relativeUrl":"/reference/p5.TableRow/set","alias":"set"},"p5.TableRow.setNum()":{"relativeUrl":"/reference/p5.TableRow/setNum","alias":"setNum"},"p5.TableRow.setString()":{"relativeUrl":"/reference/p5.TableRow/setString","alias":"setString"},"p5.TypedDict.clear()":{"relativeUrl":"/reference/p5.TypedDict/clear","alias":"clear"},"p5.TypedDict.create()":{"relativeUrl":"/reference/p5.TypedDict/create","alias":"create"},"p5.TypedDict.get()":{"relativeUrl":"/reference/p5.TypedDict/get","alias":"get"},"p5.TypedDict.hasKey()":{"relativeUrl":"/reference/p5.TypedDict/hasKey","alias":"hasKey"},"p5.TypedDict.print()":{"relativeUrl":"/reference/p5.TypedDict/print","alias":"print"},"p5.TypedDict.remove()":{"relativeUrl":"/reference/p5.TypedDict/remove","alias":"remove"},"p5.TypedDict.saveJSON()":{"relativeUrl":"/reference/p5.TypedDict/saveJSON","alias":"saveJSON"},"p5.TypedDict.saveTable()":{"relativeUrl":"/reference/p5.TypedDict/saveTable","alias":"saveTable"},"p5.TypedDict.set()":{"relativeUrl":"/reference/p5.TypedDict/set","alias":"set"},"p5.TypedDict.size()":{"relativeUrl":"/reference/p5.TypedDict/size","alias":"size"},"p5.Vector.add()":{"relativeUrl":"/reference/p5.Vector/add","alias":"add"},"p5.Vector.angleBetween()":{"relativeUrl":"/reference/p5.Vector/angleBetween","alias":"angleBetween"},"p5.Vector.array()":{"relativeUrl":"/reference/p5.Vector/array","alias":"array"},"p5.Vector.clampToZero()":{"relativeUrl":"/reference/p5.Vector/clampToZero","alias":"clampToZero"},"p5.Vector.copy()":{"relativeUrl":"/reference/p5.Vector/copy","alias":"copy"},"p5.Vector.cross()":{"relativeUrl":"/reference/p5.Vector/cross","alias":"cross"},"p5.Vector.dist()":{"relativeUrl":"/reference/p5.Vector/dist","alias":"dist"},"p5.Vector.div()":{"relativeUrl":"/reference/p5.Vector/div","alias":"div"},"p5.Vector.dot()":{"relativeUrl":"/reference/p5.Vector/dot","alias":"dot"},"p5.Vector.equals()":{"relativeUrl":"/reference/p5.Vector/equals","alias":"equals"},"p5.Vector.fromAngle()":{"relativeUrl":"/reference/p5.Vector/fromAngle","alias":"fromAngle"},"p5.Vector.fromAngles()":{"relativeUrl":"/reference/p5.Vector/fromAngles","alias":"fromAngles"},"p5.Vector.heading()":{"relativeUrl":"/reference/p5.Vector/heading","alias":"heading"},"p5.Vector.lerp()":{"relativeUrl":"/reference/p5.Vector/lerp","alias":"lerp"},"p5.Vector.limit()":{"relativeUrl":"/reference/p5.Vector/limit","alias":"limit"},"p5.Vector.mag()":{"relativeUrl":"/reference/p5.Vector/mag","alias":"mag"},"p5.Vector.magSq()":{"relativeUrl":"/reference/p5.Vector/magSq","alias":"magSq"},"p5.Vector.mult()":{"relativeUrl":"/reference/p5.Vector/mult","alias":"mult"},"p5.Vector.normalize()":{"relativeUrl":"/reference/p5.Vector/normalize","alias":"normalize"},"p5.Vector.random2D()":{"relativeUrl":"/reference/p5.Vector/random2D","alias":"random2D"},"p5.Vector.random3D()":{"relativeUrl":"/reference/p5.Vector/random3D","alias":"random3D"},"p5.Vector.reflect()":{"relativeUrl":"/reference/p5.Vector/reflect","alias":"reflect"},"p5.Vector.rem()":{"relativeUrl":"/reference/p5.Vector/rem","alias":"rem"},"p5.Vector.rotate()":{"relativeUrl":"/reference/p5.Vector/rotate","alias":"rotate"},"p5.Vector.set()":{"relativeUrl":"/reference/p5.Vector/set","alias":"set"},"p5.Vector.setHeading()":{"relativeUrl":"/reference/p5.Vector/setHeading","alias":"setHeading"},"p5.Vector.setMag()":{"relativeUrl":"/reference/p5.Vector/setMag","alias":"setMag"},"p5.Vector.slerp()":{"relativeUrl":"/reference/p5.Vector/slerp","alias":"slerp"},"p5.Vector.sub()":{"relativeUrl":"/reference/p5.Vector/sub","alias":"sub"},"p5.Vector.toString()":{"relativeUrl":"/reference/p5.Vector/toString","alias":"toString"},"p5.Vector.x":{"relativeUrl":"/reference/p5.Vector/x","alias":"x"},"p5.Vector.y":{"relativeUrl":"/reference/p5.Vector/y","alias":"y"},"p5.Vector.z":{"relativeUrl":"/reference/p5.Vector/z","alias":"z"},"p5.XML.addChild()":{"relativeUrl":"/reference/p5.XML/addChild","alias":"addChild"},"p5.XML.getAttributeCount()":{"relativeUrl":"/reference/p5.XML/getAttributeCount","alias":"getAttributeCount"},"p5.XML.getChild()":{"relativeUrl":"/reference/p5.XML/getChild","alias":"getChild"},"p5.XML.getChildren()":{"relativeUrl":"/reference/p5.XML/getChildren","alias":"getChildren"},"p5.XML.getContent()":{"relativeUrl":"/reference/p5.XML/getContent","alias":"getContent"},"p5.XML.getName()":{"relativeUrl":"/reference/p5.XML/getName","alias":"getName"},"p5.XML.getNum()":{"relativeUrl":"/reference/p5.XML/getNum","alias":"getNum"},"p5.XML.getParent()":{"relativeUrl":"/reference/p5.XML/getParent","alias":"getParent"},"p5.XML.getString()":{"relativeUrl":"/reference/p5.XML/getString","alias":"getString"},"p5.XML.hasAttribute()":{"relativeUrl":"/reference/p5.XML/hasAttribute","alias":"hasAttribute"},"p5.XML.hasChildren()":{"relativeUrl":"/reference/p5.XML/hasChildren","alias":"hasChildren"},"p5.XML.listAttributes()":{"relativeUrl":"/reference/p5.XML/listAttributes","alias":"listAttributes"},"p5.XML.listChildren()":{"relativeUrl":"/reference/p5.XML/listChildren","alias":"listChildren"},"p5.XML.removeChild()":{"relativeUrl":"/reference/p5.XML/removeChild","alias":"removeChild"},"p5.XML.serialize()":{"relativeUrl":"/reference/p5.XML/serialize","alias":"serialize"},"p5.XML.setAttribute()":{"relativeUrl":"/reference/p5.XML/setAttribute","alias":"setAttribute"},"p5.XML.setContent()":{"relativeUrl":"/reference/p5.XML/setContent","alias":"setContent"},"p5.XML.setName()":{"relativeUrl":"/reference/p5.XML/setName","alias":"setName"},"p5.Amplitude":{"relativeUrl":"/reference/p5.sound/p5.Amplitude"},"p5.AudioIn":{"relativeUrl":"/reference/p5.sound/p5.AudioIn"},"p5.AudioVoice":{"relativeUrl":"/reference/p5.sound/p5.AudioVoice"},"p5.BandPass":{"relativeUrl":"/reference/p5.sound/p5.BandPass"},"p5.Compressor":{"relativeUrl":"/reference/p5.sound/p5.Compressor"},"p5.Convolver":{"relativeUrl":"/reference/p5.sound/p5.Convolver"},"p5.Delay":{"relativeUrl":"/reference/p5.sound/p5.Delay"},"p5.Distortion":{"relativeUrl":"/reference/p5.sound/p5.Distortion"},"p5.EQ":{"relativeUrl":"/reference/p5.sound/p5.EQ"},"p5.Effect":{"relativeUrl":"/reference/p5.sound/p5.Effect"},"p5.Envelope":{"relativeUrl":"/reference/p5.sound/p5.Envelope"},"p5.FFT":{"relativeUrl":"/reference/p5.sound/p5.FFT"},"p5.Filter":{"relativeUrl":"/reference/p5.sound/p5.Filter"},"p5.Gain":{"relativeUrl":"/reference/p5.sound/p5.Gain"},"p5.HighPass":{"relativeUrl":"/reference/p5.sound/p5.HighPass"},"p5.LowPass":{"relativeUrl":"/reference/p5.sound/p5.LowPass"},"p5.MonoSynth":{"relativeUrl":"/reference/p5.sound/p5.MonoSynth"},"p5.Noise":{"relativeUrl":"/reference/p5.sound/p5.Noise"},"p5.OnsetDetect":{"relativeUrl":"/reference/p5.sound/p5.OnsetDetect"},"p5.Oscillator":{"relativeUrl":"/reference/p5.sound/p5.Oscillator"},"p5.Panner3D":{"relativeUrl":"/reference/p5.sound/p5.Panner3D"},"p5.Part":{"relativeUrl":"/reference/p5.sound/p5.Part"},"p5.PeakDetect":{"relativeUrl":"/reference/p5.sound/p5.PeakDetect"},"p5.Phrase":{"relativeUrl":"/reference/p5.sound/p5.Phrase"},"p5.PolySynth":{"relativeUrl":"/reference/p5.sound/p5.PolySynth"},"p5.Pulse":{"relativeUrl":"/reference/p5.sound/p5.Pulse"},"p5.Reverb":{"relativeUrl":"/reference/p5.sound/p5.Reverb"},"p5.SawOsc":{"relativeUrl":"/reference/p5.sound/p5.SawOsc"},"p5.Score":{"relativeUrl":"/reference/p5.sound/p5.Score"},"p5.SinOsc":{"relativeUrl":"/reference/p5.sound/p5.SinOsc"},"p5.SoundFile":{"relativeUrl":"/reference/p5.sound/p5.SoundFile"},"p5.SoundLoop":{"relativeUrl":"/reference/p5.sound/p5.SoundLoop"},"p5.SoundRecorder":{"relativeUrl":"/reference/p5.sound/p5.SoundRecorder"},"p5.SqrOsc":{"relativeUrl":"/reference/p5.sound/p5.SqrOsc"},"p5.TriOsc":{"relativeUrl":"/reference/p5.sound/p5.TriOsc"}},"tutorials":{"Animating with Media Objects":{"relativeUrl":"/tutorials/animating-with-media-objects","description":"Learn how to load images and GIFs to your sketches by creating an interactive garden!"},"Color Gradients":{"relativeUrl":"/tutorials/color-gradients","description":"Use radial gradients, linear gradients, and blend modes to create lens flare stickers & colorful filters on top of a webcam selfie."},"Conditionals and Interactivity":{"relativeUrl":"/tutorials/conditionals-and-interactivity","description":"A tutorial on how to use conditional statements and make interactive sketches."},"Coordinates and Transformations":{"relativeUrl":"/tutorials/coordinates-and-transformations","description":"An overview of the different ways you can position objects in WebGL mode."},"Creating and Styling HTML":{"relativeUrl":"/tutorials/creating-styling-html","description":"Dive into the art of creative coding and learn to build and beautify HTML with p5.js."},"Chatting with/about Code":{"relativeUrl":"/tutorials/criticalAI1-chatting-with-about-code","description":"Using generative AI to code with p5.js"},"Critical AI Prompt Battle":{"relativeUrl":"/tutorials/criticalAI2-prompt-battle","description":"Build a tool to compare generative AI prompts"},"Critical AI Sentiment Dataset Explorer":{"relativeUrl":"/tutorials/criticalAI3-sentiment-dataset-explorer","description":"Examine the datasets that run AI tools"},"Critical AI No-AI Chatbot":{"relativeUrl":"/tutorials/criticalAI4-no-ai-chatbot","description":"Make an interactive chatbot without using any AI"},"Creating Custom Geometry in WebGL":{"relativeUrl":"/tutorials/custom-geometry","description":"A guide to the different ways you can create your own 3D shapes."},"Custom Shapes and Smooth Curves":{"relativeUrl":"/tutorials/custom-shapes-and-smooth-curves","description":"Use vertex(), bezierVertex(), beginShape() and endShape() to create angular and curved sparkle stickers to place on top of your webcam selfie."},"Data Structure Garden":{"relativeUrl":"/tutorials/data-structure-garden","description":"A tutorial on how to use JavaScript objects and arrays."},"Field Guide to Debugging":{"relativeUrl":"/tutorials/field-guide-to-debugging","description":"Learn some healthy habits and best practices for locating bugs in your program, and finding ways to overcome them."},"Get Started":{"relativeUrl":"/tutorials/get-started","description":"A tutorial that introduces basic p5.js functions and guides you through the steps to create an interactive landscape."},"Getting Started with Node.js":{"relativeUrl":"/tutorials/getting-started-with-nodejs","description":"Learn about HTTP requests and how to use Node.js in your p5.js projects to create dynamic projects that save and retrieve files."},"How to Optimize Your Sketches":{"relativeUrl":"/tutorials/how-to-optimize-your-sketches","description":"An advanced tutorial on how to optimize code in your sketches to run more efficiently."},"Introduction to Shaders":{"relativeUrl":"/tutorials/intro-to-shaders","description":"An introduction to the different ways you can create interesting visual effects with your computer's GPU."},"Layered Rendering with Framebuffers":{"relativeUrl":"/tutorials/layered-rendering-with-framebuffers","description":"Framebuffers are the fastest way to create a scene out of multiple layers in WebGL. Explore how to use them, and the unique 3D information they provide."},"Lights, Camera, Materials":{"relativeUrl":"/tutorials/lights-camera-materials","description":"Learn how to light and frame 3D scenes, and how to style 3D objects."},"Loading and Selecting Fonts":{"relativeUrl":"/tutorials/loading-and-selecting-fonts","description":"Explore typography in creative coding: A Quick guide to choosing and selecting fonts."},"Optimizing WebGL Sketches":{"relativeUrl":"/tutorials/optimizing-webgl-sketches","description":"Tips to help make your sketches run as smoothly as possible on as many devices as possible."},"Organizing Code with Functions":{"relativeUrl":"/tutorials/organizing-code-with-functions","description":"A tutorial on how to create and use functions to help you organize your code."},"How to Use the p5.js Web Editor with a Screen Reader":{"relativeUrl":"/tutorials/p5js-with-screen-reader","description":"A tutorial for setting up the p5.js Web Editor for screen readers."},"Repeating with Loops":{"relativeUrl":"/tutorials/repeating-with-loops","description":"Create a crawling caterpillar race using loops and arrays!"},"Responding to Inputs":{"relativeUrl":"/tutorials/responding-to-inputs","description":"Code nostalgia: Unleash your creativity and bring a vintage snake game to life with p5.js!"},"Setting Up Your Environment":{"relativeUrl":"/tutorials/setting-up-your-environment","description":"A quick tutorial for setting up the p5.js Web Editor and VS Code to write and save p5.js projects."},"Simple Melody App":{"relativeUrl":"/tutorials/simple-melody-app","description":"Use p5.Oscillator objects to generate musical notes in an app where users can write and replay melodies they create by interacting with the canvas!"},"Abracadabra: Speak With Your Hands in p5.js and ml5.js":{"relativeUrl":"/tutorials/speak-with-your-hands","description":"Control sketches with your hands using ml5.js"},"Variables and Change":{"relativeUrl":"/tutorials/variables-and-change","description":"Learn about variables and how they can be used to create animated sketches!"},"Writing Accessible Canvas Descriptions":{"relativeUrl":"/tutorials/writing-accessible-canvas-descriptions","description":"A tutorial for how to label p5.js code for screen readers."}}} \ No newline at end of file diff --git a/src/components/ReferenceDirectoryWithFilter/index.tsx b/src/components/ReferenceDirectoryWithFilter/index.tsx index 5ce59bcd73..76970eed8d 100644 --- a/src/components/ReferenceDirectoryWithFilter/index.tsx +++ b/src/components/ReferenceDirectoryWithFilter/index.tsx @@ -207,7 +207,7 @@ export const ReferenceDirectoryWithFilter = ({ return (