I've been playing around with something similar recently and I'd encourage you to look into doing this with pure webgl rather than p5.js. It's surprisingly simple (this would just be a `gl.drawArrays(gl.POINTS,...)` call it with some buffer setup and texture `texelFetch` reading) and freeing and empowering to work from the groud up without frameworks. It's also really nice to offload player offset and zoom to the gpu/shaders (it handles it really smoothly and with basically more straightforward than you'd have to do to only draw things that's on the screen with canvas rendering).
Great idea. This would be dramatically lighter weight in terms of client download and more performant. I believe color variation logic could also be offloaded to a fragment shader.
I had a lot of fun drawing instantly without a library, but p5js has so many great things that are easy to forget.
Between noise, color conversions, prebuilt draw loop, event handling and working with images…
It’s not so easy to give it up for quick projects.
Suddenly 10 minutes in p5js is an hour or very difficult without a replacement library (noise) and focusing on boilerplate instead of the interesting bits
I totally get this argument. The only counter argument I'd put forward is that once you've set up that boilerplace once (which you've now figured out), abstracting that into a little library file of your own that you understand isn't too much work (and easy to extend in the future). Another argument is that learning raw webgl and getting comfortable with it (which repeated boilerplate setup and general comfort with all the API calls creates with long term use) is likely learning that will transfer over to future projects more than mastery of p5 in particular would.
I'm mostly saying this as if talking to an earlier version of myself since I spent a lot of time learning threejs when I in hindsight now realize doing it with raw webgl (while building up a little boilerplate abstraction library and generally gaining comfort with the API) might have been a better use of time (especially long term). Kinda depends on what you overall goals are though too (and how eager you are to make the idea you have come into reality) etc etc.