Skip to content

Project Ideas List (GSoC 2025)

kit edited this page May 7, 2025 · 21 revisions

About the Processing Foundation

Our mission at the Processing Foundation is to promote software learning within the arts, artistic learning within technology-related fields, and to celebrate the diverse communities that make these fields vibrant, liberatory, and innovative. Our goal is to support people of all backgrounds in learning how to program and make creative work with code, especially those who might not otherwise have access to tools and resources. We also believe that some of the most radical futures and innovative technologies are being built by communities that have been pushed to the margins by dominant tech.

To learn more about the Processing Foundation, see our official website at processingfoundation.org.

What makes a good proposal?

For all of our projects, it's incredibly important that things are kept as simple and user-friendly as possible. We aim to make our work accessible to everyone, especially those new to coding. Therefore, we focus on making everyday tasks easier for as many people as possible more than on adding features for experts. Keep these values in mind when writing your proposal and you'll greatly increase your chances to get selected by the Processing Foundation for the GSoC program.

For more information about GSoC and instructions on how to apply, please see our 📄README.

🌸 Have questions about the organization or the projects? Check out the GSoC 2025 Discourse thread! 🌸

🌼 We're keeping the Frequently Asked Questions (FAQs) resource up-to-date with questions people have been asking, so if the thread is a bit too much to read through, start with the FAQs! 🌼

Project ideas

This section contains a list of ideas and how you can help contribute to the Processing Foundation's work on Processing, p5.js, and p5.js Editor. Each project has both a potential technical outcome, and a significant possible community impact - we are excited to hear your creative approaches to any of these timely technical challenges!

Friendly Sketch Embedder for p5.js

Create a user-friendly tool that guides a p5.js user of any level to help showcase their work in their own websites. Anyone can make a sketch with p5.js - as interactive art, as teaching material, as data visualization, as game, as diary, and as anything else they can imagine! A p5.js sketch is a canvas element that can be included in any website, and existing tutorials help to do this. How can embedding a sketch be streamlined, and support all the different kinds of use-cases and customizations? For example, a teacher may want to include code snippets; an artist may want to arrange multiple sketches next to one another.

  • Expected outcomes: A possible technical outcome could be a standalone interactive webpage with user-friendly settings that helps visitors to generate sketch embed code depending on their needs. The community impact can be very wide, making it easier for users to take their work beyond a classroom or a tutorial and into their own interactive online space.
  • Skills: Some familiarity of JavaScript is needed, but this could be a good project to sharpen your skills!
  • Possible mentor: Dora Do
  • Size and Rating: 90H, Easy/Medium

User-Friendly Features in the p5.js Editor

The p5.js Editor has thousands of users, and 15% of them use the current autocomplete feature - try it out by turning it on in the settings! How can this feature be improved or expanded to make writing code in the p5.js Editor even friendlier? For a longer/larger project, you can propose a custom context menu for the p5.js Editor: when a user right-clicks, what would be helpful for them to able to see and do? Alternatively, we welcome proposals that focus on improving the accessibility of the autocomplete hinter, such as for screenreader users.

  • Expected outcomes: A possible technical outcome could be a pull request or a release in the p5.js-web-editor project that updates the autocomplete widget, or adds a custom context menu widget. The community impact will be among those who use the p5.js Editor, which gets around 200,000 views weekly!
  • Skills: Some experience with JavaScript required. Familiarity with digital accessibility (a11y); TypeScript; and/or documentation.js/JSDoc can be a plus.
  • Possible mentor: Diya Solanki
  • Size and Rating: 90H-175H, Medium

Approachable Accessibility for p5.js Editor Contributors

Accessibility is very important for the p5.js Editor, but contributors sometimes face challenges testing and implementing accessibility feature. This project starts with ARIA-roles to the File Manager, Project List View, or User Account Settings. Based on the challenges encountered by the contributor, they can explore ways to make accessibility testing more approachable for future contributors by creating a proof-of-concept tool in the following areas: seamless integration of manual testing, increasing understanding of UX for screen reader users, or strategies for ARIA internationalization. We have found that automated accessibility testing tools alone are not thorough enough, but accessibility testing (both manual and automated) is needed for every feature addition.

  • Expected outcomes: A possible technical outcome could be pull request(s) in the p5.js-web-editor repository that implements editor accessibility improvements. This project idea focuses on improving developer tooling, so the community impact extends to both users of the p5.js Editor, and to its contributors.
  • Skills: Some familiarity of JavaScript is needed, but this could be a good project to sharpen your skills!
  • Possible Mentor: Tristan Espinoza
  • Size and Rating: 90H, Easy/Medium

Bring Visual Tests to Processing

This project aims to implement a visual snapshot testing system for Processing, inspired by the one used in p5.js (read about it in the p5.js documentation or in a recent contributor blogpost). Snapshot tests help catch visual regressions by automatically comparing generated images before and after code changes. The project will focus on building the testing framework, automating comparisons using pixel matching, and integrating the system into GitHub workflows for optional testing on pull requests. This project also involves porting existing p5.js snapshot tests and developing new ones for Processing’s Java environment. This will improve test coverage, help catch regressions, and make it easier for contributors to propose changes with confidence.

  • Expected Outcomes: The technical outcome would be an automated snapshot testing system for Processing with pixel comparisons, GitHub integration, baseline snapshots, and documentation. This project idea focuses on improving developer tooling, so the community impact extends to both users of Processing, and to its current and future contributors!
  • Possible Mentors: Claudine Chen
  • Skills required/preferred: Java, JavaScript, GitHub Actions/Workflows
  • Size and Rating: 175H, Medium

Code Translation between Processing Sound and p5.sound.js

Both p5.js and Processing support sound synthesis, playback, and analysis, but only p5.js does it directly in the web browser with p5.sound.js. An automated tool converting Processing Sound to p5.sound.js and vice versa would benefit both communities: Processing Sound users could more easily share work on the web, and p5.sound.js users could more easily adapt their sketches to a wide variety of devices. A code translation tool could also serve as a proof of concept for broader Processing–p5.js translation, which would improve sharing and collaboration across platforms beyond sound.

  • Expected Outcomes: A possible technical outcome could be a standalone interactive webpage with user-friendly settings that helps convert Processing Sound sketches into p5.sound.js sketches, and vice versa. This project idea focuses on improving developer tooling, so the community impact extends to both users of Processing Sound and p5.sound.js, and to current and future contributors!
  • Possible Mentors: Kevin Stadler
  • Skills: experience with both Java and JavaScript essential; optionally: some familiarity with p5.sound.js, Processing Sound, or Web Audio technologies can be a plus
  • Size and Rating: 175H, Medium/Hard

Friendly p5.js Reference Translation Tasks

The p5.js website provides the most up-to-date reference for p5.js and p5.sound.js in five languages. The reference is automatically generated from inline documentation in the code, and translations are provided by contributors. How can friendlier developer tools - such as GitHub automations - could help contributors work on translating documentation? The p5.js reference strives to be user-friendly, welcoming, and accurate, so it is important that translation itself is not automated. Making it easier to contribute a translation helps invite more users of p5.js around the world to get involved in contributing to p5.js!

  • Expected Outcomes: The technical outcome would be GitHub Action(s) in the p5.js reference website repository. This project idea focuses on improving developer tooling, so the community impact extends to p5.js contributors and users worldwide!
  • Skills/tech: JavaScript, Astro, Github Actions/Workflows; optional: JSDoc, documentation.js
  • Possible mentor: Stalgia Grigg
  • Size and Rating: 175H, Medium/Hard