Download Latest Version p5.zip (1.2 MB)
Email in envelope

Get an email when there's a new version of p5.js

Home / v2.2.3
Name Modified Size InfoDownloads / Week
Parent folder
p5.esm.js 2026-03-21 4.2 MB
p5.js 2026-03-21 4.4 MB
p5.min.js 2026-03-21 962.6 kB
p5.zip 2026-03-21 5.3 MB
README.md 2026-03-21 5.0 kB
v2.2.3 source code.tar.gz 2026-03-21 21.1 MB
v2.2.3 source code.zip 2026-03-21 22.1 MB
Totals: 7 Items   58.0 MB 2

What's Changed

This patch contains bugfixes, documentation updates, and improvements in developer experience:

  1. A decorator API for further customisation of p5.js by addons without needing to duplicate or directly modify internal implementation. It is already used internally by FES parameter validation and provides a route towards additional accessibility oriented features. It is based on this proposal. (@limzykenneth)
  2. A fix enabling p5 global-mode typescript use, such as in this non-trivial example (@nbogie)
  3. Extensive update to the contributor documentation for testing 2.x p5.js reference locally (@nbogie)
  4. Various bugfixes for p5.strands and WebGL (@davepagurek)

Try it out!

To use this patch, you can use this starter sketch!

Or load both p5.js and WebGPU mode by adding these two script tags to your sketch:

:::html
<script src="https://cdn.jsdelivr.net/npm/p5@2.2.3/lib/p5.js"></script>
<script src="https://cdn.jsdelivr.net/npm/p5@2.2.3/lib/p5.webgpu.js"></script>

Then load WebGPU mode in createCanvas - note the async/await, this is needed for WebGPU but not WebGL:

:::js
async function setup() {
  await createCanvas(400, 400, WEBGPU);
}

If you take any existing sketch, such as from the intro to strands tutorial, you can switch from WEBGL to WEBGPU (async/await will be needed!)

Read more about how the WebGPU-based renderer works and where we plan on taking it here!

Developer experience

Documentation updates

WebGL and p5.strands bugfixes

Other bugfixes

New Contributors

Stewards & testers

Thanks to @nbogie @davepagurek for code review and @aashu2006 and @Jatin24062005 for additional support with testing the release candidates 🎉

Full Changelog: https://github.com/processing/p5.js/compare/v2.2.2...v2.2.3

Source: README.md, updated 2026-03-21