GSoC/GCI Archive
Google Summer of Code 2013


Web Page:

Mailing List:

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work. Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production.


  • "TweakMode" - a new mode for the Processing IDE My proposal is to develop a mode in the Processing IDE that will automate the creation of real-time controllers over numerical constants in a sketch. The controllers will be presented to the user when he runs the sketch and will enable him to change numerical values in real-time while the sketch is running.
  • A Graphical User Interface Library for Processing The goal of this project is to create a functional prototype for a new Graphical User Interface Library for Processing. There is no core GUI system built into Processing as of date but some third-party GUI solutions exist. This project attempts to learn from and build on the existing libraries while keeping in mind the design principles that lie at the heart of Processing: Minimalism, accessibility and extensibility. Ultimately the aim is to spark discussion on what a core GUI library for Processing might encompass.
  • Experimental Mode Plus This projects aims to further improve the PDE as a modern code editor and implement more advanced features – intelligent code completion, basic refactoring, interactive help and a few other features to improve the overall editor experience.
  • Serial library revamping (64-bit etc) & Creation of a test suite The Serial library in Processing needs to be revamped in order to get ready for the 2.0 release. I plan to add support for 64-bit architectures, fix long outstanding issues and test it across all supported platforms. Additionally, I propose to create validation tests, that would also allow to assess latency and throughput in real-life situations. Additional ideas are listed below.