Back to Programs

Programming languages

Processing Foundation

To empower all people to learn to program

androidgraphicsjavajavascriptmobileopenglpythongithub actionstypescriptwebgl

Participation history

9 GSoC years

2026

6 projects

Official year page

Continued Development of Translation Tracker

This project is an extension of the Translation Tracker from the GSoC 2025 to support community translation of the p5.js reference documentation. I'm...

E2E testing for the p5.js web editor

The p5.js Web Editor has no end-to-end tests. As the team works through a TypeScript migration and backend refactor, regressions in core user flows...

Enabling Full Multi-Material and Texture Support for .mtl Files in p5.js

Currently, p5.js has a frustrating limitation for 3D artists: it flattens every imported model into a single shape that can only hold one texture. If...

Friendly gamified learning app for p5.js

An offline-first gamified learning mobile app for p5.js that teaches users how to use the library’s symbols (functions, constants, classes, etc.)...

Improvements on L5 Documentation and Starter Flow

This project will focus on L5: expanding on existing L5 tutorials, documentation, and building integrations with existing editors so that creatives...

Native SVG Import/Export for p5.js via p5.Shape System (custom Project)

This project aims to add native SVG import and export capabilities to p5.js through enhancements to the p5.Shape system. Currently, p5.js only...

2025

3 projects

Official year page

Friendly p5.js Reference Translation Tasks

This project will build friendly automation tooling to support community translation of the p5.js reference documentation (including p5.js core and...

Context-Aware Autocomplete and Refactoring Enhancements for the p5.js Web Editor

Currently, the autocomplete feature in the p5.js Web Editor is facilitated by CodeMirror and a custom-built static hinter (as given in the structured...

Friendly Sketch Embedder for p5.js

Embedding p5.js sketches on different platforms can be tricky because some sites block scripts, remove iframes, or require a specific format. This...

2023

8 projects

Official year page

Improving p5.js WebGL/3d functionality.

In p5.js, there are two render modes: P2D (default renderer) and WEBGL. It enables the user to draw in 3D. There are many ways to implement...

Friendly Error System(FES) and Documentation

I propose to work on the following for enhancement of Friendly Error System : 1. Decoupling the Friendly Error System to a standalone package 2....

Mobile/Responsive Design Implementation of p5.js Web Editor.

This project focuses on the mobile responsive views implementation of the web editor. The p5 community has over a million sketches and the p5 web...

Adding AR Image Markers and Migrating VR Library

This project aims at migrating the current VR library to Cardboard SDK from Google VR(deprecated since 2019) and adding Image Marker functionality to...

Support Shader-Based Filters in p5.js

What’s the need for shader-based filters? Image filters in p5.js are too slow with their current pixel-by-pixel loop implementation. It frustrates...

Updating p5js.org Site Documentation and Accessibility

This project aims to improve the accessibility of the p5js.org site by conducting an accessibility audit to gauge the current deficits of the...

A Typographic Revamp for p5.js 🌸

This project aims to improve the P5.js library by fixing the issue flag on GitHub, adding new features, developing new examples for typography...

Friendlier Error Messages for Processing

This proposal entails revamping the existing Processing error message system so that it resembles the P5.js Friendly Error System (FES). The problem...

2022

8 projects

Official year page

p5 Examples Code Improvement

The project aims to work on a set of examples that introduces both programming constructs alongside concepts of art & design. My hope is that by...

Improving p5.js WebGL Functionality

WebGL, being the OpenGL variant for Web, is the most popular graphics library which makes use of GPU for efficient and fast drawing of graphics. This...

GSoC'22 Processing Proposal (Teach Page)

【Idea of update the Teach Page】 1.Re-organize media from the teachers, code and video a)re-organize the resources with more detailed tags b) renew...

Saving GIF files

In this proposal, my main goal is to add functionality to the p5.js library to be able to save GIF files quickly and easily. GIF file saving is...

Beginner-friendly ML Library for Processing

This project aims to develop a new beginner-friendly Machine Learning Library for Processing by (1) using the diverse model pool supported by Deep...

BONDS: Improving the p5.js Showcase’s Accessibility to Expand Community Support For New Coders

Expanding on Katie Chan's 2021 p5.js Showcase theme of The Love Ethic, the driving force of this project will be the theme of BONDS, but more...

p5.xr Enter VR button, controller functionality, interface primitives, and basic locomotion

In this proposal, I outline the addition of key features to p5.xr, in order to expand the VR capabilities of p5.js. This includes an improved Enter...

Resolving Bugs and Expanding Documentation for WebGL in p5.js

My proposal is to resolve a number of outstanding bugs with WebGL functionality in p5.js, as well as expand on the documentation and tests for that...

2021

11 projects

Official year page

Improving the p5.xr Library Through Artistic Examples

My goal is to create a series of examples using the p5.xr library that show people how to work with creative coding concepts inside of virtual space....

p5.js 2021 Showcase: The Love Ethic

“p5.js 2021 Showcase: The Love Ethic” is a proposal for the continued development of the p5.js showcase, but with a particular focus on the softness...

Adding to p5.js Friendly Error System

This project aims to extend the existing functionality("fesErrorMonitor") of the p5.js Friendly Error system and add a new feature that will allow...

Korean Translations and Website Improvements

Updating and adding to Korean translations, as well as restructuring the Learn and Examples sections of the p5 website. Adding features such as a...

Internationalization(i18n) and Deployment of P5.js Website

The p5.js website has all the features but it lacked Translation features. In this project, I have added the new translation feature to the P5.js...

Create p5 Music examples - interactive and generative

Create example functions for interacting with sound on p5.js and also examples for creating visuals as feedback to sound. These could be further...

Add Examples and Fix Bugs in Swift Processing

This proposal fulfills the need for continued development of the Swift Processing code base. This means that bugs would be fixed and more...

Addon Library Development - p5.teach.js

This project would involve developing tools for teaching STEM through p5.js, adding functions to animate shapes, and animating math symbols. The main...

Improve Test Coverage in p5.Sound library

Testing is vital for quality coding. It not only makes the code more consistent but also ensures that any addition of new code won’t break the...

Adding Alt Text

I would like to help improve the web accessibility of p5js.org through adding alt text to visual elements on the p5.js website.

Activism Through Storytelling with Code

I will be creating a web-based Artist Activist Handbook that will act like a utility and a possible guideline for other artists, activists, and...

2020

11 projects

Official year page

p5 for 50+ teaching

Reaching out to 50 and more p5 educators around the world, “p5 for 50+ teaching” aims to contribute in documenting, showcasing, and sharing teaching...

Swift Processing Library Development

I propose to work on the open issues and also bring the Camera functionality and 3D primitives to Swift Processing.

Extending p5.js Friendly Error System

The Friendly Error System in p5.js helps beginners with common errors, transforming error messages into a simpler form and checking for common...

p5.js accessibility and canvas descriptions

This project aims to continue the p5.js accessibility efforts by merging the text output and table output functionalities of the accessibility add-on...

P5 Web Editor Spanish Translation

I propose to improve and expand the Spanish translation of the p5.js web editor and documentation,(with a strong focus on the Latin American...

Use ES6 Import and Classes in p5.Sound library

This project aims to upgrade the codebase to use es6 features and change the current module format( AMD) and loaders(requierJS) to modern es6...

Italian translation and i18n improvements

My project aims at making the internationalisation process of the p5.js website easier and more accessible to contributors, while also simplifying...

Support for Kotlin Native

Add support of Kotlin/Native in processing-android. Migration of Java based processing's android mode to Kotlin. Spilt Android specific logic from...

Improved Web Editor Mobile UI

The Web Editor is at the core of the p5 community. With over a million saved sketches, it is a great tool for creators and an attraction for many...

Increasing Organization and Scope of the p5.js Showcase

My proposed project is to develop the p5.js showcase to allow users to filter through the projects by the libraries or functions that are used within...

Improving p5py

This project aims to improve the p5py API and implement new features. Specifically, the base goals are: Standardize p5py API so it's as close as...

2019

16 projects

Official year page

Stabilizing and improving p5.xr during Alpha release

p5.xr is a library p5.js that enables WebXR capabilities with p5 sketches. The goal of the library is to allow p5.js sketches to become multiplatform...

Improving WebGL functionality of p5.js

WebGL is a web version on OpenGL, i.e a 3D engine. It allows you to make 3D materials in the browser, using JavaScript. It is rendered using the GPU...

Using Audio Worklet in the p5.Sound library

Audio Worklet, an extension to the Web Audio API currently available in Google Chrome, allows developers to write their own AudioWorkletNodes that...

P5 Math in Motion

P5 Math In Motion would be a library that renders interactive math notation inside p5.js projects with the help of Katex, an open-source library for...

Curating Community Creativity for p5.js 1.0

This project involves showcasing people and their work for http://p5js.org/ on the occasion of the upcoming 1.0 release to celebrate the power of...

p5.touchgui

p5.js is a wonderfully accessible way for students and creative minds to both learn computer programming and create interactive art and experiences....

P5 Math in Motion

P5 Math In Motion would be a library that renders interactive math notation inside p5.js projects with the help of Katex, an open-source library for...

p5.serial library update

This project proposes to update the p5.serial library, created by Shawn Van Every and contributed by Jen Kagan and Tom Igoe. The last commit date of...

Improve p5.js unit tests

This project will focus on improving the unit tests as well as creating a more complete unit test coverage for p5.js. This project would also include...

Processing Language Server : Processing

Processing Language Server focuses on creating a Language Server Protocol (LSP) implementation for Processing Programming Language. PDE is currently...

Stabilize Processing Video with GStreamer 1.x

Stabilizing the Processing video library by repackaging GStreamer 1.x for a leaner video release and addressing some additional clean-up to reach a...

Searching and Grouping Sketches

Provide more convenience for organizing and retrieving sketches within an individual account through a search bar and a collections tab.

Completing P5.py API and Improving Documentation

The aim of this project is to make P5.py ready for public use by completing the APIs to make it on par with Processing and P5.js. Examples and...

Maintenance of Android mode: SDK downloader/updater, emulator, library structure

Implement an up-to-date SDK and Emulator installer, and hence improve its functionalities Implement and solve all issues on the Android SDK Updater....

Code Slang

Code Slang is a javascript library that is flexible, intuitive and human; whose syntax resembles natural language more than programming language;...

Extending and Improving Dynamic Learning

This project will improve and extend Dynamic Learning, a project created by Jithin KS as part of his 2018 Google Summer of Code project. Dynamic...

2018

16 projects

Official year page

P5.js WebGL Updates

This project would build upon P5.js’ webGL functionality with a focus on helping the beginning coder understand how the computer represents and...

APDE Beta Push

APDE (Android Processing Development Environment) is a fully-functional IDE for creating Processing sketches on Android devices, but it is in need of...

Hello, is it me you’re looking for? updating hello.p5js.org

The goal of this project is to modernize the hello.p5js.org website through the development and implementation of a new trailer featuring diverse...

GLSL Editor for PDE

The goal of the project is to implement a GLSL editor for the Processing Development Environment as a contributed tool. This tool will enable users...

API extensions and fixes for the p5 backend

Last year, as a project under the Google Summer of Code, I created p5 --- a native Python implementation of the Processing API. The goal then was...

Improving p5.js WebGL/3D mode

The project aims to implement missing primitives in p5.js WebGL mode.

p5.js : Improvements for I/O methods

p5.js has multiple methods for I/O handling. I propose to work on Improving the file I/O methods by identifying, documenting and finding solutions...

Complete overhaul of processing-sound library

The official Processing Sound library is a natural entry point for Processing users who want to augment their generative designs with generative...

Android Debugger for PDE

This proposal aims to build a Java or JavaScript (Electron) based android debugger for PDE. The debugger architecture will follow Java Platform Debug...

Dynamic Learning

Collaborative platform of teachers and programmers to improve teaching of STEM subjects with the use of interactive simulations and animations....

A Platform for Algorithmic Composition on p5.js-sound

p5.js, and Processing in general, have been revolutionary tools in the world of creative coding. For visual artists, there are few programmatic tools...

Processing for ARM devices (such as Raspberry Pi)

A set of highly detailed project-based tutorials that teach users how to use Raspberry Pi and similar devices with Processing development environment.

Test strategy for maintaining and updating mobile functionality of p5.js

This project proposes to design a test strategy to extensively test and update the p5.js mobile functionality so that compatibility issues can be...

New JavaScript console in p5.js web editor

p5.js web editor is an environment to write p5.js sketches with no need for downloading or installing any dependencies. With the purpose of making...

ARCore Renderer : Processing - Android

ARcore Renderer focuses on creating an Augmented Reality Renderer for Processing - Android, that will be able to render 3D Objects onto the Real...

Development Environment: Beginner/New User Experience Features

Processing is a programming language and an IDE for digital arts and visualization for the purpose of teaching non-programmers, the fundamentals of...

2017

14 projects

Official year page

Easier Debugging and Development in the p5 Web Editor

This project aims to improve debugging and development in the p5 web editor by implementing autocomplete code suggestions and improving the existing...

p5.js Web Editor: Public Release and Online Community Building

There is an ongoing effort to create a browser-based editor for p5.js. I propose to help the current developers working to create a stable version of...

Image Processing Library to ease differentiation of colors for Color Blind People

My proposal is to build a processing library to process images and ease differentiation of colors for color blind people. Color blind people cannot...

Processing for Android: Cardboard Mode Demo

“Cardboard Mode Demo” is a Virtual Reality application aimed at demonstrating the possibilities of Cardboard Mode in Processing.

Web GL improvements for p5.js

Add web GL support for texture (u, v) coordinate mapping, add support for additional camera features, and fix bugs in the web GL renderer.

p5: Bringing the Processing API to Python

p5 is a Python package based on the core ideas of Processing. It aims to make programming more accessible for beginners, artists, and educators by...

Redesign Friendly Debugger for p5.js

I propose to redesign p5.js’s friendly debugger module to improve user-experience -- in particular, to make it more inviting and helpful for both...

i18n for Processing and p5.js

Work on expanding the community in other languages related to Processing software. In particular, work on both the Processing and p5.js i18n...

Processing.R

Offer a new mode in Processing for R Language. Refer to github.com/gaocegege/Processing.R for more details.

p5.js addon and examples for spatial and data mapping.

This proposal describes a project to build a set of p5.js tools around mapping with the specific purpose of being able to quickly and smoothly add a...

Improvement to WebGL core for p5.js

I would like to work on stabilizing the WebGL core for p5.js. This would be done with an eye towards accessibility. Also, I would investigate the...

p5.js.Sound Enhancements - Abstract Classes, Sound Design, and Composition

Processing and p5.js are accessible tools that can be easy to understand for the novice programmer and powerful enough for the experienced. With the...

Build system migration from Ant to Gradle

Currently, Processing for Android uses ANT scripts and android tool for building the project. The latest version of the Android SDK tools removes...

Implementing New Developer Operations and Enhancing Current Ones in p5.js

This Project aims to address and pursue DevOps Issues of p5.js (#522, #94, #707), along with implementing an Issue Template for contributors....