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

It will be uploaded on 15th march.

Hello everyone and welcome to the newcomers :sunflower: thanks for you patience!

I’ve updated the top post in the thread to contain:

  1. The proposal template
  2. The individual feedback signup sheet

(You can submit your questions and drafts in any format, template is only required for final submission!)

Please let me know if there are any technical problems or anything I can help clarify!

Thanks to @NishthaJain @skyash @Damaris @harshil for helping with this Q&A, it’s really appreciated. As far as I can tell, no unanswered questions remain but @ me if I missed something.

Wish you all a nice rest of your weekend,
Best,
Kit

5 Likes

It was a pleasure @kit . Now will be preapring my proposal.

Thanks for the update, @kit I will look up to the proposal template really appreciate all the guidance from you and the others here.

Hi @claudine! After researching the project and exploring the visual-testing branch, I found that p5.js already has an HTML visual test report system but Processing4 does not have this yet.

I would like to propose two things for my GSoC project:

  1. Add missing visual regression tests for Processing4 functions like shapes, blend modes, typography, transforms

  2. Implement an HTML test report system for Processing4 — showing expected image, actual image, and diff image when a test fails — so developers can easily understand what changed

Is this a good direction for my GSoC proposal?

Hi everyone!

Thanks @kit for the template, I now have the clearer idea of how to approach writing it .
I have been exploring the Processing repositories and discussions while trying to understand the codebase. Recently I started looking into the eyedropper tool, since while using the website I noticed how useful this feature would be, especially when working with colours from the canvas.
Excited to keep learning from the discussions here and contribute where I can.

Hello @khuntvidisha13 , proposing tests that are not there yet is a solid approach!

You’re right :slight_smile: there is a reporting system for p5.js, that we are planning to integrate into Processing4. It is the intention of the contributor who developed the reporting system to add that to Processing4, so it’s already sort of on the roadmap.

Thank you @claudine! That is really helpful. I will focus on adding missing visual regression tests for Processing4. I will submit my proposal draft for feedback soon!

Hi @kit !
I’m George Ibrahim, I’m planning my proposal for the L5 Project and I have a quick question.
When submitting the Individual Feedback Request Form, is it okay to ask if the feedback could be reviewed by the mentor of the project (since they would be the one mentoring it)? Or should we just submit it normally without specifying? Thanks!

Hi @georgeibrahim ! Great question, thanks for asking as I’m sure others may have a similar thought.

There is no need to specify a mentor on the form.

We (the org admins and mentors) are all coordinating. For any L5-related proposals, the associated mentor (@lee) will review. We are also open to custom proposals, and in this case we will decide on a case by case basis which is the more relevant reviewer.

(Also: Like last year, the final decisions are not made by just 1 person; we also coordinate on the selections and ranking. So during application review, multiple people will review the finalists.)

I got another question in private about when selections are announced. This part of the process is run by GSoC, not by mentor orgs. It works like this:

  1. You submit through the GSoC portal, which opens on March 16th: https://summerofcode.withgoogle.com/. All formal deadlines from GSoC must be strictly followed. Please use the GSoC resources to check precise deadlines and process.
  2. We (Processing Foundation admins and mentors) review, select top projects, and provide a ranking to GSoC. This is not yet announced.
  3. GSoC allocates some slots to each organization. It may be not all the top-ranked projects get selected by GSoC; we also don’t find out until the official announcements.

Best,
-Kit

2 Likes

Thanks a lot for the clarification, @kit!

Thanks a lot everyone, for your questions and answers, it was really insightful.

Thanks for sharing the proposal template @kit

Hi! I’m currently reviewing the E2E testing idea and exploring the editor to define potential user flows. I noticed that downloading a sketch requires the sketch to be saved first, and saving requires authentication. However, the GSoC idea examples mention that an unauthenticated user can download a sketch. Should the download flow instead be considered part of the authenticated user flows? Just wanted to confirm before defining the flows for the proposal.

Hi @divyansh013!

Thank you for the clarification on commit dates, that makes complete sense, i’ll drop the hash-based sync tracking then.

Regarding displaying translation data on the website UI, i think a more feasible approach would be a lightweight GitHub Pages based status page, which will be generated automatically from the manifest JSON files the tracker produces.

This would:

  1. give contributors clear visibility on what needs translation for every language.
  2. avoid touching the main website entirely
  3. make auto-update every time the tracker runs

Would this direction make sense, or do you see any limitations with this approach?

Also noted on the README updates, I’ll make sure my proposal doesn’t overlap with that!

firstly, thankyou for sharing the proposal template @claudine. I have one question, what would be the ideal number of pages for our proposal ??

Thanks for the reply!

After exploring the translation tracker workflow, I had a few ideas that might improve the contributor experience:

  1. Translation Progress Dashboard – A small dashboard showing translation completion across languages and sections of the documentation.

  2. Automatic Stub Generation – When a new English example is added, automatically create placeholder translation files for other languages.

  3. Improved Issue–PR Workflow – Automatically close translation issues when the corresponding PR is merged.

  4. Better Contributor Onboarding – A CLI script or documentation to help new translators set up the environment quickly.

I’m currently exploring the codebase under .github/actions/translation-tracker and testing how the commit comparison works.

Would love to hear your thoughts on which of these directions might be most useful for the project.

Thanks!

Hi @kit,

I recently contributed to the dev-2.0 branch by filing issue 8621 (replacing raw console.log calls with FES across Data, DOM, Events, and Image modules) and PR 8622 for the same.

While auditing the codebase, I noticed there are ~20+ raw console.log calls in the WebGL modules on dev-2.0 that appear to be leftover debug statements leaking to the user console.

These are in:

ShapeBuilder.js — tesselation error/debug callbacks (L441, L446-447)

p5.Shader.js — inspectHooks() dumps shader info to console (L146-166)

p5.RendererGL.js — multiple debug logs (L253, L295, L308, L354, L541)

p5.Camera.js — debug logs (L209, L216)

webgl/text.js — debug logs (L677, L687)

webgl/utils.js — debug logs (L279, L316)

3d_primitives.js — multiple debug logs (L1701, L2246, L2330, L2394, L2435, L2476, L2544)

Would it be appropriate to file an issue to clean these up? Some could be replaced with p5._friendlyError(), and others (pure debug leftovers) could be removed entirely.

One question: p5.Shader.inspectHooks() seems like an intentional debug utility — should that be left as-is, or should it also be updated?

Happy to open an issue and a PR for this if the approach sounds good.

Hi @jatin, good spot! Feel free to add it to the authenticated flows.

The examples written here are examples and not exhaustive. We would want you to define your own flows during the project and to proposed which ones are priority to the web editor experience to secure.

Hey @kit I’ve uploaded my draft proposal to the signup form, when should I expect a response?