p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. Looking for p5.js 2.0? http://beta.p5js.org
\r\n\r\n```\r\n\r\nThen load WebGPU mode in `createCanvas`:\r\n```js\r\nasync function setup() {\r\n await createCanvas(400, 400, WEBGPU);\r\n}\r\n```\r\n\r\nRead 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)!\r\nYou're also welcome to come by the Discord #webgpu channel ๐ฑ \r\n\r\n### What's Changed ๐\r\n* Ported the stroke shader to WebGPU renderer by @lukeplowden in https://github.com/processing/p5.js/pull/7915\r\n* Framebuffer support on WebGPU renderer by @davepagurek in https://github.com/processing/p5.js/pull/8008\r\n* webgpu ci test by @tychedelia in https://github.com/processing/p5.js/pull/8023\r\n* Add WIP WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8179\r\n* Update release action to omit WebGPU tests, add TS tests by @davepagurek in https://github.com/processing/p5.js/pull/8337\r\n* FES parameter validation decoration use `.apply()` for faster function invocation by @limzykenneth in https://github.com/processing/p5.js/pull/8332\r\n* Add WebGPU built files to npm releases by @davepagurek in https://github.com/processing/p5.js/pull/8338\r\n* Make sure bytes are aligned in p5.Geometry by @davepagurek in https://github.com/processing/p5.js/pull/8340\r\n* Fix WebGPU buffer memory leaks by @davepagurek in https://github.com/processing/p5.js/pull/8342\r\n* Fix JSDoc return type for p5.Vector.cross (2.0) by @Geethegreat in https://github.com/processing/p5.js/pull/8346\r\n* Add support for instanceID() in WebGPU mode by @davepagurek in https://github.com/processing/p5.js/pull/8348\r\n* Fix WebGPU filters in CDN builds using duck typing for nodes (closes โฆ by @Piyushrathoree in https://github.com/processing/p5.js/pull/8349\r\n* Fix Camera.slerp for ortho by cloning projMatrix into uPMatrix when active by @nakednous in https://github.com/processing/p5.js/pull/8351\r\n* fixed the issue with alpha blending - fixing blur remaining by @Piyushrathoree in https://github.com/processing/p5.js/pull/8354\r\n* Support background(image) in WEBGL Renderer3D by @reshma045 in https://github.com/processing/p5.js/pull/8352\r\n* Fix LogicalExpression (&&, ||) handling in p5.strands by @Aayushdev18 in https://github.com/processing/p5.js/pull/8359\r\n* Fix p5.strands filters not working on minified code by @davepagurek in https://github.com/processing/p5.js/pull/8367\r\n* More fixes for minified filters by @davepagurek in https://github.com/processing/p5.js/pull/8372\r\n* Fix transforms in clip() by using shape system for primitives using manual method by @VANSH3104 in https://github.com/processing/p5.js/pull/8236\r\n* Make sure text binds an index buffer by @davepagurek in https://github.com/processing/p5.js/pull/8393\r\n* Fix font measurement with font families containing special characters by @davepagurek in https://github.com/processing/p5.js/pull/8391\r\n* Fix for strands branching by @davepagurek in https://github.com/processing/p5.js/pull/8394\r\n* Fix assignments to properties of `inputs` in branches in p5.strands by @davepagurek in https://github.com/processing/p5.js/pull/8397\r\n* Fix set() to support p5.Graphics objects by @VANSH3104 in https://github.com/processing/p5.js/pull/8326\r\n* Fix type for shuffle() and add type test. by @nbogie in https://github.com/processing/p5.js/pull/8410\r\n* Fix p5.strands parsing of named function callbacks by @davepagurek in https://github.com/processing/p5.js/pull/8414\r\n\r\n## New Contributors\r\n* @tychedelia made their first contribution in https://github.com/processing/p5.js/pull/8023\r\n* @Piyushrathoree made their first contribution in https://github.com/processing/p5.js/pull/8349\r\n* @Aayushdev18 made their first contribution in https://github.com/processing/p5.js/pull/8359\r\n\r\n**Full Changelog**: https://github.com/processing/p5.js/compare/v2.1.2...v2.2.0","url":"https://announcehq.com/p5-js/32927399-a954-400d-bb56-601ee96bd579","datePublished":"2026-01-14T16:00:03.000Z","dateModified":"2026-01-14T16:00:03.000Z","author":{"@type":"Organization","name":"p5.js","url":"https://github.com/processing/p5.js"},"publisher":{"@type":"Organization","name":"AnnounceHQ","url":"https://announcehq.com","logo":{"@type":"ImageObject","url":"https://announcehq.com/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://announcehq.com/p5-js/32927399-a954-400d-bb56-601ee96bd579"},"isPartOf":{"@type":"WebPage","@id":"https://announcehq.com/p5-js","name":"p5.js Changelog"},"about":{"@type":"SoftwareApplication","name":"p5.js"},"keywords":"p5.js, release notes, changelog, new, software update"}Back to changelog
New
v2.2.0
2.2: WebGPU and bugfixes
The 2.2 minor release contains work on WebGPU rendering that has been going on over the past year! WebGPU mode is included in a core add-on now. This release also contains a number of improvements in documentation and p5.strands bugfixes.
To load both p5.js and WebGPU mode, add these two script tags to your sketch: