Skip to content

2024 Project List for `pr05` = Processing Foundation Software Development Grant

Raphaël de Courville edited this page Jun 27, 2024 · 21 revisions

Please familiarize yourself with the projects below, and select a project that aligns with your skills and interests before applying. Your chosen project will be the focus of your work within the program.

The topic of this year’s program is “New Beginnings”, focusing on supporting projects that will enhance and solidify the Processing and p5.js ecosystem and help lay strong foundations for their future.

For any questions, consult our see our README and Frequently Asked Questions pages.

Project List

🅿️ Simplify the Workflow for Processing Libraries, Tools, and Modes

Description: This project aims to improve the developer experience for libraries, tools, and mode contributors. The current system for submitting contributions and updating the contributions list is cumbersome and error-prone. Your work will automate the process and improve the quality of life for other developers, making Processing contributions more inviting to new contributors.

Expected Outcomes:

  • An improved system for submitting new contributions via a PR template.
  • A simplified workflow for updating the contributions list in Processing and on the processing.org website.
  • Repository templates for libraries using the new Gradle templates.
  • Automation for building and exporting artifacts, including PDEX/PDEZ bundles.
  • CI/CD deployment of the reference to GitHub pages including install links using the new pdez:// and pdex:// protocols.
  • Updates to the library contribution documentation to reflect these changes.
  • Optional: a backend system for keeping track of library downloads within Processing.

Desired Skills:

  • Familiarity with Java, JavaDoc, Gradle.
  • Experience with GitHub Workflows and GitHub Pages.
  • Experience with JavaScript, HTML, CSS.
  • UI/UX design skills are a plus.

🅿️ Create an Official Processing VSCode Extension

Description: This project will focus on developing an official Visual Studio Code (VSCode) extension for Processing. Building on the initial Language Server Protocol (LSP) integration in releases 4.1 and 4.3 of Processing. The development of this VSCode extension serves to complement the Processing Development Environment (PDE), providing a more feature-rich alternative thanks to the built-in capabilities of VSCode.

Expected Outcomes:

  • Successful development and launch of a fully functional VSCode extension for Processing.
  • Run and Stop buttons integrated within the VSCode environment.
  • IntelliSense, including code completion and documentation on hover.
  • Display of syntax errors in real time.
  • Sketchbook explorer to manage and navigate sketches.
  • Examples explorer to access built-in examples.
  • Feature for managing libraries, tools, and modes.
  • Functionality to easily import libraries into projects.

Desired Skills:

  • Familiarity with JavaScript and TypeScript.
  • Understanding of the Language Server Protocol (LSP).
  • Experience with Processing and Java.
  • Familiarity with ANTLR is a plus.
  • Experience with Visual Studio Code extension development is a plus.

Prior Work and Recommended Reading:

🅿️ Prototype a Collaborative Desktop Editor for Processing

Edited May 13th to add Recommended Reading section.

Description: Develop an evolutionary prototype of a desktop editor for Processing that supports collaborative editing, aimed at teaching and facilitating creative coding, focusing on simplicity and accessibility for beginners. This project requires development from the ground up, presenting a unique opportunity for a developer to contribute to a tool that could significantly influence how programming is taught in creative and educational contexts.

Expected Outcomes:

  • Create a basic Electron application that can load, edit, and run Processing (Java) sketches.
  • Integrate collaborative editing functionalities using CodeMirror.
  • Develop a simple user interface for starting new sketches, creating/joining sessions, and viewing changes in real time.
  • Implement a presence feature to render remote selection ranges and cursors and shared undo/redo.

Desired Skills:

  • Proficiency in Java, JavaScript, HTML, and CSS.
  • Familiarity with Electron and Node.js frameworks.
  • Knowledge of Processing.
  • Experience with UI/UX design.
  • Basic testing and debugging skills.
  • Prior experience with CodeMirror is a plus.

Prior Work and Recommended Reading:

🌸 Revamp the Friendly Error System (FES) for p5.js 2.0

Description: The p5.js Friendly Error System (FES) enhances the development and debugging experience in p5.js with simplified error messages. With the upcoming p5.js 2.0 release, significant updates are required to align FES with the new system architecture. This project presents an opportunity for applicants to make a meaningful impact on a critical component of p5.js, which is particularly beneficial for new coders and enhances the experience for millions of users.

For a more detailed description of the project click here.

Expected Outcomes:

  • Revamp FES and merge the code into the p5.js 2.0 GitHub branch.
  • Develop a new detection method for accidentally overridden p5.js functions and constants.
  • Update how FES checks parameters to functions.
  • Research into potential additional features/enhancements for FES and optional implementation depending on feasibility:
    • Simplify implementation throughout the codebase and use of FES by addon libraries.
    • Catch errors that do not originate from p5.js itself and provide friendly errors.
    • Expand and complete the internationalization feature (through error message translations) of FES.

Prior Work and Recommended Reading:

Desired Skills:

  • Strong experience with JavaScript, p5.js, and GitHub Workflows.

🌸 Upgrade CodeMirror to Version 6 for the p5.js Editor

Description: Upgrade the CodeMirror component in the p5.js Editor from Version 5 to Version 6, implementing many enhanced features for accessibility, mobile support, internationalization, and other editor features. This may require refactoring related components.

Expected Outcomes:

  • Refactor the Editor Component from a Class to Functional Component.
  • Upgrade CodeMirror from Version 5 to Version 6, testing with emphasis on its accessibility features.

Desired Skills:

  • JavaScript, HTML, React, CSS, Github, basic understanding of testing for web accessibility.

Prior Work and Recommended Reading:

Wildcard Project Proposals

If you have a unique project idea that aligns with the objectives of the pr05 program, you're also invited to submit a proposal. While we will prioritize the projects already listed above, exceptional wildcard proposals that clearly demonstrate alignment with our goals are welcome. However, be aware that there is no guarantee a wildcard proposal will be selected for this year’s cohort, as our focus remains on the existing project list.

Your proposal should be comprehensive, addressing the rationale behind your project, how it strengthens the foundations of the Processing and p5.js ecosystems, technical requirements and any anticipated challenges. This will help the selection committee to effectively evaluate the proposal's feasibility and potential impact compared to the existing project list.

Wildcard Proposal Requirements:

  • Relevance: Demonstrate how your project will strengthen the foundations of Processing and/or p5.js
  • Expected Outcomes: Outline the specific results you aim to achieve by the program’s end.
  • Implementation Plan: Provide a detailed approach for how you intend to execute the project.
  • Alignment: Explain how your project aligns with the broader goals of the Processing Foundation.
  • Skills: Specify the skills necessary for the project, and why you are the right person to take this on.
  • Mentor Suggestion: Optionally, suggest a potential mentor who could guide your project.

Make sure your wildcard proposal is complete and satisfies the requirements above. Incomplete proposals will not be reviewed.