-
Notifications
You must be signed in to change notification settings - Fork 0
Project Ideas List (GSoC 2024)
We want to let you all know that the Processing Foundation will not be participating in Google Summer of Code (GSoC) 2024. However, we strongly encourage you to consider other GSoC 2024 opportunities. Participating in GSoC can be a valuable way to gain experience, contribute to meaningful projects, and connect with the wider open-source community.
While the Processing Foundation will not be a part of GSoC this year, our project ideas list remains a valuable resource for those looking to contribute to our software projects. We invite you to review this page for ways to engage with our work. Please don't hesitate to connect with us through our GitHub repositories.
Thank you for your support and dedication to the Processing Foundation and its mission.
— The Processing Foundation Team
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, Processing for Android, processing.py (and other Python implementations, p5py and py5), and/or Processing for ARM.
In addition to this list, we track specific bugs and enhancements via github issues:
- Processing / Processing documentation
- p5.js / p5.js documentation, p5.js web editor
- Processing for Android
- processing.py / processing.py documentation
In particular, you might take a look through all of the issues tagged "enhancement" or "help wanted" in the Processing4, and p5.js repos.
p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, beginners, and reinterprets this for today's web. Using the original metaphor of a software sketchbook, p5.js has a full set of drawing functionality. However, you’re not limited to your drawing canvas, you can think of your whole browser page as your sketch! p5.js has addon libraries that make it easy to interact with other HTML5 objects, including text, input, video, webcam, and sound. p5.js is a new interpretation of Processing, not an emulation or port, and it is in active development.
When proposing p5.js projects, please read through our access statement and be sure to include in your proposal an explanation of how your project will expand access. There are a number of open issues on GitHub. Any of these could be packaged together as a GSoC proposal for a project. We recommend selecting several issues that are in one area of the project.
You can use the GSoC proposal template from Berkman Klein Center as reference.
We highly recommend selecting several open issues tagged with "Area:Core
" and packaging them together as a GSoC proposal, eg. Issue #3156: Confusion between .elt and .canvas.
-
Expected Outcomes: Improvement of p5.js
Area:Core
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
We highly recommend selecting several open issues tagged with "Area:Image
" and packaging them together as a GSoC proposal, eg. Issue #4535: Capture starts with wrong dimensions + get() on demand pauses it.
-
Expected Outcomes: Improvement of p5.js
Area:Image
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
We highly recommend selecting several open issues tagged with "Area:Typography
" and packaging them together as a GSoC proposal, eg. Issue #3354: Support 'justified' alignment as an option for textAlign.
-
Expected Outcomes: Improvement of p5.js
Area:Typography
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
We highly recommend selecting several open issues tagged with "Area:Events
" and packaging them together as a GSoC proposal, eg. Issue #4223: Mouse/touch event handling bug.
-
Expected Outcomes: Improvement of p5.js
Area:Events
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
We highly recommend selecting several open issues tagged with "Area:Color
" and packaging them together as a GSoC proposal, eg. Issue #5654: Issue with color blending when there is alpha involved.
-
Expected Outcomes: Improvement of p5.js
Area:Color
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
We highly recommend selecting several open issues tagged with "Friendly Errors
" and packaging them together as a GSoC proposal, eg. Issue #5646: httpGet does not show FES message
-
Expected Outcomes: Improvement of p5.js
Friendly Error
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate, advanced
We highly recommend selecting several open issues tagged with "Area:WebGL
" and packaging them together as a GSoC proposal, eg. Issue #5156: large webGL canvases draw at unpredictable locations
-
Expected Outcomes: Improvement of p5.js
Area:WebGL
code and documentation - Skills Required: JavaScript, familiarity with Github or version control
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate, advanced
The editor currently has several translations and translation-related issues, which can be found within the 'Translations' tag in the repository. A new translation could potentially be added, but we're hoping to have some feedback on translations that have been submitted already, or suggestions on how they can be maintained.
- Expected Outcomes: Reviewing current translations that have been submitted for the p5.js Editor. One translation could potentially be added.
- Skills Required: JavaScript, HTML, Github
- Possible Mentors: Rachel Lim, Linda Paiste
- Difficulty: Beginner
The editor supports the usage of images, videos, and other assets. There are a few open tickets to improve this workflow:
- p5.js-web-editor#375 - upload files by dragging them anywhere in the editor
- p5.js-web-editor#673 - upload a folder of assets
- p5.js-web-editor#387 - upload files by entering a url
- bugfixes, including p5.js-web-editor#377, p5.js-web-editor#403, p5.js-web-editor#496, p5.js-web-editor#645
- Expected Outcomes: Improved asset uploading workflow
- Skills Required: JavaScript, HTML, React, CSS, Github
- Possible Mentors: TBD
- Difficulty: Intermediate
We have a few issues related to improving the mobile experience of the p5.js editor. A complete list of them can be found under the 'Mobile' tagin the repository.
- Expected Outcomes: Improved functionality of web editor on tablets and phones
- Skills Required: Javascript, HTML, React, Github
- Possible Mentors: Shuju Lin, Linda Paiste, Dewansh Thakur
- Difficulty: Intermediate
Some steps that would need to be completed here would look like:
- Reviewing current state of application for keyboard users
- Color contrast review (there are some open issues)
- Addressing select open accessibility-related issues, which can be found within the 'Accessibility' tag within the repository.
- Possible Mentors: Rachel Lim
- Difficulty: Intermediate
Currently the framework exists for adding tests, using Enzyme and Jest. This is a great project as it would make contributing to the web editor easier, and is self-contained and modular, which makes it easy for a variety of skill levels to work on it.
- Expected Outcomes: Testing files added to web editor repository
- Skills Required: JavaScript, HTML, CSS, Github
- Possible Mentors: Linda Paiste
- Difficulty: Intermediate
Details are TBD.
- Expected Outcomes: Implementing the updated designs for the 'About' Modal.
- Skills Required: UX/UI Design, Javascript, HTML, React, Github
- Possible Mentors: TBD
- Difficulty: Intermediate, Advanced
Details are TBD.
- Expected Outcomes: User Permissions Added to Sketches.
- Skills Required: JavaScript, HTML, React, Github
- Possible Mentors: TBD
- Difficulty: Advanced
Processing is a flexible software sketchbook and a language for learning how to code. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology. There are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning and prototyping.
Processing has a extensive community of users, with 250,000 unique users every month and up to 30,000 people using Processing every day, yet our contribution team is comparatively tiny! This is to say, by joining the Google Summer of Code program and contributing to Processing, you can make a huge difference in the experience of thousands of users, many of whom are exploring programming for the first time.
For more information on how to contribute to the Processing project, read our Contribution guidelines.
Problem description: It can be time-consuming and confusing for users to manually copy and paste each tab of an example into the PDE and ensure that all required assets (e.g., images, fonts) are present. We want visitors to the website to be able to run the examples in the Processing Development Environment (PDE) simply by clicking an "Open in Processing" link.
**Solution:**Since Processing (4.2), it is possible to link to .pdex
and .pdez
files to run sketches and install libraries immediately in the PDE. The examples and reference sections of the processing.org website will need to be updated to take advantage of this feature. In addition to changes to the website itself, this will involve creating a GitHub automation to generate the .pdez
files for the examples.
- Skills Required: Knowledge of GitHub workflows and React. Familiarity with Java/Processing is a plus.
- Possible Mentors: TBD
- Expected Size of Project: 175 hours
- Difficulty: Intermediate
See the following issues: https://github.com/processing/processing-website/issues/446 https://github.com/processing/processing-website/issues/445
This project aims to improve the library contribution workflow for Processing by automating the deployment of documentation and making it more accessible for contributors. The new library contribution process will be based on the Gradle-based library template contributed by Andres Colubri.
- Expected Outcomes: Upon completion of the project, the library contribution process will be streamlined and modernized, with automated deployment of library documentation to GitHub Pages and a more accessible process for submitting libraries for review. The library contribution documentation should be updated to reflect those changes, including a migration guide to help library creators move from the old Ant-based template.
- Skills Required: Knowledge of GitHub Workflows, and GitHub Pages. Familiarity with JavaDoc and Gradle are a plus.
- Possible Mentors: TBD
- Expected Size of Project: 175 hours
- Difficulty: Intermediate
- A mode to code GLSL shaders in the PDE was created by Izza Tariq but it hasn't been updated to work with Processing4.
-
Expected Outcomes:
- A Pull Request or github repository with library code, examples, and documentation.
- Packaging and release of library via the Processing contributions manager
- Skills Required: Java Development
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate
Many Android developers have moved to the Kotlin language since Google actively started promoting Kotlin as an alternative to Java. A GSoC project adapted the Android mode to support Kotlin, and released it as its own separate mode. Finding ways to continue supporting this mode or even integrating it back into the Android mode could help bring Android developers who prefer Kotlin into Processing.
-
Expected Outcomes:
- A pull request to the Processing for Android repository with code, examples, and documentation.
- Skills Required: Java/Kotlin Development
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate or advanced
The Android SDK includes an API to support input from game controllers, either bluetooth connected like the 8BitDo Zero 2 or built-in such as those found in Android handhelds like the Anbernic RG353V or Retroid Pocket 3+. It would be convenient to expose this API through a new library for the Android mode that uses Processing conventions for input events.
-
Expected Outcomes:
- A GitHub repository with code, examples, and documentation.
- Skills Required: Java/Kotlin Development
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate or advanced
Work has been done at various points in time to seamlessly support video and sound in the Android mode: Processing-video-android library by Mohammad Umair Cassette library (sound) Android port of Processing’s sound library (branch in official’s processing-android repo) However, none of these projects have been updated recently, so it would be very important if some effort could be put into creating some supported and up-to-date set of libraries for video and sound.
-
Expected Outcomes:
- A GitHub repository with code, examples, and documentation.
- Skills Required: Java/Kotlin Development
- Possible Mentors: TBD
- Expected Size of Project: Either 175 or 350 hours
- Difficulty: intermediate or advanced
The Processing for Android website is available at this moment in Spanish and English, so translations into other languages are needed. The Android mode's UI is in English, but recent work has been made recently to put all the message strings in a separate language file to facilitate translation of the UI into other languages.
Currently, the website includes a number introductory tutorials on a range of topics (installation, sensors, VR), but we need new tutorials bridging the gap from simple applications to more advanced topics.