Seeking feedback: Python for creative coding

Hey y’all!

py5-ish adapter

I like the idea! Thank you very much. I’ve opened a ticket. There are some challenges (for example, sketching’s API deals with the fact that some renderers offer functionality others don’t which I’m not sure is a concept in the py5 interface design) though so I may need to chat with some colleagues about this one.

is there a technical reason you couldn’t swap pygame for Processing

Yes, unfortunately we have a requirement that this can run fully in Python so we cannot have a JVM dependency, precluding our use of Processing. However, @villares thank you for that suggestion! I’ve opened a ticket.

That said, I’m curious everyone’s thoughts on this. It’s unlikely Sketching will be able to support 3D in its other renderers like static and SVG at least for a while so I worry adding Processing as a backend wouldn’t add much for users over their simply using py5 instead. Separately, I’m not certain Processing or py5 will want to adopt joystick, sound, and geo support from Sketching so a lot of Sketching’s API may not be available there. I’m aware there are libraries but then it gets complicated ensuring they are available to the JVM on the other side.

web (p5.js)

Sorry I missed this. Yes, ironically it is somewhat easier (and I think potentially more performant) to interface with the HTML element directly in pyscript than to route calls through a JS library.

“nouns and verbs”

Thank you for this @mcintyre! I would gently also point out though a number of counter counter examples :stuck_out_tongue:. See getters / setters in matplotlib artist, create_* in tkinter canvas, part of Pandas. Also a number of courses formalize this approach (Cornel, Boston, Stanford, AP CS). It’s also common in industry. I really respect your perspective on this! However, though I know it deviates from Processing, I regret that I may politely decline this suggestion. Thank you!

The distinction between D3 and Processing is pretty clear to me. Sketching and existing packages less so.

Thanks for your perspective! I hope it’s ok that I gently disagree here. I think the specific combination of goals I mentioned (portability, agnostic - including Python only execution, embeddable) are somewhat distinct at this stage and, for example, I don’t know if I see a clear alternative available right now for projects at work needing these three criteria. Those goals influence API design and different projects provide different interfaces because their objectives are divergent. Though I respect our disagreement on this point, I do think these efforts have distinct criteria and all separately offer something important to the broader ecosystem. Thank you so much for your thoughts on this!

I also worry I may have sent the wrong message :sweat_smile:. I am also still absolutely invested in Processing and continue contributing to its codebase as one of the three named core developers beyond Ben. Sketching has different goals than Processing but I value both.

EDIT: Sorry forgot to respond to p5 comment.

2 Likes

Sorry didn’t mean to be a party pooper there on that last message :cry:. Thank you again so much for all of this feedback! These are some great tickets. Please let me know if you have other feedback and hope to offer some updates on your requests soon!

2 Likes

Don’t think twice about it @sampottinger! Sketching is a cool project–hope I’ve helped you span a bit more of the design space for discussion’s sake. Looking forward to updates!

3 Likes

Thanks @mcintyre and thanks everyone!

2 Likes

For n1 following this discussion so far, I’d like to list a few other alternatives for running p5js on the web using Python syntax:

  1. pyp5js by @berin.
  2. proceso by @mcintyre.

BtW, I’ve got a very simple example using proceso + p5*js + PyScript here.

4 Likes