Py5 beginner documentation

Just wanted to know do we have to contribute to processing before working on this project? Like I am pretty much well versed with py5 on basic level…and pretty much can make notebooks related to it as well. So Is there any issue i can contribute related to py5?
@tabreturn @hx2A

3 Likes

Hi, @jaivanti ! It is fine if you haven’t contributed before, to Processing or anywhere else. First time contributors are valued, especially here.

1 Like

Thanks a lot @hx2A
I will surely soon share the proposal for this project :+1:

Excellent! We are looking forward to reading it. Thank you for your interest and your support.

@hx2A @tabreturn This is the proposal link: proposal
Please let me know for any changes. Thanks

1 Like

Thank you @jaivanti !

I like the timeline you created to show your goals for each week. It might be helpful if the proposal also included an outline of the documentation topics you’d work to create? Then it would be easier to suggest topics or themes that might be missing.

Another thing to consider is while writing the documentation, think about the usability of py5. While working on the reference documentation I was forced to articulate how py5 does work but sometimes realized that it would be better if it worked differently. This inspired a lot of important improvements to py5.

A perfect example is this bug: Possible alias for .getCount() method of the mouse_wheel event · Issue #64 · hx2A/py5generator · GitHub

Rather than write documentation that uses a getCount() method, realize that the functionality here is inconsistent with the camel case used everywhere else in py5, and the documentation would be better if it was get_count() instead. This is an opportunity to improve py5.

I’d expect that during the documentation process there will be other small issues that come to the surface.

@hx2A Thanks for the response.
I am currently adding the outline part in the proposal. I pretty much understood the usability stuff, which is something as I understand would get better when more people use it and share their user experience around py5. Also, I will too be mindful about the usability while working around py5 and would share the experience about it as a part of doc.

@hx2A I have added the outline of tutorial topics(right above the timeline part) which will be covered. Please do let me know for any change.

I just read through it again. This is looking pretty good! I like your idea for a tutorial on problem solving, that is important.

For vectors, Py5Vector supports 2D, 3D, and 4D vectors. There are no 1D vectors.

@hx2A That’s great! I have made those vector related changes in the proposal :+1:
I will submit it then. Thanks

1 Like

@hx2A Just wanted to know whether this project is gonna go in large category or medium category of size? Like its asked in the Proposal form?

Not sure what you mean or how important that is. Pick whichever one you feel is most appropriate for your proposal.

@hx2A Alright! I have chosen the project size as ‘large’…Thanks!

Hello @hx2A
I hope your doing well!
Actually, I couldn’t make it for GSOC’22 but I am still interested in contributing to Open Source. My batch-mate and I are interested in jointly working on contributing to documentations for py5 tutorials.
So, let us know if this suits you. Further, we can work around the details.

Hi @jaivanti ! I am happy you are still interested in contributing to open source!

py5 now has someone for the summer’s GSOC documentation project, generously funded by the Processing Foundation. Zelle is going to be writing a series of beginner tutorials for py5. There is still more documentation that needs to be written though. How about some How-tos for common topics, like how to use sound with py5, or how to use an Arduino with py5? These are open ended tasks, and you’d first need to do some research and experimentation on how to do these things. For the Arduino there is the pyserial library, which I’ve used once before, but what other options are there? What would be a good choice for beginners to use? I know very little about sound and Python. I used simpleaudio once before, which is accessible. Are there other good choices?

Thanks a lot @hx2A!
I and my batch-mate, srushti would love to work on these open-ended how-tos tutorials and learn more about the implementation of py5. We will try searching about how sound is used in python and creative programming languages. Or maybe even come up something from our side. If possible, can you provide a gist of topics which are covered by zelle, like it would be very easy for us to filter things out then? Thanks!

Hi @jaivanti – it’s exciting to hear that you and Srushti are keen to contribute!

I’m working with Zelle and @hx2A on the documentation project. Zelle’s tutorials follow an outline something like this:

  1. Installation and getting py5 running
  2. Drawing 2D primitives (the basic coordinate system, color, fills, strokes). Note: the tutorials use static mode until point 9.
  3. Variables (and dealing with different data types – for creating visual output, of course)
  4. Drawing more complicated shapes (curves, vertices, contour functions)
  5. Working with text (basics of working with strings and text functions)
  6. Conditional statements (if, else, elif to produce visual results)
  7. Iteration (while and for loops to produce visual results; break and continue)
  8. Randomness (random functions for making tiled patterns)
  9. Motion / Animated sketches (the setup() and draw() functions; frame_… functions)
  10. Mouse and Keyboard Interaction
  11. Transformation (transformation functions, push/pop matrix)
  12. Working with lists (standard Python list stuff with visual results)
  13. Reading data (CSV files to generate charts)
  14. Dictionaries (standard Python dictionary stuff, and maybe loading JSON)
  15. Functions (defining a function, args, return, etc. based on tasks that produce visual results)
  16. Trigonometry essentials (using trig functions for animated results)
  17. Object-Oriented Programming (standard Python OOP stuff)
  18. PVector (combined with OOP to produce visual, animated results)

That takes somebody utterly new to Python and Processing to an intermediate level, relatively speaking.

Let me know if you have any questions. It might be better to move the conversation to the GitHub discussions page: https://github.com/py5coding/py5generator/discussions

Thanks a lot @tabreturn for the list! Its very helpful.
We were thinking to currently focus on the topic of ‘sound with py5’. We have found some resources for playing sound with python and will also tinker around a bit with py5 and observe on how it works :+1:

2 Likes