Skip to content

2025 pr05 Project List

kit edited this page Apr 23, 2025 · 7 revisions

Note

For more information about this year's program, see the 2025 pr05 Program Page

This year’s theme is "Building Bridges", with a focus on supporting interoperability across the Processing and p5.js ecosystem and beyond. We have curated a list of three projects around that theme. Each project will be mentored by a developer/contributor experienced in this specific area.

Applicants will have to pick one of the following projects.

Desktop Support for p5.js via a New Processing Mode

Help shape the future of creative coding by building a new p5.js mode for the Processing Development Environment (PDE). This project aims to bring full support for writing and running p5.js sketches directly inside the PDE, bridging the gap between web-based and desktop coding.

With this mode, p5.js users would be able to go beyond the browser: saving and loading files locally, accessing system resources, and even creating standalone desktop applications. It opens the door for hybrid workflows that combine the accessibility of p5.js with the power of Processing’s native capabilities.

Your contribution could make it dramatically easier for educators, artists, and creative coders to explore new possibilities with p5.js.

Expected Outcomes

  • Fully functional mode published on the Processing Contribution Manager.

  • Proper editor support (syntax highlighting).

  • Stable cross-platform support on Windows, macOS, and Linux.

  • Integration with Devtools.

  • Basic support for installing npm packages.

  • Exporting sketches as standalone desktop applications.

Optional Outcomes

  • User friendly interface within the PDE for installing and managing npm packages

  • Built-in support for TypeScript

References

Desired Skills

Either: Familiarity with the Javascript Ecosystem (p5.js, npm, electron, node, etc…) OR Familiarity with the Java ecosystem (Processing, Java, Kotlin, Gradle, Maven, etc…). Experience across ecosystems is a big plus.


Incremental TypeScript Migration for the p5.js Editor

This project focuses on initiating the migration of the p5.js editor to TypeScript. The goal is to improve maintainability and the developer experience by enhancing readability, enforcing consistency, and reducing the likelihood of errors. The migration process will involve selecting a portion of the editor, converting it to TypeScript, and ensuring compatibility with the existing codebase. Additionally, updating tests and documentation will be important to onboard future contributors.

Expected Outcomes

  • Identify and migrate a selected portion of the p5.js editor to TypeScript. 

  • Refactor existing code as needed.

  • Update documentation and guidelines.

  • Improve test coverage and ensure accessibility compliance. 

Desired Skills

  • Proficiency in JavaScript. Familiarity with TypeScript is recommended. 

  • Experience with React, HTML, and CSS. 

  • Understanding of web accessibility and fundamental testing principles.


Snapshot Testing for Processing and p5.js

Visual regression tests help catch unintended changes by automatically comparing rendered images before and after changes to the rendering code. Though p5.js recently adopted visual tests (see the p5.js documentation) these tests are specific to p5.js and the testing system is not immediately reusable for Processing.

This project aims to design and implement a modular visual regression testing suite that can support both Processing and p5.js. The system should be reusable, adaptable, and focused specifically on comparing the visual output of code sketches, making it easier for contributors to detect regressions, validate changes, and contribute with confidence.

The testing approach should account for differences across platforms, browsers, and renderer configurations where applicable. The system should also be easy to run both locally and in CI environments, allowing the community to help test across diverse setups.

Expected Outcomes

  • A modular, reusable visual testing framework that supports Processing and p5.js, with the potential for adoption by other creative coding projects

  • A clear structure and workflow for writing, organizing, and running test sketches

  • Ability to run the visual tests locally

  • Ports of relevant p5.js snapshot tests and new ones for Processing Java

  • Automated generation of visual reports with image diffs

  • GitHub Actions integration to run tests on pull requests or releases and provide feedback

  • Documentation and example configurations

Desired Skills

Java, JavaScript, GitHub Actions/Workflows