GSoC 2023: Join the Processing Foundation as a Summer of Code Contributor!

Welcome, @v3rykawaii !

The first step is to extend the Thonny IDE plugin functionality to provide example code in an accessible way. Once that’s done, we can add the example code we have and create more in areas where we think it is needed.

I added the Good First Issues tag to a few issues in the py5 repo:

If you have questions about those issues, you can reply on github.

1 Like

Hello to the PF Team, and thank you for reviewing this short proposal summary!

My name is Ren Chen, and I’m a beginning coder interested in the Web Accessibility on p5js.org and documentation project.

I have some experience with HTML, CSS, and JavaScript, but my greatest strengths for this project are my communication and accessibility experience. For many years I have worked in education and nonprofits, evaluating accessibility and improving clarity, and I can bring these skills to p5.

My short proposal summary for this project includes:
1. Auditing the current site and documentation with accessibility in mind, following the Web Content Accessibility Guidelines unless directed otherwise
2. Updating tutorials and documentation to support user comfort
3. Testing and improving alt-text features (including form buttons, if applicable)
4. Reevaluating overall accessibility and UX/UI (including mobile)

This is just a brief start without time estimates, and I would deeply appreciate any feedback or suggestions from Claire, Caleb, and/or any other interested people.

Thank you so much!

Thanks for the suggestions regarding the Unity Processing Library @TiborUdvari. Although the elements presented by Chunity are very interesting, I think it would be a better use of the project time to create a package resembling Shapes by Freya Holmér: lots of simple shape creation tools that fulfill the basics of processing’s library. Additionally, the Net.Processing library would be useful as a guide of what methods to create for the package, but not much more, as even with the library, interactions with Unity Editor would still need to be coded.

In short, my proposal aims at replicating the Processing Library in Unity with simplified commands and creation tools for users to create a variety of shapes and objects in a 2D environment.

Some milestones of the project:

  • 2D Primitive functions
  • Color, Alpha, Brightness, etc. functions
  • Transform functions
  • Keyboard and Mouse interactions
  • Vertex and Draw functions
  • Bezier curves

Nice-to-Have Inclusions:

  • Unity Editor interactions
  • 3D Primitive Shapes

I look forward to working on this project, and I’d love to hear any feedback!

2 Likes

Hi! I’m Ayushman Tripathi, JavaScript Software Developer and I came across the projects Asset Uploading Improvements, and Adding Test Coverage. I find them really fascinating. I believe my skills and experience would be a great fit for these projects. I am really interested in contributing to Asset Uploading Improvements, and I’ve relevant skills for contributing to it as I’ve experience in full stack web development (React, Node, MongoDB, PostgresSQL, REST API, Django, AWS). I’ve worked on 10+ full stack projects & 4 internships in the past 1.5 years, and I have also completed the App Academy Open Software Engineering Bootcamp (500+ hours of full-stack online curriculum), where I learned a variety of skills. Additionally, I have worked on various frontend and backend projects, and I’m also preparing for the AWS Certified Developer Associate certification. I’m willing to learn new skills while contributing to the project. I’ll put all my efforts into successfully contributing to the project.
Can you please guide me on how to start contributing to the above two projects ?
Thanks a lot.

Hi Everyone!
My name is Diego Moreno and I’m a third-year Computer Science student at Florida International University. I’m interested in participating in this year’s GsoC as a first-time contributor, and upon reading this year’s ideas, the Develop and Organize py5 Example Code project looks really interesting to me, and something I could help with.

I have been learning python for a few years, and have worked professionally with it for the past year. My work has focused on creating tools to automate data collection and developing web apps with Django.

Lastly, I had a couple of questions regarding the project idea, but most of them were answered in the post made by v3rykawaii. On a more general note, I have a couple of questions for @villares and @hx2A regarding py5.

  1. Is there a specific place for contributors to discuss topics related to py5?
  2. Would the Processing team be interested in localizing the current documentation of py5 into Spanish? That could be a helpful alternate project idea which could even incorporated onto my proposal, depending on the scope.

Thanks in advance.

Hello, @dmorenog01 ! Thank you for your interest in py5.

A lot of the py5 design discussions take place in github discussions:

And yes, we would be very interested in localizing the documentation to py5. And there’s a lot that could be said about this that goes beyond translating text to Spanish. Consider the files in this directory:

py5 is “generated” by the py5generator repo to create the actual py5 code, found in the py5 repo. When I run the py5 build, I use that data files in that directory as source material for py5’s docstrings. I also use that directory as source material for generating the reference documentation found on py5coding.org. Now consider what could be done if there was a second directory with everything in Spanish? One could create a second py5 build with Spanish docstrings and a second set of reference document files. What if there was a third directory with another language? One could create multiple py5 distributions with the docstrings in several languages, and multiple sets of reference docs. This would achieve a level of language accessibility that no Python library that I know of has achieved.

There is one catch though: all of these files would need to be translated correctly and stay in sync. Sometimes I update the reference docs because a new feature was added or to clarify something. When this happens, the translated versions would need to be updated also.

If there was a mechanism to keep track of this, perhaps with some automation tools like GitPython to compare timestamps, the “stale” documentation files could be identified and volunteers from the community could update them. Or maybe something different, like what p5 does to manage their multiple language reference docs. I don’t know, open to ideas here. The key goal is that this is all easy to maintain and easy to keep in sync. Once that is achieved, scaling out to multiple languages would be possible.

1 Like

Hello again @hx2A,
Yes, I had not considered that, and it does seem like a better way of handling localization. I’m not familiar with GitPython, but I will certainly look into it before formalizing a proposal. I also had a couple of questions regarding the proposal:

  1. Do you think that creating the mechanism to handle stale translations, and creating the first Spanish translations should be incorporated into the same proposal? Or is it enough for a second one?

  2. Does Processing have any guides on creating a good proposal? I know that Python’s GsoC page has a good template I could guide myself with.

1 Like

I haven’t used it either, but it seems like the first thing I would try if I wanted to interact with a git repo using Python. There might be better choices though.

First, I should point out that I only speak one language, and therefore I am the wrong person to comment on how to translate a lot of text from one language to another. My suggestion is to maybe use machine learning to bulk translate everything, and then manually go through each one to make any necessary adjustments? Is that a good way to do this? I don’t know, you’ll have to tell me.

I will say that I’ve read through every single page of py5’s reference documentation several times. This was necessary for several reasons. When I did that work I would do a block of pages together, with the full job spread out over many weeks. The task was rather dry but my ability to use py5 grew quite a bit from this because now I know the ins and outs of every single available method. It’s a bit like reading the entire dictionary: not exciting, but you’ll have an amazing vocabulary later.

I don’t think the mechanism to handle stale translations needs to be super complicated. What if it just compared timestamps and listed the filenames that need to be reviewed? Maybe git diff can be used to identify what part of it actually changed? As the mentor for such a project, I would be involved and help out with this part of the work. My concern is that over time stale translations would accumulate which would make it harder for someone make repairs. I wouldn’t want someone to have to read through every single page to re-validate a translation.

Not that I know of, but you can check the Project List, which includes reports from previous years. You’ll want to discuss the accessibility aspects of this project proposal, which in this case is making py5 more accessible to non-english speakers. Demonstrating a good understanding of the work involved and would be a positive sign.

@sableRaph
Is there any proposal format that an individual must follow while applying for GSOC as a contributor to The Processing Foundation?

Hi everyone!

My name is Shi Zhong and I’m CS master student at Northeastern University. I’m excited about the opportunity to contribute to Processing Foundation GSoc program.
I have 2-year working experience with Java, Gradle and Github, and I’ve implemented a OOD Music Editor project with tests from scratch. I’m really interested in Friendlier Error Messages for Processing project and I hope to apply my skills to contributing to it.
My intuition to this project is as follow:

  1. Research the p5.js FES and review the current error message system in Processing and identify areas that need improvement.
  2. Implement the new error message system for Processing, which involves modifying the existing error handling code, providing possible solutions for fixing errors, using user-friendly language, etc.
  3. Test the new error message system to ensure that it works as expected.
    Mr. Sam Pottinger, Could you please let me know if I understand the project correctly and can I ask further questions and clarifications about this project?

Thank you so much!

1 Like

Hi, I’m Ujjwal Garg, 3rd year undergrad from Indian Institute of Information Technology Sonepat.
I would like to contribute to p5.js editor by adding the functionality of making the sketch public/private.

For this functionality, while saving we can provide the user, to save the sketch as public or private also we can give an option to display the sketch to a particular list of users. To change the visibility of the sketch and also edit the number of users to view the sketch a pop up could be there whose UI would be similar to sharing of link in google drive.

We can also add the functionality to provide write option to specific user.
I have gone through the codebase and understood how can we bring this functionality live.

Any suggestions from the mentor Rachel Lim regarding the approach. Also can you direct me to some good first issues.

1 Like

Hello everyone!

My name is Ashish Kushwaha and I’m a 2nd-year undergrad student. I found p5.js during my teens and that’s how I started coding. I had even converted p5.js into its equivalent QBasic/QB64 library (GitHub - AshishKingdom/p5js.bas: P5.js library in qb64).

I’m interested in 3 project ideas -

  1. Web Accessibility on p5js website and documentation
  2. Continued development of p5.js Teach page
  3. Continued development of p5.js Showcase

I’ve been researching the above 3 ideas and have some questions -

  • Is adding new tutorials/learning paths allowed? (for idea 1)
  • How does one reach p5.js educators? Is it done in offline or online mode? (for idea 2)
  • Need to know more about Teaching page working. (for idea 2)
  • Am I allowed to code and submit some of my own art on p5.js showcase? I’ve many done in Qbasic. I would like to convert those into JavaScript using p5.js. (for idea 3)

It would be great for me to work with Processing Community this summer!
Thanks

1 Like

Hello @sableRaph , the link for discord server is invalid. Could you please share the updated one.

@hx2A @sableRaph can I get your views on this.

Oh thanks for the heads up! I have fixed the link. Here it is again:

1 Like

Hi, @wizard ! I’m the wrong person to talk to about p5.js, but your project proposal sounds interesting to me. In your project proposal, I would suggest writing about what you learned from going through the codebase and how you would implement this feature.

1 Like

Thank you for your reply! I will work on formalizing my proposal for the project.

Hi Everyone,
Myself Ashvin, and I’m excitedly looking forward in contributing to opensource for GSoC this summer. I am extremely interested on the Screen Reader for p5js canvas project as I think this could help a lot of people.

I am familiar with programming in HTML, Javascript, Python etc and have done a few odd projects using p5.js. Also have worked on projects using git and github. Primarily my interest is in machine learning and I think this is a great use case for implementing the same in p5js. My proposal includes

  1. An image-captioning model that can be used to describe the contents of the p5js using deep learning architectures such as transformers, visual-attention etc implemented via the tensorflow-js framework
  2. A suite of accessibility functions that can be added to p5js to implement the capabilities of the above AI model.

The possible challenges this project might face are

  1. Construction of a custom dataset specific to p5js components
  2. Quantizing/Reducing the size of the AI model so that it wont bloat the p5.js library.

I’ve also opened the following thread previously( Screen-reader accessible p5.js canvas ) regarding my queries on the project.

Just wanted to check if I have understood the project correctly and looking forward in discussing the project details with my mentor.

@sableRaph @Andres @hx2A could you please go through this and let me know if I’m in the right direction.

Thank you :slight_smile:

1 Like

@hx2A Thank you for your reply! I will work on my proposal for the project. Can I also get the username of Rachel Lim as she is the mentor.

thank you sir .we are really excited to contribute in this project.