Nov 01, 2014

Google Summer of Code 2014

2014 marked The Processing Foundation’s fourth year participating in Google Summer of Code. Following is a summary of the eleven projects, in alphabetical order by project name, completed this summer by a terrific group of students.

1) Android Mode for Processing 3.0 by Imil Ziyaztdinov, mentored by Andres Colubri

The new android mode in Processing 3.0 implements several pieces of functionality that were missing from earlier versions: Export Signed Package (with transparent handling of keystores), device selector, automatic SDK download/installation, and target SDK selector. It also fixed some critical bugs, most notably the missing javac error during package building.

2) Contributions Manager: Reloaded by Joel Moniz, mentored by Florian Jenett

The Contributions Manager enables easy and convenient installation, removal and update of contributions (Libraries, Tools and Modes) from within the PDE. This summer saw the introduction of a few new features to the Contributions Manager, such as the addition, removal and update of Tools and Modes without a restart, a new “examples-package”-type contribution, and highlighting contributions. For an in-depth view of changes and how they were undertaken, please refer this webpage.(Source code)

3) Loom by Chris Johnson-Roberson, mentored by R. Luke DuBois.

Loom lets you create and manipulate patterns of timed events. These patterns can be mapped to audiovisual output, transformed in various ways, and recorded to enable non-realtime synthesis and synchronized video. (Source code.)

4) New video library using GStreamer 1.x by Roland Elek, co-mentored by Levente Farkas and Andres Colubri

The aim of this project was to create a set of Java bindings for the GStreamer 1.x series, automatically generating everything where applicable, and then updating the video library in Processing to use these new bindings. We were able to solve the most challenging problem - the automatic generation of Java code directly from the GObject Introspection data - using a library called CodeModel, and BridJ as the native interoperability library. In addition to this, we modified the current Java bindings in order to run the video library with the latest stable release of the gstreamer toolkit (1.4.0), which confirms that the new gstreamer binaries (released for Windows and Mac OSX plarforms by the gstreamer organization itself) can be succesfully loaded from Processing. At the time of conclusion of GSOC the new bindings were still not ready to use as the basis of the new video library, however we are very confident that we will achieve the final goal within the next two months.

5) ofSketch by Brannon Dorsey, mentored by Christopher Baker.

ofSketch is a barebones browser-based IDE for openFrameworks. Targeted towards new users, ofSketch decreases the openFrameworks barrier to entry by providing a “plug and play” development environment that allows users to spend more time coding and less time with configuration. In addition to its simplicity, ofSketch supports powerful extended functionality like API specific autocomplete, compilation feedback, error reporting, project export, remote coding capabilities, and Raspberry Pi support to fit the needs of intermediate coders.

6) p5.sound by Jason Sigal, mentored by Evelyn Eastmond, is an addon for p5.js.

p5.sound brings the Processing approach to Web Audio. Its functionality includes audio input, playback, manipulation, effects, recording, analysis, and synthesis with syntax built off of Wilm Thoben’s Sound for Processing library. The project is on GitHub, with interactive documentation and learning examples on This summer, Jason also wrote methods for file input / output and ported Processing’s Table / TableRow classes to p5.

7) p5 IDE by Sam Lavigne, mentored by Lauren McCarthy.

An easy to use desktop IDE for creating p5.js projects.

8) PDE X for Processing 3.0 by Manindra Moharana, mentored by Daniel Shiffman

PDE X is a Processing mode that introduces advanced IDE features like code completion, refactoring, live error checking, debugger and more. The goal of the project was to bring PDE X to a stable state and make it the default editor for Processing 3.0. The main focus was on fixing the last remaining bugs and tweaking/refining what was already present. A few new features were also introduced. Please see Manindra’s post for more details on what was accomplished. (Source code)

9) POculus by Pratik Sharma, mentored by Elie Zananiri.

POculus POculus provides an Oculus renderer for Processing. Any P3D sketch can be made Oculus ready by using the POculus renderer. (Source Code).

10) Sound for Processing 3.0 by Wilm Thoben, mentored by Casey Reas

Sound is the new core lightweight sound library for Processing. The project started in late 2013 and in GSoC 2014 new features, bug fixes and cross platform support was introduced. Sound is using a customized and enhanced version of methcla, a C++ sound engine. The native bindings allow for low latency support which is a new feature. Sound is a collection of sound-synthesis objects, analyzers and effects.

11) TweakMode for Processing 3.0 by Gal Sasson, mentored by Daniel Shiffman

Tweak is a new execution mode in Processing 3.0 that allows changing sketch parameters in real-time. TweakMode was created last year in GSoC 2013 as a separate mode, and was brought into Processing 3.0 this summer, with some modifications and fixes. (Source code)