ITADN

版本发布 8

v1.11.12-rc.0
? · 2026-01-13

## How to test Please report any issues you find with this release candidate before it goes live as the next version of 1.x! To help test, you can use the downloads below. In the p5.js Editor, you can upload p5.min.js and use it in the `index.html` page. ## What's Changed Since 1.11.11, the updates have been documentation and bugfixes. ### What's Changed 🎊 * Update CONTRIBUTING.md links and add Discord invitation by @RishiAhuja in https://github.com/processing/p5.js/pull/8190 * Docs: fix typos and anchors by @nivanovvv in https://github.com/processing/p5.js/pull/8216 * docs: add nivanovvv as a contributor for doc by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8217 * Add `AGENTS.md` by @SableRaf in https://github.com/processing/p5.js/pull/8194 * Add title to CONTRIBUTORS.md by @davepagurek in https://github.com/processing/p5.js/pull/8233 * docs: add nbogie as a contributor for bug, and code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8234 * docs: add SoundOfScooting as a contributor for code, and doc by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8242 * Improve Accessibility Guidance for `describe()` Usage (#8101) by @ksen0 in https://github.com/processing/p5.js/pull/8247 * docs: add VANSH3104 as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8258 * docs: add menacingly-coded as a contributor for doc by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8292 * docs: add Homaid as a contributor for doc by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8298 * Fix zh-Hans reference link by @nivanovvv in https://github.com/processing/p5.js/pull/8275 * docs: add Itsrajsk as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8306 * Updated point() examples for visible points in main branch. by @menacingly-coded in https://github.com/processing/p5.js/pull/8305 * fix: background(image) support in WEBGL by @reshma045 in https://github.com/processing/p5.js/pull/8333 * Fix JSDoc return type for p5.Vector.cross by @Geethegreat in https://github.com/processing/p5.js/pull/8336 * docs: add Geethegreat as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8347 * docs: add Piyushrathoree as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8350 * docs: add Aayushdev18 as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8362 * WebGL: Apply per‑vertex stroke color to POINTS by @yugalkaushik in https://github.com/processing/p5.js/pull/8380 * Docs/fix broken links by @skyash-dev in https://github.com/processing/p5.js/pull/8399 * docs: add rakesh2OO5 as a contributor for code by @allcontributors[bot] in https://github.com/processing/p5.js/pull/8403 ## New Contributors * @RishiAhuja made their first contribution in https://github.com/processing/p5.js/pull/8190 * @nivanovvv made their first contribution in https://github.com/processing/p5.js/pull/8216 * @yugalkaushik made their first contribution in https://github.com/processing/p5.js/pull/8380 * @skyash-dev made their first contribution in https://github.com/processing/p5.js/pull/8399 **Full Changelog**: https://github.com/processing/p5.js/compare/v1.11.11...v1.11.12-rc.0

v2.2.0-rc.6预发布
? · 2026-01-13

## Help test the release candidate The `2.2` proposed minor release contains the ongoing work on WebGPU rendering! This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. You can also share your thoughts or get involved on Discord in the [#webpgu](https://discord.gg/nmS4v2qw4K) channel! This RC also contains bugfixes in p5.js, including in p5.strands. ## Testing WebGPU mode WebGPU mode is included in a core add-on now. To load both p5.js and WebGPU mode, add these two script tags to your sketch: ```html <script src="https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.6/lib/p5.js"></script> <script src="https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.6/lib/p5.webgpu.js"></script> ``` Then load WebGPU mode in `createCanvas`: ```js async function setup() { await createCanvas(400, 400, WEBGPU); } ``` Or, feel free to duplicate this project on the p5.js web editor: https://editor.p5js.org/ksen0/sketches/Ger2euN_J Read more about how it works and where we plan on taking it here: https://github.com/processing/p5.js/blob/dev-2.0/contributor_docs/webgpu.md <!-- Release notes generated using configuration in .github/release.yml at v2.2.0-rc.6 --> ## What's Changed * Ported the stroke shader to WebGPU renderer by @lukeplowden in https://github.com/processing/p5.js/pull/7915 * Framebuffer support on WebGPU renderer by @davepagurek in https://github.com/processing/p5.js/pull/8008 * webgpu ci test by @tychedelia in https://github.com/processing/p5.js/pull/8023 * Add WIP WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8179 * Update release action to omit WebGPU tests, add TS tests by @davepagurek in https://github.com/processing/p5.js/pull/8337 * FES parameter validation decoration use `.apply()` for faster function invocation by @limzykenneth in https://github.com/processing/p5.js/pull/8332 * Add WebGPU built files to npm releases by @davepagurek in https://github.com/processing/p5.js/pull/8338 * Make sure bytes are aligned in p5.Geometry by @davepagurek in https://github.com/processing/p5.js/pull/8340 * Fix WebGPU buffer memory leaks by @davepagurek in https://github.com/processing/p5.js/pull/8342 * Fix JSDoc return type for p5.Vector.cross (2.0) by @Geethegreat in https://github.com/processing/p5.js/pull/8346 * Add support for instanceID() in WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8348 * Fix WebGPU filters in CDN builds using duck typing for nodes (closes … by @Piyushrathoree in https://github.com/processing/p5.js/pull/8349 * Fix Camera.slerp for ortho by cloning projMatrix into uPMatrix when active by @nakednous in https://github.com/processing/p5.js/pull/8351 * fixed the issue with alpha blending - fixing blur remaining by @Piyushrathoree in https://github.com/processing/p5.js/pull/8354 * Support background(image) in WEBGL Renderer3D by @reshma045 in https://github.com/processing/p5.js/pull/8352 * Fix LogicalExpression (&&, ||) handling in p5.strands by @Aayushdev18 in https://github.com/processing/p5.js/pull/8359 * Fix p5.strands filters not working on minified code by @davepagurek in https://github.com/processing/p5.js/pull/8367 * More fixes for minified filters by @davepagurek in https://github.com/processing/p5.js/pull/8372 * Fix transforms in clip() by using shape system for primitives using manual method by @VANSH3104 in https://github.com/processing/p5.js/pull/8236 * Make sure text binds an index buffer by @davepagurek in https://github.com/processing/p5.js/pull/8393 * Fix font measurement with font families containing special characters by @davepagurek in https://github.com/processing/p5.js/pull/8391 * Fix for strands branching by @davepagurek in https://github.com/processing/p5.js/pull/8394 * Fix assignments to properties of `inputs` in branches in p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8397 * Fix set() to support p5.Graphics objects by @VANSH3104 in https://github.com/processing/p5.js/pull/8326 * Fix type for shuffle() and add type test. by @nbogie in https://github.com/processing/p5.js/pull/8410 * Fix p5.strands parsing of named function callbacks by @davepagurek in https://github.com/processing/p5.js/pull/8414 ## New Contributors * @tychedelia made their first contribution in https://github.com/processing/p5.js/pull/8023 * @Piyushrathoree made their first contribution in https://github.com/processing/p5.js/pull/8349 * @Aayushdev18 made their first contribution in https://github.com/processing/p5.js/pull/8359 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.2...v2.2.0-rc.6<!-- Release notes generated using configuration in .github/release.yml at v2.2.0-rc.6 --> ## What's Changed ### What's Changed 🎊 * Fix assignments to properties of `inputs` in branches in p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8397 * Fix set() to support p5.Graphics objects by @VANSH3104 in https://github.com/processing/p5.js/pull/8326 * Fix type for shuffle() and add type test. by @nbogie in https://github.com/processing/p5.js/pull/8410 * Fix p5.strands parsing of named function callbacks by @davepagurek in https://github.com/processing/p5.js/pull/8414 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.2.0-rc.5...v2.2.0-rc.6

v2.2.0-rc.2预发布
? · 2025-12-17

## Help test the release candidate * Use this link to load the library: https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.2/lib/p5.js The `2.2` proposed minor release contains the ongoing work on WebGPU rendering! This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. You can also share your thoughts or get involved on Discord in the [#webpgu](https://discord.gg/nmS4v2qw4K) channel! ## Testing WebGPU mode WebGPU mode is included in a core addon now. To load both p5.js and WebGPU mode, add these two script tags to your sketch: ```html <script src="https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.2/lib/p5.js"></script> <script src="https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.2/lib/p5.webgpu.js"></script> ``` Then load WebGPU mode in `createCanvas`: ```js async function setup() { await createCanvas(400, 400, WEBGPU); } ``` Or, feel free to duplicate this project on the p5.js web editor: https://editor.p5js.org/davepagurek/sketches/bmEYKK2aw Read more about how it works and where we plan on taking it here: https://github.com/processing/p5.js/blob/dev-2.0/contributor_docs/webgpu.md ## What's Changed ### What's Changed 🎊 * Ported the stroke shader to WebGPU renderer by @lukeplowden in https://github.com/processing/p5.js/pull/7915 * Framebuffer support on WebGPU renderer by @davepagurek in https://github.com/processing/p5.js/pull/8008 * webgpu ci test by @tychedelia in https://github.com/processing/p5.js/pull/8023 * Add WIP WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8179 * Update release action to omit WebGPU tests, add TS tests by @davepagurek in https://github.com/processing/p5.js/pull/8337 * FES parameter validation decoration use `.apply()` for faster function invocation by @limzykenneth in https://github.com/processing/p5.js/pull/8332 * Add WebGPU built files to npm releases by @davepagurek in https://github.com/processing/p5.js/pull/8338 ## New Contributors * @tychedelia made their first contribution in https://github.com/processing/p5.js/pull/8023 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.2...v2.2.0-rc.2

v2.2.0-rc.1预发布
? · 2025-12-17

<!-- Release notes generated using configuration in .github/release.yml at v2.2.0-rc.1 --> ## Help test the release candidate * Use this link to load the library: https://cdn.jsdelivr.net/npm/p5@2.2.0-rc.1/lib/p5.js The `2.2` proposed minor release contains the ongoing work on WebGPU rendering! This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. You can also share your thoughts or get involved on Discord in the [#webpgu](https://discord.gg/nmS4v2qw4K) channel! ### What's Changed 🎊 * Ported the stroke shader to WebGPU renderer by @lukeplowden in https://github.com/processing/p5.js/pull/7915 * Framebuffer support on WebGPU renderer by @davepagurek in https://github.com/processing/p5.js/pull/8008 * webgpu ci test by @tychedelia in https://github.com/processing/p5.js/pull/8023 * Add WIP WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8179 * Update release action to omit WebGPU tests, add TS tests by @davepagurek in https://github.com/processing/p5.js/pull/8337 * FES parameter validation decoration use `.apply()` for faster function invocation by @limzykenneth in https://github.com/processing/p5.js/pull/8332 ## New Contributors * @tychedelia made their first contribution in https://github.com/processing/p5.js/pull/8023 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.2...v2.2.0-rc.1

v2.1.0-rc.4预发布
? · 2025-11-10

<!-- Release notes generated using configuration in .github/release.yml at v2.1.0-rc.4 --> ## What's Changed ### What's Changed 🎊 * enhancing noop file to have error handeling. by @perminder-17 in https://github.com/processing/p5.js/pull/8243 * Improve Accessibility Guidance for `describe()` Usage by @NalinDalal in https://github.com/processing/p5.js/pull/8101 * Removing grunt from contributor guidelines by @perminder-17 in https://github.com/processing/p5.js/pull/8245 * Add `AGENTS.md` [dev-2.0 branch] by @ksen0 in https://github.com/processing/p5.js/pull/8249 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.0-rc.3...v2.1.0-rc.4

v2.1.0-rc.3预发布
? · 2025-11-07

## Help test the release candidate * Use this link to load the library: https://cdn.jsdelivr.net/npm/p5@2.1.0-rc.3/lib/p5.js Here are all the updates for the **upcoming [2.1 milestone](https://github.com/processing/p5.js/issues/7937)**. This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. The 2.1.0 minor release is now planned for release on **November TBD, 2025**. Open tasks related to documentation will also be included, and suggestions to improve the docs are welcome! ### Help testing... * ...TypeScript integration * ...p5.strands branching `if/else` and looping `for` * ...[Addon Events API](https://github.com/processing/p5.js/issues/7946) * ...[Color contrast checker](https://github.com/processing/p5.js/issues/6971), which you can use like this: ```js let bgColor, fg1Color, fg2Color, msg1, msg2; function setup() { createCanvas(100, 100); bgColor = color(0); fg1Color = color(100); fg2Color = color(220); if(bgColor.contrast(fg1Color)){ msg1 = 'good'; }else{ msg1 = 'bad'; } if(bgColor.contrast(fg2Color)){ msg2 = 'good'; }else{ msg2 = 'bad'; } describe('A black canvas with a faint grey word saying "bad" at the top left and a brighter light grey word saying "good" in the middle of the canvas.'); } function draw(){ background(bgColor); textSize(18); fill(fg1Color); text(msg1, 10, 30); fill(fg2Color); text(msg2, 10, 60); } ``` `oneColor.contrast(anotherColor)` checks the contrast between two colors. This method returns a boolean value to indicate if the two color has enough contrast. `true` means that the colors has enough contrast to be used as background color and body text color. `false` means there is not enough contrast. A second argument can be passed to the method, `options` , which defines the algorithm to be used. The algorithms currently supported are WCAG 2.1 (`'WCAG21'`) or APCA (`'APCA'`). The default is WCAG 2.1. If a value of `'all'` is passed to the `options` argument, an object containing more details is returned. The details object will include the calculated contrast value of the colors and different passing criteria. ```js let bgColor, fgColor, contrast; function setup() { createCanvas(100, 100); bgColor = color(0); fgColor = color(200); contrast = bgColor.contrast(fgColor, 'all'); describe('A black canvas with four short lines of grey text that respectively says: "WCAG 2.1", "12.55", "APCA", and "-73.30".'); } function draw(){ background(bgColor); textSize(14); fill(fgColor); text('WCAG 2.1', 10, 25); text(nf(contrast.WCAG21.value, 0, 2), 10, 40); text('APCA', 10, 70); text(nf(contrast.APCA.value, 0, 2), 10, 85); } ``` For more details about color contrast, you can check out <a href="https://colorjs.io/docs/contrast">this page from color.js</a>, and the <a href="https://webaim.org/resources/contrastchecker/">WebAIM color contrast checker.</a> ## What's Changed These are updates since the [most recent release candidate](https://github.com/processing/p5.js/releases/tag/v2.1.0-rc.2). ### What's Changed 🎊 * Fix missing mouseButton property types by @nbogie in https://github.com/processing/p5.js/pull/8232 * Update preload error in 2.x by @ksen0 in https://github.com/processing/p5.js/pull/8239 * Stabilize behavior of createVector() with zero arguments by @perminder-17 in https://github.com/processing/p5.js/pull/8203 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.0-rc.2...v2.1.0-rc.3

v2.1.0-rc.2预发布
? · 2025-11-04

## Help test the release candidate https://cdn.jsdelivr.net/npm/p5@2.1.0-rc.2/lib/p5.js Here are all the updates for the **upcoming [2.1 milestone](https://github.com/processing/p5.js/issues/7937)**. This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. The 2.1.0 minor release is now planned for release on **November 7, 2025**, unless there are bugs - then these will be fixed before release, with the release candidate available for testing for a week. Open tasks related to documentation will also be included, and suggestions to improve the docs are welcome! ### Help testing... * ...TypeScript integration * ...p5.strands branching `if/else` and looping `for` * ...[Addon Events API](https://github.com/processing/p5.js/issues/7946) * ...[Color contrast checker](https://github.com/processing/p5.js/issues/6971), which you can use like this: ```js let bgColor, fg1Color, fg2Color, msg1, msg2; function setup() { createCanvas(100, 100); bgColor = color(0); fg1Color = color(100); fg2Color = color(220); if(bgColor.contrast(fg1Color)){ msg1 = 'good'; }else{ msg1 = 'bad'; } if(bgColor.contrast(fg2Color)){ msg2 = 'good'; }else{ msg2 = 'bad'; } describe('A black canvas with a faint grey word saying "bad" at the top left and a brighter light grey word saying "good" in the middle of the canvas.'); } function draw(){ background(bgColor); textSize(18); fill(fg1Color); text(msg1, 10, 30); fill(fg2Color); text(msg2, 10, 60); } ``` `oneColor.contrast(anotherColor)` checks the contrast between two colors. This method returns a boolean value to indicate if the two color has enough contrast. `true` means that the colors has enough contrast to be used as background color and body text color. `false` means there is not enough contrast. A second argument can be passed to the method, `options` , which defines the algorithm to be used. The algorithms currently supported are WCAG 2.1 (`'WCAG21'`) or APCA (`'APCA'`). The default is WCAG 2.1. If a value of `'all'` is passed to the `options` argument, an object containing more details is returned. The details object will include the calculated contrast value of the colors and different passing criteria. ```js let bgColor, fgColor, contrast; function setup() { createCanvas(100, 100); bgColor = color(0); fgColor = color(200); contrast = bgColor.contrast(fgColor, 'all'); describe('A black canvas with four short lines of grey text that respectively says: "WCAG 2.1", "12.55", "APCA", and "-73.30".'); } function draw(){ background(bgColor); textSize(14); fill(fgColor); text('WCAG 2.1', 10, 25); text(nf(contrast.WCAG21.value, 0, 2), 10, 40); text('APCA', 10, 70); text(nf(contrast.APCA.value, 0, 2), 10, 85); } ``` For more details about color contrast, you can check out <a href="https://colorjs.io/docs/contrast">this page from color.js</a>, and the <a href="https://webaim.org/resources/contrastchecker/">WebAIM color contrast checker.</a> ### What's Changed since 2.0 🎊 * fix: add splineVertex to p5.Graphics prototype and fix unit test error by @VANSH3104 in https://github.com/processing/p5.js/pull/7757 * [2.x] Fix ESM export functionality by @limzykenneth in https://github.com/processing/p5.js/pull/7764 * Fixed Error in FES prevents message from being shown, Prevented 'window' properties from being overwritten by @HughJacks in https://github.com/processing/p5.js/pull/7765 * Fix WebGL alpha blending by @davepagurek in https://github.com/processing/p5.js/pull/7769 * [2.0] Fix touch event not updating mouse coordinates by @limzykenneth in https://github.com/processing/p5.js/pull/7772 * Updating foundation-section for async/await by @perminder-17 in https://github.com/processing/p5.js/pull/7721 * fixing keyReleased() function. by @perminder-17 in https://github.com/processing/p5.js/pull/7758 * Fix corrupted textures when rendering too many WebGL characters by @davepagurek in https://github.com/processing/p5.js/pull/7792 * Improve antialiased framebuffer performance by @davepagurek in https://github.com/processing/p5.js/pull/7794 * Fix FES check for image() not accepting some valid types by @limzykenneth in https://github.com/processing/p5.js/pull/7801 * Publish types on NPM with next release by @limzykenneth in https://github.com/processing/p5.js/pull/7802 * Fix typo in directionalLight reference (dev-2.0 branch) #7743 by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7778 * Remove dayjs dependency and update date formatting in banner by @error-four-o-four in https://github.com/processing/p5.js/pull/7804 * Rest types by @davepagurek in https://github.com/processing/p5.js/pull/7803 * Updating all the broken refrence examples. by @perminder-17 in https://github.com/processing/p5.js/pull/7739 * Fixing keyTyped() for dev-2.0 branch by @perminder-17 in https://github.com/processing/p5.js/pull/7809 * P2HDR docs by @perminder-17 in https://github.com/processing/p5.js/pull/7728 * Update creating addon libraries contributor docs by @limzykenneth in https://github.com/processing/p5.js/pull/7800 * docs(keyboard): clarify keyIsDown() documentation for key codes and browser compatibility by @dpanshug in https://github.com/processing/p5.js/pull/7812 * Prevent FES from checking nested properties by @IIITM-Jay in https://github.com/processing/p5.js/pull/7824 * update the model params to be correct for 2.0 in docs and FES by @lukeplowden in https://github.com/processing/p5.js/pull/7832 * Model params updated for YUIDocs by @lukeplowden in https://github.com/processing/p5.js/pull/7835 * add instance of video in callback (2.0) by @ksen0 in https://github.com/processing/p5.js/pull/7877 * Add font readiness wait to create() function in p5.Font.js by @sophyphile in https://github.com/processing/p5.js/pull/7882 * Fix typo in createFileInput example by @ksen0 in https://github.com/processing/p5.js/pull/7884 * Create Graphics fixing in dev-2.0 branch. by @perminder-17 in https://github.com/processing/p5.js/pull/7829 * Alias GLSL's mix function as lerp in p5.strands (#7875) by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7887 * added documentation to _getBrightness() and _getGreen() function by @FerrinThreatt in https://github.com/processing/p5.js/pull/7908 * Chore/upgrade eslint by @error-four-o-four in https://github.com/processing/p5.js/pull/7853 * Revamped config.yml(branch: dev-2.0) by @shivasankaran18 in https://github.com/processing/p5.js/pull/7776 * Update zod 3 to zod 4 support in p5.js dev-2.0 by @madhav2348 in https://github.com/processing/p5.js/pull/7872 * Updating visual tests docs for 2.x versions by @perminder-17 in https://github.com/processing/p5.js/pull/7827 * Skip adding degenerate faces in textToModel by @davepagurek in https://github.com/processing/p5.js/pull/7951 * Add GLSL-based noise(vec2) function to p5.strands (#7897) by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7921 * Fix inline anonymous functions causing a parsing error in p5.strands callbacks by @nking07049925 in https://github.com/processing/p5.js/pull/7956 * Fix p5.strands uniform calls, add instance mode construct by @davepagurek in https://github.com/processing/p5.js/pull/7961 * Enhance p5.strands noise() to support noise(x, y) and 4-octave fractal noise by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7964 * Adding docs for `code` in the refrence. by @perminder-17 in https://github.com/processing/p5.js/pull/7902 * Individual flags to disable part of FES by the user by @limzykenneth in https://github.com/processing/p5.js/pull/7967 * Add minified ESM build output by @nickswalker in https://github.com/processing/p5.js/pull/7973 * Replace fn with direct downloadFile import to fix issue where fn was not found by @acgillette in https://github.com/processing/p5.js/pull/7971 * Documentation fix for swapped parameters in splinePoint and bezierPoint by @shawdm in https://github.com/processing/p5.js/pull/7997 * Update dev-2.0 docs with recently-added contributors and stewards by @ksen0 in https://github.com/processing/p5.js/pull/8000 * Remove incorrect mouseX/mouseY docs regarding WEBGL mode in dev-2.0 branch. by @perminder-17 in https://github.com/processing/p5.js/pull/8006 * Fix MediaElement.copy by @pearmini in https://github.com/processing/p5.js/pull/7980 * Reset millis() after setup by @davepagurek in https://github.com/processing/p5.js/pull/8005 * Fix: Corrected code block in textureMode() in dev2.0 by @harishbit in https://github.com/processing/p5.js/pull/8015 * Merge branch 'loopOptimization' of https://github.com/awood0727/p5.js… by @awood0727 in https://github.com/processing/p5.js/pull/8024 * Update README.md by @perminder-17 in https://github.com/processing/p5.js/pull/8029 * Fixed syntax error at disableFriendleErrors by @Iron-56 in https://github.com/processing/p5.js/pull/8038 * Fix noise() getting overridden; add tests by @davepagurek in https://github.com/processing/p5.js/pull/8036 * A few documentation issues to fix by @perminder-17 in https://github.com/processing/p5.js/pull/8031 * Auto-link / Close Issues for 2.0 PRs (p5.js & p5.js-website) by @NalinDalal in https://github.com/processing/p5.js/pull/8025 * minor-fixing in shape docs by @perminder-17 in https://github.com/processing/p5.js/pull/8066 * Update auto-close-issues.yml by @ksen0 in https://github.com/processing/p5.js/pull/8069 * textWidth ignores leading and trailing spaces by @Nitin2332 in https://github.com/processing/p5.js/pull/8067 * [WIP] Docs: Add initial draft of Strands documentation (feedback wanted) by @Abhayaj247 in https://github.com/processing/p5.js/pull/7940 * Fix most of the eslint warnings currently generated by @limzykenneth in https://github.com/processing/p5.js/pull/8063 * Addon Events API and User Defined Functions access by @limzykenneth in https://github.com/processing/p5.js/pull/7947 * Adding some examples for shapes. by @perminder-17 in https://github.com/processing/p5.js/pull/8070 * textToContours is broken under textAlign(CENTER,CENTER) and use linebreak by @perminder-17 in https://github.com/processing/p5.js/pull/8083 * reference-fix-2.0 by @Nitin2332 in https://github.com/processing/p5.js/pull/8086 * Include use of relevant maxes in `hue()`, `saturation()`, `brightness()` and `lightness()` by @limzykenneth in https://github.com/processing/p5.js/pull/8062 * Optimize bottlenecks in 2.0 code by @davepagurek in https://github.com/processing/p5.js/pull/8094 * Fix: allow single-arg atan() outside strands; add unit test by @Abhayaj247 in https://github.com/processing/p5.js/pull/8096 * [p5.strands] Significant refactor for p5.strands by @lukeplowden in https://github.com/processing/p5.js/pull/8009 * Update createCamera docs since it no longer sets the active camera by @davepagurek in https://github.com/processing/p5.js/pull/8100 * Use FES internationalization within the minor version by @ksen0 in https://github.com/processing/p5.js/pull/8106 * Comma included in load font by @perminder-17 in https://github.com/processing/p5.js/pull/8084 * typography error message fixes by @Nitin2332 in https://github.com/processing/p5.js/pull/8115 * Re-bind globals when assigned in addons by @davepagurek in https://github.com/processing/p5.js/pull/8099 * fromAngle returns a 2D Vector by @ksen0 in https://github.com/processing/p5.js/pull/8142 * Bugfix: Prevent genType from being inferred as int in GLSL wrappers by @reshma045 in https://github.com/processing/p5.js/pull/7942 * Skip text/gridOutput with a warning in WebGL in 2.0 by @davepagurek in https://github.com/processing/p5.js/pull/8147 * Add 3D noise(vec3) support to p5.strands by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7978 * fixed the bug of black-frames by @ayushman1210 in https://github.com/processing/p5.js/pull/8132 * Branching and looping for p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8120 * Refactor typescript type generation by @davepagurek in https://github.com/processing/p5.js/pull/8114 * [dev-2.0] Fix optional and rest parameters in TypeScript class method declarations by @SoundOfScooting in https://github.com/processing/p5.js/pull/7863 * Adding Visual Test Report in Github Actions by @Vaivaswat2244 in https://github.com/processing/p5.js/pull/7653 * Only create FilterRenderer2D lazily by @davepagurek in https://github.com/processing/p5.js/pull/8181 * Add missing color module exports by @limzykenneth in https://github.com/processing/p5.js/pull/8182 * Updated 1.x manual tests by @ksen0 in https://github.com/processing/p5.js/pull/8168 * Fix filters on framebuffers of a different size than the canvas by @davepagurek in https://github.com/processing/p5.js/pull/8193 * Vector toString() consistency fix by @limzykenneth in https://github.com/processing/p5.js/pull/8191 * Add contrast() function to check contrast ratio for two colors by @FerrinThreatt in https://github.com/processing/p5.js/pull/7944 * Fix FES stack frame access for internal errors by @davepagurek in https://github.com/processing/p5.js/pull/8175 * Fix usage of fn in MediaElement.connect by @davepagurek in https://github.com/processing/p5.js/pull/8176 * Fix errors in simplifyThreshold in textToPoints by @davepagurek in https://github.com/processing/p5.js/pull/8178 * Fix bugs in buildGeometry by @davepagurek in https://github.com/processing/p5.js/pull/8185 * Fix generation of UVs in rounded rectangles by @davepagurek in https://github.com/processing/p5.js/pull/8197 * Fix buildGeometry with no faces by @davepagurek in https://github.com/processing/p5.js/pull/8207 * Fix varying variables in p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8223 * docs: update module usage instructions to remove Grunt and reflect dev-2.0 tooling #7871 by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7886 * Fix handling of vector arguments to noise() in p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8227 ## New Contributors * @HughJacks made their first contribution in https://github.com/processing/p5.js/pull/7765 * @dpanshug made their first contribution in https://github.com/processing/p5.js/pull/7812 * @sophyphile made their first contribution in https://github.com/processing/p5.js/pull/7882 * @FerrinThreatt made their first contribution in https://github.com/processing/p5.js/pull/7908 * @madhav2348 made their first contribution in https://github.com/processing/p5.js/pull/7872 * @nking07049925 made their first contribution in https://github.com/processing/p5.js/pull/7956 * @nickswalker made their first contribution in https://github.com/processing/p5.js/pull/7973 * @acgillette made their first contribution in https://github.com/processing/p5.js/pull/7971 * @Iron-56 made their first contribution in https://github.com/processing/p5.js/pull/8038 * @Abhayaj247 made their first contribution in https://github.com/processing/p5.js/pull/7940 * @reshma045 made their first contribution in https://github.com/processing/p5.js/pull/7942 * @ayushman1210 made their first contribution in https://github.com/processing/p5.js/pull/8132 * @SoundOfScooting made their first contribution in https://github.com/processing/p5.js/pull/7863 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.0.0...v2.1.0-rc.2

v2.1.0-rc.0预发布
? · 2025-10-20

<!-- Release notes generated using configuration in .github/release.yml at v2.1.0-rc.0 --> ## Help test the release candidate https://cdn.jsdelivr.net/npm/p5@2.1.0-rc.0/lib/p5.js Here are all the updates for the **upcoming [2.1 milestone](https://github.com/processing/p5.js/issues/7937)**. This is a **release candidate** (RC), which means it is not yet live on the p5.js Editor. Please help us to improve the stability of the newest version of p5.js by trying out this release candidate, and reporting bugs. The 2.1.0 minor release is planned for release on **October 27, 2025**, unless there are bugs - then these will be fixed before release. ### What's Changed 🎊 * fix: add splineVertex to p5.Graphics prototype and fix unit test error by @VANSH3104 in https://github.com/processing/p5.js/pull/7757 * [2.x] Fix ESM export functionality by @limzykenneth in https://github.com/processing/p5.js/pull/7764 * Fixed Error in FES prevents message from being shown, Prevented 'window' properties from being overwritten by @HughJacks in https://github.com/processing/p5.js/pull/7765 * Fix WebGL alpha blending by @davepagurek in https://github.com/processing/p5.js/pull/7769 * [2.0] Fix touch event not updating mouse coordinates by @limzykenneth in https://github.com/processing/p5.js/pull/7772 * Updating foundation-section for async/await by @perminder-17 in https://github.com/processing/p5.js/pull/7721 * fixing keyReleased() function. by @perminder-17 in https://github.com/processing/p5.js/pull/7758 * Fix corrupted textures when rendering too many WebGL characters by @davepagurek in https://github.com/processing/p5.js/pull/7792 * Improve antialiased framebuffer performance by @davepagurek in https://github.com/processing/p5.js/pull/7794 * Fix FES check for image() not accepting some valid types by @limzykenneth in https://github.com/processing/p5.js/pull/7801 * Publish types on NPM with next release by @limzykenneth in https://github.com/processing/p5.js/pull/7802 * Fix typo in directionalLight reference (dev-2.0 branch) #7743 by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7778 * Remove dayjs dependency and update date formatting in banner by @error-four-o-four in https://github.com/processing/p5.js/pull/7804 * Rest types by @davepagurek in https://github.com/processing/p5.js/pull/7803 * Updating all the broken refrence examples. by @perminder-17 in https://github.com/processing/p5.js/pull/7739 * Fixing keyTyped() for dev-2.0 branch by @perminder-17 in https://github.com/processing/p5.js/pull/7809 * P2HDR docs by @perminder-17 in https://github.com/processing/p5.js/pull/7728 * Update creating addon libraries contributor docs by @limzykenneth in https://github.com/processing/p5.js/pull/7800 * docs(keyboard): clarify keyIsDown() documentation for key codes and browser compatibility by @dpanshug in https://github.com/processing/p5.js/pull/7812 * Prevent FES from checking nested properties by @IIITM-Jay in https://github.com/processing/p5.js/pull/7824 * update the model params to be correct for 2.0 in docs and FES by @lukeplowden in https://github.com/processing/p5.js/pull/7832 * Model params updated for YUIDocs by @lukeplowden in https://github.com/processing/p5.js/pull/7835 * add instance of video in callback (2.0) by @ksen0 in https://github.com/processing/p5.js/pull/7877 * Add font readiness wait to create() function in p5.Font.js by @sophyphile in https://github.com/processing/p5.js/pull/7882 * Fix typo in createFileInput example by @ksen0 in https://github.com/processing/p5.js/pull/7884 * Create Graphics fixing in dev-2.0 branch. by @perminder-17 in https://github.com/processing/p5.js/pull/7829 * Alias GLSL's mix function as lerp in p5.strands (#7875) by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7887 * added documentation to _getBrightness() and _getGreen() function by @FerrinThreatt in https://github.com/processing/p5.js/pull/7908 * Chore/upgrade eslint by @error-four-o-four in https://github.com/processing/p5.js/pull/7853 * Revamped config.yml(branch: dev-2.0) by @shivasankaran18 in https://github.com/processing/p5.js/pull/7776 * Update zod 3 to zod 4 support in p5.js dev-2.0 by @madhav2348 in https://github.com/processing/p5.js/pull/7872 * Updating visual tests docs for 2.x versions by @perminder-17 in https://github.com/processing/p5.js/pull/7827 * Skip adding degenerate faces in textToModel by @davepagurek in https://github.com/processing/p5.js/pull/7951 * Add GLSL-based noise(vec2) function to p5.strands (#7897) by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7921 * Fix inline anonymous functions causing a parsing error in p5.strands callbacks by @nking07049925 in https://github.com/processing/p5.js/pull/7956 * Fix p5.strands uniform calls, add instance mode construct by @davepagurek in https://github.com/processing/p5.js/pull/7961 * Enhance p5.strands noise() to support noise(x, y) and 4-octave fractal noise by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7964 * Adding docs for `code` in the refrence. by @perminder-17 in https://github.com/processing/p5.js/pull/7902 * Individual flags to disable part of FES by the user by @limzykenneth in https://github.com/processing/p5.js/pull/7967 * Add minified ESM build output by @nickswalker in https://github.com/processing/p5.js/pull/7973 * Replace fn with direct downloadFile import to fix issue where fn was not found by @acgillette in https://github.com/processing/p5.js/pull/7971 * Documentation fix for swapped parameters in splinePoint and bezierPoint by @shawdm in https://github.com/processing/p5.js/pull/7997 * Update dev-2.0 docs with recently-added contributors and stewards by @ksen0 in https://github.com/processing/p5.js/pull/8000 * Remove incorrect mouseX/mouseY docs regarding WEBGL mode in dev-2.0 branch. by @perminder-17 in https://github.com/processing/p5.js/pull/8006 * Fix MediaElement.copy by @pearmini in https://github.com/processing/p5.js/pull/7980 * Reset millis() after setup by @davepagurek in https://github.com/processing/p5.js/pull/8005 * Fix: Corrected code block in textureMode() in dev2.0 by @harishbit in https://github.com/processing/p5.js/pull/8015 * Merge branch 'loopOptimization' of https://github.com/awood0727/p5.js… by @awood0727 in https://github.com/processing/p5.js/pull/8024 * Update README.md by @perminder-17 in https://github.com/processing/p5.js/pull/8029 * Fixed syntax error at disableFriendleErrors by @Iron-56 in https://github.com/processing/p5.js/pull/8038 * Fix noise() getting overridden; add tests by @davepagurek in https://github.com/processing/p5.js/pull/8036 * A few documentation issues to fix by @perminder-17 in https://github.com/processing/p5.js/pull/8031 * Auto-link / Close Issues for 2.0 PRs (p5.js & p5.js-website) by @NalinDalal in https://github.com/processing/p5.js/pull/8025 * minor-fixing in shape docs by @perminder-17 in https://github.com/processing/p5.js/pull/8066 * Update auto-close-issues.yml by @ksen0 in https://github.com/processing/p5.js/pull/8069 * textWidth ignores leading and trailing spaces by @Nitin2332 in https://github.com/processing/p5.js/pull/8067 * [WIP] Docs: Add initial draft of Strands documentation (feedback wanted) by @Abhayaj247 in https://github.com/processing/p5.js/pull/7940 * Fix most of the eslint warnings currently generated by @limzykenneth in https://github.com/processing/p5.js/pull/8063 * Addon Events API and User Defined Functions access by @limzykenneth in https://github.com/processing/p5.js/pull/7947 * Adding some examples for shapes. by @perminder-17 in https://github.com/processing/p5.js/pull/8070 * textToContours is broken under textAlign(CENTER,CENTER) and use linebreak by @perminder-17 in https://github.com/processing/p5.js/pull/8083 * reference-fix-2.0 by @Nitin2332 in https://github.com/processing/p5.js/pull/8086 * Include use of relevant maxes in `hue()`, `saturation()`, `brightness()` and `lightness()` by @limzykenneth in https://github.com/processing/p5.js/pull/8062 * Optimize bottlenecks in 2.0 code by @davepagurek in https://github.com/processing/p5.js/pull/8094 * Fix: allow single-arg atan() outside strands; add unit test by @Abhayaj247 in https://github.com/processing/p5.js/pull/8096 * [p5.strands] Significant refactor for p5.strands by @lukeplowden in https://github.com/processing/p5.js/pull/8009 * Update createCamera docs since it no longer sets the active camera by @davepagurek in https://github.com/processing/p5.js/pull/8100 * Use FES internationalization within the minor version by @ksen0 in https://github.com/processing/p5.js/pull/8106 * Comma included in load font by @perminder-17 in https://github.com/processing/p5.js/pull/8084 * typography error message fixes by @Nitin2332 in https://github.com/processing/p5.js/pull/8115 * Re-bind globals when assigned in addons by @davepagurek in https://github.com/processing/p5.js/pull/8099 * fromAngle returns a 2D Vector by @ksen0 in https://github.com/processing/p5.js/pull/8142 * Bugfix: Prevent genType from being inferred as int in GLSL wrappers by @reshma045 in https://github.com/processing/p5.js/pull/7942 * Skip text/gridOutput with a warning in WebGL in 2.0 by @davepagurek in https://github.com/processing/p5.js/pull/8147 * Add 3D noise(vec3) support to p5.strands by @LalitNarayanYadav in https://github.com/processing/p5.js/pull/7978 * fixed the bug of black-frames by @ayushman1210 in https://github.com/processing/p5.js/pull/8132 * Branching and looping for p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8120 * Refactor typescript type generation by @davepagurek in https://github.com/processing/p5.js/pull/8114 * [dev-2.0] Fix optional and rest parameters in TypeScript class method declarations by @SoundOfScooting in https://github.com/processing/p5.js/pull/7863 ## New Contributors * @HughJacks made their first contribution in https://github.com/processing/p5.js/pull/7765 * @dpanshug made their first contribution in https://github.com/processing/p5.js/pull/7812 * @sophyphile made their first contribution in https://github.com/processing/p5.js/pull/7882 * @FerrinThreatt made their first contribution in https://github.com/processing/p5.js/pull/7908 * @madhav2348 made their first contribution in https://github.com/processing/p5.js/pull/7872 * @nking07049925 made their first contribution in https://github.com/processing/p5.js/pull/7956 * @nickswalker made their first contribution in https://github.com/processing/p5.js/pull/7973 * @acgillette made their first contribution in https://github.com/processing/p5.js/pull/7971 * @Iron-56 made their first contribution in https://github.com/processing/p5.js/pull/8038 * @Abhayaj247 made their first contribution in https://github.com/processing/p5.js/pull/7940 * @reshma045 made their first contribution in https://github.com/processing/p5.js/pull/7942 * @ayushman1210 made their first contribution in https://github.com/processing/p5.js/pull/8132 * @SoundOfScooting made their first contribution in https://github.com/processing/p5.js/pull/7863 **Full Changelog**: https://github.com/processing/p5.js/compare/v2.0.0...v2.1.0-rc.0