Announcing GSOC 2014, Paid Internships for Students

I'm pleased to announce that for the fourth year Processing has been selected as a mentoring organization for Google Summer of Code. If you would like to apply to be a mentor or a student, please take a look through our List of Project Ideas and Github Issues (also Github Issues Web / Examples / Reference).

Before submitting your application, please post your thoughts and ideas to this forum category. We look forward to discussing them with you!

Student Application Opens: March 10 at 19:00 UTC Submit your application here.

The strict deadline is March 21.



  • edited March 2014


    I'm Utkarsh, a Computer Science undergrad student from BITS, Pilani, India. I really want to contribute to Processing and take part in GSoC 2014, and have good amount of Java experience. I apologize for the late post, my mid term exams just ended and my schedule is much flexible now, hope I can still join in. I have cloned the github repo of processing, and built the src using ANT. Currently going through the source code.

    Could anyone give quick pointers as to what I should do in a short span since the the student application process starts today, and I just arrived on the forum. :/ I have seen the github enhancements page too, and will try to contribute something there at the earliest. :)

    Finally, Processing is something I have had my eyes on since last year. It is a very exciting project, and the ease of use is amazing compared to the high quality end results we get. Would be amazing to be a part of its development.

    Thanks, Utkarsh

  • Hello Utkarsh, thanks so much for your interest in contributing to the Processing project through GSoC!

    As a first pointer, I'd recommend defining the specific area you are most interested in. As you probably saw already, the project list page mentions many possible directions of work (p5.js, libraries, opengl, android, bugs), and within each you could make several specific proposals. You are also welcome to propose ideas that are not included in the project list. So go ahead and let us know what you would like to work on!

  • Please note, the application deadline is 21 March! We can't accept late applications.

  • So excited about discovering this opportunity! My chances for getting involved are better for next year though... hope processing is still on the mentor list then

  • Hello everyone,

    I had a doubt regarding proposals. Is there a specific format in which we have to submit a proposal? If so, where may I find it? If not, do we make the proposal based on the samples given on the GSOC Student Guide page, whose link was given in the Project List page?

    Also, once I'm done with a proposal, would it be possible for the community help me review it? Add new features as part of the proposal, ensure that the timeline is neither over-ambitious nor too relaxed, etc.? How would I go about this?

    Thank you,

  • Hello,

    my name is Nicușor Chiciuc (Nicu), I'm an undergraduate student from Republic of Moldova. I like algorithms (participated in national and international programming Olympiads during high-school) and I like generative art. Some of my projects are posted on my page:

    When I found out that Processing will be a mentoring organization in GSoC this year I got really excited since Processing was the first platform on which I started to experiment with generative art and such things. I got even more excited when I found out about p5.js since it basically combines two things that I really, really like: javascript and generative art.

    I already fixed some issues on github, regarding mouse coordinates in Firefox and implemented randomSeed function.

    I would like to contribute to the p5.js project by implementing an GUI interface in canvas. This is a problem that I had during my projects, I used dat.gui.js library. The problem was that it used html elements. I find it really interesting to implement something similar in canvas. p5.js offers this opportunity, that's why I already started checking and contributing to the code base. Also, as I know, during the last year GSoC, Martin Leopold implemented such a library for the Java Processing. I could do something like porting the code to js. This would make the transition from java to js for simple user more simple and straightforward. After that I could develop it further.

    I would like to write more about my plans and about implementation details but I'm not sure if this forum is the place where I should do so or if I should write somewhere else or if I should adapt another format. Any feedback would be gladly appreciated.

    sincerely, Nicușor Chiciuc

  • @joel_moniz thanks for your interest! Yes, please follow the GSOC student guidelines for writing a proposal. It's helpful if you include links and information about past work with Processing (or equivalent if you have not worked with Processing before). In order to be considered you must submit your proposal through the GSOC melange site, however, you may also post your proposal to a new thread in this forum category for feedback. We look forward to reading your proposal!

  • @nicu_chiciuc please start a new thread in this forum category to discuss your proposal ideas for p5.js and GUI. Since p5.js is a JavaScript framework for working in the browser, you don't need to use the Processing GUI libraries as a model and can develop ideas that suit the web world. Look forward to hearing more!

  • How do I exactly submit a proposal?

    this link does not offer any possibility for it. I just registered to the page, but I don't find any form to submit.

    If this does not disqualify my from start, I would be really pleased if someone can explain it to me...

  • Did you create a student account and profile?

    You'll need to do this before you can submit a proposal. Let me know (I can't see the student view of google melange b/c my account is already set up as a mentor).

  • Oh well. After uploading my university certificate it worked like a charm! Thank you very much! :-)

  • edited July 2014


  • @andrei_puha I would start by downloading the software and reviewing the tutorials online: Regarding OpenGL, read this section:

  • edited July 2014


  • Hello Andrei, the OpenGL section in the wiki is not a single project or problem, but a list of ideas to inspire people to make a specific GSoC proposal. However, that list is not by any means exhaustive and you are welcome to propose your own idea. What specific area of OpenGL in Processing are you particularly interested in?

    One important element, I think, for a successful GSoC proposal is to have some degree of familiarity with Processing - at least with its user interface, API and intended audience. The use of Processing in arts and design makes the application side of the proposal (how the outcome of it will benefit the Processing community) very significant, as much as its technical component.

  • edited March 2014

    @andrei_puha for a successful proposal we like to see examples of contributions to Processing or work with Processing in the development of projects. If you haven't worked with Processing much before, try making something with it or see about helping fix one of the bugs. Include links to past work or contributions in your proposal.

  • @codeanticode thanks a lot for your reply, and sincere apologies for my late response. Please have a look at my proposed idea here .

  • Hello!

    My name is Masato Fujimori, I study Informatic Science at Shizuoka Univercity in Japan. I have an experience that develop a map application with Processing, so I'm interested in Processing Development Project. I' ve found Announce on GSoC for Processing, but I don't know what shoud I do, Where should I read and apply ??? I want advice to commit here!

  • This is the postscript. I was in a harry.

    I've read this summary on Project List (, and I'd love to cooperate in the development of p5.js! I have knowledge of interactive Web Page development with JavaScript. I'm in a way reading documents and issues on Github, but if someone have critical topic, tell me please.

  • edited March 2014

    Hello @MasatoFujimori, thanks for your interest in participating! As detailed in the wiki, areas of particular importance for the p5.js project are:

    1. Implementing WebGL renderer / shader support (right now only canvas renderer is supported).
    2. Creating an addon module for creating and interfacing with GUI / user input DOM elements (forms, buttons, etc).
    3. Creating an addon module for interfacing with other HTML5 supported mobile features (accelerometer, geolocation, etc).
    4. Building an IDE, both browser-based and standalone versions.

    Since I'm maintaining the OpenGL renderer in Processing, # 1 sounds very exciting to me since it would allow to bridge the shader mechanism in Processing with p5.js, but you would need to have experience with OpenGL and WebGL to do it. Maybe @lmccart can give you more specific feedback, since she is one of the people leading p5.js

    Remember the application deadline is tomorrow Friday 21!

  • edited March 2014


    Obviously this is very last minute, but I would like to submit a proposal to improve (or implement) a gradient class for the Processing API and the relevant methods of PGraphics. I've used Processing for a few years now and it's always been a bit of a road block to me that Processing does not implement the kind of gradient fill and stroke types that are used in SVG and HTML5 Canvas, even though much of the drawing api uses a very similar model to those vector formats. The lack of such color types seems most obvious in the javascript versions of gradient examples which try to use lerpColor() and set() (set is super slow in javascript, btw, especially on tablets), in spite of the fact that Canvas has built-in linearGradient and radialGradient objects with colorStop methods that are very easy to use and many times faster. Here's an example from ...versus an example of the speed and ease of directly using the Canvas API:

    After searching this forum, I have not come across any attempt to do what I'm proposing, even though there's tons of repeated questions about how to do gradients in Processing sketches. I realize that a full implementation of LinearGradient and RadialGradient classes (as subclasses of a PGradient?) would require many methods (and some fields?) of PGraphics to be re-written so that they can use the new types as color values. My thought is to begin with a subclass of PGraphics for the purpose of extending these methods. I hope others feel the way I do, which is that this would be great!

    So, although it's last minute, I'm very willing to put together a proposal and post it here for review tonight. If this looks like a promising direction, I can submit it with any updates first thing in morning.

    Thanks :)

  • @Revlin, thanks for the proposal idea. Can you imagine a way this could work as a stand-alone library, perhaps with custom renderer (rather than breaking into PGraphics directly)? This might make sense as a GSOC project that could then be considered for Processing core later. @codeanticode is an expert on the Processing renderers and may have useful tips.

  • edited March 2014

    Looks like my enrollment form is not going to go through before the deadline. I did write out a summary, including your request to encapsulate this in an external library, @Shiffman. I'll post the basics here, maybe to add to the project list and re-propose next year :)

    This is a proposal to design and implement a small library for the Processing API. The main purpose of this library is to define a PGradient interface with implementations LinearGradient and RadialGradient, as well as an extension to the PGraphics class, called PGraphicsX, which is capable of using the new gradient type in all fundamental rendering methods ( e.g. fill(), stroke(), line(), rect(), arc(), curve(), etc.). The API for these gradients will be very simple, requiring only a constructor and a method for defining the relative positions and color values of a sequence of stops within the gradient (i.e. addColorStop(), following the model used by HTML5 Canvas). An optional additional method could be used to remove stops that were previously defined. PGraphicsX would provide new implementations of the methods that set, draw, and render using color values (of type color), so that they can alternatively make use of gradient values (of type PGradient) if the user has specified such a value (with fill() or stroke()). The boundaries of the gradient can either be defined with absolute units of pixels or with relative normalized units (0.0 - 1.0), whichever is preferred by the user ( following the model used by SVG).

  • @codeanticode, thanks for nice advice! Unfortunately I noticed that there is no afford to write proposal so gave up GSoC this year... though, this is precious opportunity, I'll continue to cooperate in the development of p5.js. I have the basic knowledge of Javascript, WebGL. Thanks :-j

Sign In or Register to comment.