-
Notifications
You must be signed in to change notification settings - Fork 2
Project Ideas List (GSoC 2025)
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.
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 shiny new 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.
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!
Create a user-friendly tool that guides a https://github.com/processing/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
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 example, the behavior of the current hinter can be improved, by providing help not only during typing, but also when hovering over parts of the code. For a longer/larger project, you can instead propose a custom context menu for the p5.js Editor: when a user right-clicks, what would be helpful for them 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
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 then 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. The 200k weekly views of the p5.js Editor include different browsers, tablets and mobile devices, and come from different world regions!
- Expected outcomes: A possible technical outcome could be one or more pull requests 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
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
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 more friendly 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 one or more GitHub Actions 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