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

Hi Thanks for the response! I have some thoughts and queries- For the Approachable Accessibility for p5.js Editor Contributors project, do you also need to lay out the pros and cons of any useful tool we can use? to what degree would it be acceptable? To make the question more clearer, what are the level of details that a proposal would need to be great?

For User-friendly Features in p5.js Editor, apart from the autocomplete and context menu what other features are users looking for? is there any sort of poll/research studies that cover this? Just curious.

Also, if I need to get a draft reviewed, how should we get in touch with the mentors?

Thank you!

1 Like

This question has already been answered by @kit. Here’s what they mentioned:

So, once kit shares the instructions, you’ll know exactly how to submit your draft for review. Hope this helps!

2 Likes

Hi @kit,

I hope you are doing well. Sir, it would be really grateful if you could provide answer to my question. Question I want to ask about project Friendly p5.js Reference Translation Tasks:-

1.GitHub Actions for translation automation Should be added directly to the the p5.js reference website repository
or would a separate repository be more suitable for managing translation updates?"

1 Like

Hi @Ruchit, apologies for missing your question in my last Q&A roundup, and thanks for pinging me about it!

It seems like you’re thinking about this in a great way, and definitely GH Actions can be very helpful here. I have a bit more detail below that also might help think about the solutions more in-depth.

GitHub Actions for translation automation Should be added directly to the the p5.js reference website repository
or would a separate repository be more suitable for managing translation updates?"

At the stage of writing the proposal, please present your ideas on how the development process should look like. The GH Actions would likely need to be added to the website repository, but keep in mind that it’s not obvious exactly when they should ring. For example, if documentation in core library changes (in p5.js repo) that should result in some kind of check whether translation is outdated in the website (p5.js-website repo) so there’s a number of different ways to do that kind of verification when the source of truth for some of the website (reference) is actually in another repo.

Keep in mind that right now is the proposal stage, so it is not the time to add any actions to the repository, but you could test out ides about actions in isolated repositories.

  1. Should we provide a web-based interface for translations, or is GitHub’s existing workflow enough?

Great question, there’s actually already some other work on a web-based UI for translation in the website that can be used; what’s really needed in this project is a robust way to understand what needs to be translated and when.

I hope that answers the questions, thanks again for noticing that I accidentally skipped this one!
All the best,
Kit

1 Like

@kit no problem at all, I can understand you are handling lots work in this discussion group and thanks for providing answers to my questions I really appreciate this.

1 Like

Hi, my name is Rosario Lara, and I am currently looking forward to contribute to your project of Bring Visual Tests to Processing, I will be pleased to read and see your feedback into my contribution, and hoping to networking with y’all, here is my Linkedln for any clarification: https://www.linkedin.com/in/rosario-lara-2881aa335/

1 Like

Hey @kit ,
I am currently working on gsoc proposal - “Friendly p5.js Reference Translation Tasks”
Learning more and more about github actions and how it could be help in proving ease for contributor to alter the existing documents to stay up to date as well as adding new languages

the more i get deeper into this i realize it is tricky to maintain it at such level that it helps contributor not automate everything , my question is how much automation is actually good ? , i was thinking about some ideas like -

  1. Let the github actions to compare two files different language using a NLP model and open an issue for respected needed update with proper details and lets contributor handles the rest of the contribution part
  2. Github actions compare files and automatically made modification, after that generates a pull request for same
    although i personally think a lot of thing can go wrong by this way because the reviewing process can be a hassle for different languages

which one would be better ? or am i going in wrong direction

1 Like

@kit Hi,
Thank you for all the responses and I’d really appreciate if you could provide some answers to my questions for the project idea Code Translation between Processing Sound and p5.sound.js.

  1. Are there any existing tools you’d recommend for this project, such as Java/JavaScript parsers or other AST-based conversion tools?
  2. For the interactive webpage, should it include features like real-time audio output?
  3. Would an interactive code editor for conversion (similar to the p5.js web editor) be sufficient, or are there additional web features you’d like to see?

Thank you and I look forward to hearing from you!

1 Like

@kit For GSoC, do all projects have same preference/ranking, or is their any preference lists for projects by Processing Foundation?
and can you please explain how the ranking system for proposals work in GSoC

1 Like

Hi Everyone! :waving_hand:

I’m Yashodip More, a Frontend Developer and Open Source Enthusiast. I recently joined this amazing community and I’m eager to contribute to the p5.js Web Editor, especially in improving accessibility features.

:small_blue_diamond: Background:

  • Passionate about web development & UI/UX
  • Experience with JavaScript, ARIA roles, and accessibility testing
  • Love solving real-world problems through code

:small_blue_diamond: My Goal:
I’m particularly interested in working on Approachable Accessibility for p5.js Editor as part of GSoC. My focus will be on improving ARIA support, making accessibility testing easier, and enhancing UX for screen reader users.

:small_blue_diamond:Looking Forward To:

  • Learning from experienced contributors
  • Fixing existing accessibility issues
  • Developing a mini-project to explore accessibility solutions
  • Collaborating with mentors & fellow developers

I’d love any guidance on where to start, what resources to check, and how I can make meaningful contributions. Excited to be here! :rocket:

Looking forward to connecting with you all! :smiley:

Best,
Yashodip More

1 Like

@kit And do we assume that people(either artists or teachers) who are using the p5.js, they know what to write in the code section(sketch.js) for the p5.js web editor?
(Btw i am working on proposal for the Idea:1, Friendly Sketch Embedder for p5.js)

1 Like

Hi All , I’m interested in contributing to “Friendly Sketch Embedder for p5.js” for GSoC 2025. I’ve started exploring p5.js but need some guidance on understanding the project and how to get started. Could you help me with the best way to proceed?

1 Like

Hey @kit, I have a question about my approach for the embedder project.
Would you be open to a quick DM? Thanks!

Hello everyone,
I wanted to share a small example I made while exploring the global vs instance mode topic in p5.js.
In global mode, sketches overwrite each other when multiple ones are on the same page. I created a basic demonstration to show this problem clearly:
:backhand_index_pointing_right: p5.jsGlobalModeIssue/README.md at main · TejasNangru/p5.jsGlobalModeIssue · GitHub
Let me know what you think!

And anyone please tell me why my replies are like limited to three right now on this topic? I am not able to post new reply, I have to edit the old ones

1 Like

Hi @kit, I hope you are doing well Thank you for the detailed explanation! I have understood the information you provided. It makes sense that the GitHub Actions would likely be added directly to the p5.js website repository but determining the exact trigger points is key, especially since the reference content originates from the core library (p5.js repo).

To better understand this workflow and test potential ideas for GitHub Actions, I am experimenting using two isolated repositories. One repository will act as the “core library” (like the p5.js repo), and the second will represent the “website” (like the p5.js-website repo). This will allow me to simulate scenarios where changes in the core library need to prompt checks or updates in the website repository. checkout the isolated repositories and correct me if I am doing something wrong

1 Like

Hi @kit,

I hope you’re doing well! I wanted to ask for some clarification regarding the potential workflows for automating the translation process using GitHub Actions. Specifically, I am trying to understand which approach would be more aligned with the project’s goals:

  1. Creating Issues and Automating Related Workflows:
  • Automate tasks like PR validation, tracking translation progress, adding new languages, synchronization and update alerts, and notifying contributors whenever changes are detected in the English files.
  1. Automating Translations Directly:
  • Integrate a translation API (e.g., Azure Translator, Google Translate, or OpenAI’s GPT models) to automatically translate updated or new English content into other languages.
  • Use GitHub Actions (like AI Translator Action or Azure Co-op Translator) to handle translations, commit changes, create pull requests for review, track and sync updates across languages, and manage the entire workflow more comprehensively.

I’m happy to explore both options, but I’d appreciate your guidance on which of these approaches would make more sense to prioritize at this stage. Additionally, if there are specific considerations or preferences regarding the balance between automation and manual oversight, I’d love to know so I can refine my proposal accordingly.

1 Like

@kit
I’m deeply interested in contributing to ‘Bringing Visual Testing to Processing.’ Since p5.js already has a snapshot-based visual testing system, what do you think are the biggest challenges in porting this approach to Processing’s Java environment? Would you recommend using OpenCV for image comparison, or do you see a better alternative?

1 Like

Hey @kit ,I am L ISHWAR , a second year student pursuing Computer Science, this is my first time participating in GSoC ,I’m interested in contributing to “Friendly Sketch Embedder for p5.js” for GSoC 2025. I’ve explored p5.js web-editor and could able create a pr for 1 issue , most of the issues are already assigned could you help me with the best way to contribute

1 Like

Hi @kit @claudine ,

I am Aman, a second-year Computer Science student at NSUT, Delhi. I am proficient in Java, JavaScript, Python, GitHub, and SQL. I have explored the official documentation of p5.js and worked on several small projects, which has strengthened my understanding of the library. This is my first time contributing to open source, and I am thrilled to join the p5.js community.

I have carefully gone through the GitHub repository and successfully set up the project. I truly admire the work you and the team have done. I am particularly interested in contributing to the “Bring Visual Tests to Processing” idea and would love to collaborate on implementing it. Looking forward to your guidance and feedback as I begin my journey with open-source contributions :slight_smile:

1 Like

Hello again! Hope everyone is having a nice week so far. Thanks for these amazing questions, and the contributions on the repos we’ve been seeing!

Welcome @rosario_lara @MayankVerma @myun @yashodipmore @ISHWAR and @amanbihari!

If anyone is having issues with making multiple replies, please check out this guide on “trust levels” on Discourse.

:blossom: Proposal Structure

@devsaw asks:

do you also need to lay out the pros and cons of any useful tool we can use? to what degree would it be acceptable? To make the question more clearer, what are the level of details that a proposal would need to be great?

Excellent question. Overall, a proposal probably should be 3-6 pages. You should justify the use of particular tools, but it’s not just technical considerations. For example, if you’re more familiar with tool X, that is also a pro (because it makes your timeline more realistic); or if tool Y is very technically robust but is really hard to use and understand, that is a con (because it could make your work harder to share and maintain with the wider community).

Please do not include AI-generate pro/con lists, these are often very generic and don’t contain important considerations. Decisions on what tools to use and how to move forward are the heart of technical work, so we’re interested in hearing how you would approach it. Any structure is fine, whatever helps you present your idea best.

@TejasNangru asks: “For GSoC, do all projects have same preference/ranking, or is their any preference lists for projects by Processing Foundation? and can you please explain how the ranking system for proposals work in GSoC”

If I understood the question correctly: All project ideas have the potential for technical and community impact. You can pick any of the ideas that appeals, that does not affect your likelihood of selection.

  • March 24 - April 8: Register on the site and submit proposals for projects. After this, proposals will be reviewed by mentors.
  • May 8: Selected projects and participants are announced, and mentorship begins!

Right now is the time to explore and to develop proposals. After proposals are submitted, some will be accepted, and then work can begin. So for now, please feel free to try things out and explore (and keep asking questions!), but please do not work on the projects directly .

:blossom: Friendly Sketch Embedder for p5.js

@TejasNangru asks: “do we assume that people(either artists or teachers) who are using the p5.js, they know what to write in the code section(sketch.js) for the p5.js web editor?”

For this project, you can assume that the audience for the embedder is people in the community who already use or teach using p5.js, so they may not know all the p5.js features or details, but you can assume they do have sketches that they want to embed somewhere!

You also found the challenge with global vs instance mode: this is one of the barriers that the friendly embedder could solve! In your example, you have multiple sketches, so instance mode, not global mode should be used.

@deepikareddy asks: “I’ve started exploring p5.js but need some guidance on understanding the project and how to get started. Could you help me with the best way to proceed?”

Welcome! In the case of the friendly sketch embedder project, using the p5.js Editor to make some sketches and then trying to embed them using existing tools/methods would be a good way to get familiar with various tools. Use the p5.js reference to explore different functionalities, and also use Examples and Tutorials on the websites to make more complex sketches to see how they work, and if some are more difficult to embed than others.

@ISHWAR asks “I’ve explored p5.js web-editor and could able create a pr for 1 issue , most of the issues are already assigned could you help me with the best way to contribute”

If you are finding it difficult to find good first issues relevant to your project proposal, keep in mind that contributions may be either on GitHub or outside ! both Processing4 and p5.js adopt the all-contributors specification, which means that a contributor is someone who works in any of these areas: Emoji Key :sparkles: (and Contribution Types) So if you cannot find an issue that is available and helps you write a proposal, you can also think about another form of contribution, like a blog post, tutorial, series of examples, bug reports of accessibility issues, etc!

Making lots of PRs might not actually be as helpful to your proposal as taking the time to research and develop a strong technical concept and execution plan. We strongly encourage folks to dedicate lots of time researching the project areas, reflecting on the existing issues, and crafting their proposals.

:blossom: Question about project idea: User-friendly Features in p5.js Editor

@devsaw asks:

apart from the autocomplete and context menu what other features are users looking for? is there any sort of poll/research studies that cover this? Just curious.

Great question, there’s research on the editor but there’s a lot of research on “programming languages for education” and in software engineering tool research that could definitely be informative. Proposals are welcome to integrate a little bit of time to do desk research on existing prototypes or studies, or to do user research, as long as it doesn’t make the project very difficult to finish on time.

:blossom: Question about project idea: Friendly p5.js Reference Translation Tasks

@MayankVerna asks: “how much automation is actually good?”

Your comments about the challenges of this project idea are very correct; we are expecting this to be a medium/hard project and to require 175H, so it’s definitely not a small one.

You ask about two approaches, one with GH Actions making issues showing where translations is needed, and one making PRs with automated translations. The preference in this project is for the first one: only using automation to improve contribution experience, but not replace manual translation. Sounds like you’re thinking about it in a very good way, because indeed an NLP model would be good to find when a translation is needed.

Here’s a scenario: if documentation in core library changes (in p5.js repo) that should result in some kind of check whether translation is outdated in the website (p5.js-website repo) so there’s a number of different ways to do that kind of verification when the source of truth for some of the website (reference) is actually in another repo.

The way that @Ruchit is simulating this workflow with isolated repositories seems great! And as I mentioned above, indeed the “Creating Issues and Automating Related Workflows” approach is more inline with the intent, not automating the translation directly.

The reason to not replace manual translation is that fully automated translation can be worse in lower-resource (less data) languages or language pairs, and can lack nuance, even though it is already very good and getting better. More importantly, generated and auto-translated text can be more wordy and less precise than a manual translation. Right now, a fully automated translation is already available in Chrome, so if you can also experiment with using automated translation of technical documentation to check out where it works well and where it struggles.

Lastly and most importantly, translation can be a wonderful way for total beginners with Open Source to get involved and learn GitHub and all the different Open Source tools - and to share their language with the community. Right now, you can see the website has only a few translations, and many people who would be happy to translate into their own languages as a community project! The aim of these automations is to support community access.

:blossom: Question about project idea: Code Translation between Processing Sound and p5.sound.js

Welcome @myun, apologies I missed your question the first time you asked!! It’s great to see someone with both a technical and a musical background thinking about this one.

  1. Are there any existing tools you’d recommend for this project, such as Java/JavaScript parsers or other AST-based conversion tools?

It might be helpful (keep in mind it’s outdated, so maybe not) to check out this older existing project that generally translates processing to p5.js: website and code You’re welcome to suggest a tool, or build in time to research transpiler tools into the timeline.

  1. For the interactive webpage, should it include features like real-time audio output?

That may be really helpful, though I’m not sure if you mean something different than being able to play a p5.js sketch in the browser?

  1. Would an interactive code editor for conversion (similar to the p5.js web editor) be sufficient, or are there additional web features you’d like to see?

I think that’s up to you, and what you think is possible within 175H. I think it’s possible to make that project be entirely about code translation, or you could do some really interesting editor interactions. Especially because p5.sound.js and Processing Sound do not have 100% matching capabilities, the big question here is how to handle those gaps? Do you fill them technically using clever translations or do you guide the user to find workarounds or a combination?

  1. I noticed from previous responses that this project focuses on how to translate code between different environments and devices. Could you be more specific about this?

This is more about the motivation and impact of the project. Processing Java runs in different environments than p5.js, so being able to easily translate in both directions makes it possible to support more devices.

:blossom: Question about project idea: Bringing Visual Tests to Processing

@Sushant_Bansal asks:

Since p5.js already has a snapshot-based visual testing system, what do you think are the biggest challenges in porting this approach to Processing’s Java environment? Would you recommend using OpenCV for image comparison, or do you see a better alternative?

The p5.js snapshot comparison uses direct comparison pixel by pixel, which does have some limitations (text can look different/fuzzy on different browsers) but if you see opportunities for OpenCV, you’re welcome to make that case! Keep in mind that it would add a dependency, more complexity, and probably slower test time, but maybe it helps with more complex integration tests? This is something that would be great to explore in your proposal.

Something I wrote previously that might be helpful, also to @amanbihari:

Ultimately, the purpose of tests is to make it more comfortable for contributors to add new features or make performance improvements without accidentally breaking anything unexpected. So if your proposal suggests which areas are most important to cover, and explains why you think that (from reading old issues or any other approach!), that would be an excellent evidence-based prioritization of the project.

This and other notes on this idea - summarizing this long thread - can be found on the PF GSoC wiki FAQ page!

I’ll start responding more frequently as more contributors voice interest! Please keep in mind that in the spirit of fairness and openness, only public Q&A is possible, but tune in on March 24th for instructions to get a round of individual feedback.

All the best,
Kit

2 Likes