q5js / q5.js

A sequel to p5.js that's smaller, faster, and optimized for interactive art!
https://q5js.org
GNU Lesser General Public License v3.0
99 stars 8 forks source link

Make q5 modular! v2.0 release #34

Closed quinton-ashley closed 2 months ago

quinton-ashley commented 3 months ago

I've broken q5 up into the smallest useful modules which are in the src folder. This is great for organizational purposes and also for extremely lightweight use in which users only need to load the modules necessary for a particular sketch to run.

Modules will load via side effects to keep things simple for students.

quinton-ashley commented 3 months ago

@Tezumie to make modular use more viable I've figured out some ways to avoid modules from being as dependent on other modules.

Some drawing operations in q5-2d-drawing require TAU (two PI) so I moved it from q5-math to q5-core.

fill, stroke, and background can now be used without q5-color, users would just need to use css color format strings as input to these functions.

quinton-ashley commented 2 months ago

q5.js v2.0 released!

quinton-ashley commented 2 months ago

Today I'm inviting contributors to p5.js to take a look at q5.js v2.0 πŸ˜„ @Qianqianye @limzykenneth @davepagurek @nickmcintyre @mattdesl @GregStanton @curran @mvicky2592 @lee2sman @multimonos @hiddenenigma @bojidar-bg @RandomGamingDev @ceilTempest @dhowe @kaitabuchi314 @hellonearthis @Vishal2002 @kjhollen @SableRaf @lindapaiste @shiffman @msawired @monolithMktg

https://q5js.org πŸ‘€

Many of the features planned for p5 2.0 that you've requested have already been implemented in q5! πŸŽ‰

Other p5 issues not planned for p5 2.0:

I'm excited to see some of these features that I felt were long overdue come to p5.js in the future.

quinton-ashley commented 2 months ago

Is q5js hoping to replace p5js, or be another (better) version of it that will be developed along p5?

@kaitabuchi314 I don't think that q5 will replace p5. I would say that our goals in developing q5 (performance, brevity, and simplicity) are just better aligned with what game devs and generative artists want out of a p5 style framework.

I started q5 in part because I was frustrated that it took five months for a simple bug fix that I made (literally just moving two lines of code) to make it into a mainline release of p5.

PR submitted Feb 12, 2023: https://github.com/processing/p5.js/pull/6015 PR merged Feb 25, 2023: https://github.com/processing/p5.js/pull/6015#pullrequestreview-1314596469 Released July 10, 2023: https://github.com/processing/p5.js/releases/tag/v1.7.0

Same problem this year fixing deltaTime:

PR submitted Feb 1, 2024: https://github.com/processing/p5.js/pull/6785 PR merged May 28, 2024 and still not released after 5 months

Obviously p5play wouldn't exist without p5 but I also began to see relying solely on p5 as a liability after my bad experience as a contributor.

I think as a smaller team Tezumie and I were able to implement all these 2.0 features quicker than a large bureaucratic organization like TPF can.

RandomGamingDev commented 2 months ago

I don't think that q5 will replace p5. I would say that our goals in developing q5 (performance, brevity, and simplicity) are just better aligned with what game devs and generative artists want out of a p5 style framework. I started q5 in part because I was frustrated that it took five months for a simple bug fix that I made (literally just moving two lines of code) to make it into a mainline release of p5.

I second this as my experiences with p5.js have gone similarly, although maybe not as badly as yours.

quinton-ashley commented 2 months ago

maybe not as badly as yours.

I'd hope not! haha

kjhollen commented 2 months ago

hi @quinton-ashley, I'm not affiliated with this project and ask that you please stop tagging me in issues. Thanks!

quinton-ashley commented 2 months ago

@kjhollen no problem, just letting everyone know the features they've requested to be implemented in p5 have already been implemented in q5 so they don't have to wait. ☺️