Google Summer of Code 2019 Wrap-up Post

Processing Foundation
Processing Foundation
10 min readOct 11, 2019

This summer was the Processing Foundation’s eighth year participating in Google Summer of Code, where we worked with students on open-source projects that ranged from software development to community outreach. Several of our students wrote articles, discussing their projects in their own words, which you can read here. Below are short descriptions of every 2019 GSoC student’s work, as well as links for more information. We’re so proud of all the accomplishments of this year’s cohort!

The logos for Google Summer of Code and Processing Foundation are side by side. The GSoC logo is a yellow octagonal sun.
Rachel wearing a pink scarf and winter jacket.

Rachel Lim

Search Bar for Sketches in the p5.js Web Editor

mentored by Cassie Tarakajian

This project provided more convenience for organizing and retrieving sketches within an individual account through a search bar and a collections tab. Inspired by my classmates (and myself!), who love to keep the playful titles but have extreme difficulty finding anything because we’re unwilling to change them.

Click here for Rachel’s article on her project

Click here for Work Product Report

Click here for Github

Sanket wears a yellow t-shirt and stands next to a mural of a UFO and a sign that says “Technex: Towards Sustainability.”

Sanket Singh

Advancing p5.js’s WebGL mode

mentored by Adam Ferriss

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 and thus is more performant than regular canvas, so it is also used for 2D games. This project aims to implement some new functionalities for p5.js using WebGL, to expand the current functionality related to lighting, to introduce younger artists to the fabulous world of Computer Graphics.

Click here for Sanket Singh’s article about his project

Click here for Work Product Report

Click the links below for Github:

Headshot of Jiwon under a yellow light. She has black hair and is wearing a denim jacket.

Jiwon Shin

Updating and Improving p5.Serial

mentored by Shawn Van Every

Originally developed by Shawn Van Every, p5.serial is a commonly used library to connect serial devices to p5.js sketches. Despite its wide use, it has not been actively maintained since 2017. Jiwon updated and made improvements to the functionality of the p5.serial library. p5.serialport is now capable of connecting multiple microcontrollers over multiple web clients and p5.serialcontrol desktop application was re-designed and updated to match the newly developed functionalities.

Click here for Jiwon Shin’s article about her project

Click here for Work Product Report

Click the links below for Github:

  • p5.serialport — A p5.js library that enables communication between your p5 sketch and Arduino (or another serial enabled device).
  • p5.serialcontrol — GUI (Electron) application for use with p5.serialport
  • API Documentation Website — API documentation for p5.serialport
Ashneel wearing a blue t-shirt with an iguana on it.

Ashneel Das

Visualizing STEM education with Dynamic Learning

mentored by Nick McIntyre

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 Learning is a platform in which teachers and programmers can collaborate with one another to create visualizations of common STEM topics. My project will improve this application by focusing on three major areas of extension: interface changes and responsiveness, integration with other software, and classroom usability improvements. I will also add a few miscellaneous improvements towards the end of the project.

Click here for Ashneel’s article about his project

Click here for Work Product Report

Click the links below for Github:

e407a11

  • Finished making short response questions usable in workbooks.

c7f6e84

  • Multiple bug fixes in the workbook area, including multiple choice components being replicated throughout slides.
  • Allowing for students to submit answers from workbooks.

cf66230

  • Create the basic outline and structure of MCQs and SR questions in the workbook area.

9b6c881

  • Created an about page for students, teachers, and developers.

2941433

  • Responsiveness in the lesson plan area.

642a328

  • Responsiveness for numerous components of the app, including sidebar, lesson area, and dashboard.

1ae750d

  • Responsiveness for iframes (videos and simulations).

86f2a97

  • Upvoting and downvoting in the lesson area (as well as a working model of commenting).

623e912

  • Teachers/request creators can now view the info of the people who want to join the request.

d36a53e

  • Implemented GitHub authentication for developers and Google authentication for students/teachers.

19b198e

  • Created a structured classroom environment.

7ff4e81

  • Create profile pages with differentiation between teachers and students.
Alexandra is wearing a white sweater and checked scarf. She stands in a crosswalk in the sun.
Alexandra Cheng
Oscar takes a selfie, while standing on a sidewalk. He wears a blue shirt and has glasses.
Oskar Garcia

Alexandra Cheng & Oskar Garcia

Math in Motion

mentored by Greg Benedis-Grab and Ellen Nickles

Math in Motion (MiM) is a modern interface for working with math on the web. It has a short learning curve and makes it easier to input, edit, and display math on the screen. Since it’s built with core web technologies, it can be used by anyone with a browser.

MiM allows you to work with math just like you would with pencil and paper. It has useful features like syntax highlighting, text and math notation modes, and copy/paste functionality. MiM makes it easier to show your work and edit it on the fly.

Our goal is to make math more accessible, scalable, and interactive.

Click here for Work Product Report

Click here for Github

A young woman with black hair looks to the right, smiling. She is wearing an umber blouse, against a white background.

Jenna Xu

Code Slang

mentored by Sharon De La Cruz

I would love to help develop a javascript library that is flexible, intuitive and human; whose syntax resembles natural language more than programming language; that transforms programming into a fun conversation with the computer rather than a rigid set of logical commands.

Click here for Github

Arihant stands in front of a mural painted with the colors pink, yellow, white, and black. He is wearing a white t-shirt and looking directly at the camera.

Arihant Parsoya

Completing p5.py API and improving documentation

mentored by Sam Lavigne and Abhik Pal

The aim of this project was to make p5.py ready for public use by completing the APIs to make it on par with Processing and p5.js. Examples and tutorials for the modules were added to make it more accessible to the Python community. Apart from adding new APIs, I also fixed the existing issues in p5.py and added test suit to the library, which will help in keeping the library stable as it grows in the future.

Click here for Work Product Report

Click for Github link 1 and link 2

Ashley Kang

Curating Community Creativity for p5.js 1.0

mentored by Kate Hollenbach

For my Google Summer of Code 2019 project, I worked with my mentor Kate Hollenbach to curate six projects from the online and offline p5.js community and to create a place for them on p5js.org. This involved creating new /showcase and /showcase/featuring pages to highlight creative and inclusive ways people have been engaging with p5.js, including but not limited to: making art and design, learning and teaching computation, improving and translating documentation, ensuring accessibility, integrating other libraries and devices, and contributing to open source. We also established an open nomination process for people to submit or nominate work to be featured, especially for educators and students throughout the school year.

Click here for Work Product Report

Click here for Github

A young man stands in the middle of the street and smiles at the camera. He wears a white shirt and jeans.

Deeraj Esvar R

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

mentored by Sarah Lensing and Cristian Mosquera

I proposed to work on the following:

  • Implement an up-to-date SDK and Emulator installer.
  • Enhance the SDK Updater by adding options like individual package update and solving existing issues, like fixing the progress bar .
  • Test and find solutions to existing issues with the Android Emulator across platforms and add new features the Emulator Creator.
  • Improve the project structure of Core Libraries and Library Template, and work on / look into the conversion of Libraries to kotlin.
  • For any android based application, the SDK Installer/Updater/Emulator play an important role in maintaining packages and essentially rendering the output of the app. For any open source project it is essential to keep the project developer oriented and hence, re-structuring the library and library template on android standards is important.

Click here for Deeraj’s article about his project

Click here for Github

Carlos sitting in a chair wearing a backwards pink baseball hat and glasses.

Carlos L05 Garcia

p5.touchgui

mentored by Yining Shi

p5.touchgui is intended to extend p5.js and make it easy to add buttons, sliders, and other GUI (graphical user interface) objects to p5.js sketches, enabling users to focus on quickly iterating ideas with easily created GUI objects that work with both mouse and multi-touch input.

Click here for Work Product Report

Click here for Github

Syam is wearing glasses, a light blue shirt, and standing in front of a building. He is smiling.

Syam Sundar K

Processing Language Server

mentored by Manindra K Moharana

Processing Language Server focuses on creating a Language Server Protocol (LSP) implementation for Processing Programming Language. PDE is currently built using Java and using custom components of Swing Framework. The longterm goal of Processing is to replace this with a JS-based IDE to bring in more contributors and to make building UIs simple. While planning on building such IDE, LSP is of significant importance for any language because the IDE relies on it. Since Processing is the targeted Programming language, it’s quite important to build an LSP for the same. This shall act as a benchmark for all the crucial activities of the IDE such as auto-completion, go-to-definition, hover-insights, and so on. LSP will also help in easy and seamless integration of the above functionalities in any editor such as Atom, VScode, etc.

Click here for Work Product Report

Click here for Github

A young man in a dark gray suit and blue shirt sits in a large purple throne-like chair.

Vedhant Agarwal

Stabilizing and Improving p5.xr during Alpha Release

mentored by Stalgia Grigg

p5.xr is a library for p5.js that enables WebXR capabilities with p5 sketches. The goal of the library is to allow p5.js sketches to become multi-platform AR or VR projects with little added code. The capabilities of p5 will be greatly extended by this library, and, since it is in pre-alpha stage, it requires constant stabilization and testing while implementing new features.

Click the links below for work product reports

Click here for Github

Alex Stamm

Stabilizing Processing Video with GStreamer 1.x

mentored by Andres Colubri

The goal of this project was to stabilize the Processing Video Library to v2.0, which is based on the GStreamer media framework. The aim here was to handle library-side back-end code so that users using the Processing Development Environment (PDE) can simply run their Processing editor for high-quality video playback, depending on user specifications. The tasks included upgrading the video framework, upgrading to a native buffer playback, improve capture support, tackling notable bugs, and providing documentation to better use the library. The goal is to handle the back-end framework seamlessly so that users can focus on easy video playback for their own projects.

Click here for Work Product Report

Click here for Github

A head shot of Oren in front of a brick wall. He has short black hair and a beard and is wearing a pink t-shirt.

Oren Shoham

Using Audio Workley in the p5.Sound library

mentored by Jason Sigal

For my GSoC 2019 project, I worked with my mentor Jason Sigal to add AudioWorklet support to p5.js-sound, allowing certain parts of the library to run more efficiently by moving custom audio processing to a separate audio thread. I also helped Jason integrate Webpack and Babel into the p5.js-sound Grunt build pipeline, allowing the library’s developers to use ES6 JavaScript features and laying the groundwork for modernizing the codebase and examples.

Click here for Work Product Report

Click the links below for Github

--

--

Processing Foundation
Processing Foundation

The Processing Foundation promotes software learning within the arts, artistic learning within technology, and celebrates diversity within these fields.