p5.js š¤ q5.js
I'm working to increase interoperability between the upcoming p5 v2 and q5 v3!
Itās mind blowing to think that so many students, teachers, and game developers around the world are bringing their ideas to life with p5play. Iām incredibly grateful, but it also makes me feel a bit distant. Who are all these people?
So in addition to my usual development logs, Iām starting a new series of interviews with people who are using p5play in inspiring ways.
Making Amends
Just as software can connect people, it can also provoke division. But now Iām putting my past troubles with The Processing Foundation behind me.
As you may know, p5.js has a new project leader: Kit Kuksenok!
Iām no longer marketing q5 as āthe sequel to p5ā, but more accurately as an alternative thatās optimized for interactive art and games, when paired with the upcoming q5play game engine.
Finishing q5 v3
Iāve been deep in the weeds coding in preparation for the release of q5 v3.
Iāve spent months refining the API, fixing countless bugs, and writing docs. Iāve become obsessed with experimenting to get better performance. Itās made me feel a bit like a crazed hermit.
Itās a paradox: you write software for people, but most of the time itās just you and your machine. Of course this experience is not unique to programmers. Ever since the invention of the printing press, writers have surely felt this disconnect.
Yet, programming is even more ethereal in a sense. If I had never put these words in this order, this article would not exist. But a program is an instruction set. It too can be unique, yet itās just telling the computer to do something itās always had the latent ability to do.
Programming is writing, itās math, itās a science, itās an art, and itās teaching the computer!
And who says an old dog canāt learn new tricks? Iāve been thrilled with the results from my 5 year old computer, which Iāll be sharing soon.
q5 v3.0-beta4 Progress Report
q5 retains backwards compatibility with p5 v1ās preload system and automatically supports promise based loading!
q5ās preload system now uses `Promise.all` behind the scenes.
First time contributor Evana Pradhan added Google Fonts support to `loadFont`. See her demo!
`textWeight`, `doubleClicked`, `requestPointerLock`, `exitPointerLock`, `setOutputVolume`, and `sound.onended` implemented.
Refactored input handling using the Pointer Events API.
Deprecated and removed documentation for the use of callbacks in load* functions, since users can now use promise based `then` and `catch` functions.
After more extensive testing and improvements made to `createGraphics` in q5 WebGPU, I got it mostly working, but decided it's probably best for it to be disabled by default. See issue #104 for more info.
Deleted the q5-ai.js module since it's been superseded by AI integrated directly into Chromium's dev console and also several online code editors.
Added a friendly error system that simply shows users the line in their sketch file from which the error originates, since comprehending JS stack traces can be a point of friction for beginners.
Fixed `saveCanvas` in q5 WebGPU.
Added a new math function called `jit`.
Thatās all for now folks!




