GSOC Intro and project idea

My name is Will Hartman and I'm a sophomore (soon to be junior) computer science student at Worcester Polytechnic Institute in Massachusetts. I've been writing Java code for around three years now and have been using Processing for about one year.

First off, I just want to say that Processing is a really cool project that I love doing work in even though I've mostly just used it for experiments and little prototypes. I feel that the simplicity and speed of writing interactive graphical applications is addictive and exciting, both for visual artists and for beginning programmers. I feel that Processing's biggest strength and most valuable trait is its simplicity.

I was introduced to Processing by my sister who is an art student who focuses on art and technology. A couple of weeks ago I went to a gallery show put on by seniors from her school where there were a number of digital pieces. A few of these pieces used video game controllers to allow the viewer to interact with them. Speaking to the artists, I learned that they found controllers to be valuable tools in communicating with the user, but I got the impression the artists found the controllers complicated to write code for.

I immediately identified with this, as I had struggled with lacking controller libraries in Java while working on various hobby projects. These libraries' problems are pretty major, like incomplete support for Xbox controllers on windows and the inability to properly handle controller connection or removal at runtime.

The existing controller libraries in processing are pretty hard to use and fail in the same places(due to the underlying deficiencies in Java controller libraries). I'm interesting in fixing this by modifying an already existing library to fix its issues and writing a API in Processing that will be simple to use. This would all be packaged in a Processing library.

I'm aiming to create a library where the user does not need to worry about library capabilities or making controller mappings. Using controllers should be as easy as accessing keyboard or mouse state.


  • Thanks for this idea and I look forward to reading your proposal. Building a stand-alone library fits the scope of GSOC quite well as it can be managed independently from core Processing development and has clear goals.

    What is the other Java library you intend to fix / use?

  • Thanks!

    I was actually talking about using a C library. The issues with all the existing Java libraries run pretty deep. Since fixing the issues in the Java libraries would require modifying native code no matter what, I decided that it would be better to start fresh by building off a mature native library.

    I'm intending to use the controller sections of SDL. SDL is pretty modular, so I'm planning to modify it a bit, making a minimal version that retains only the controller relevant code. Furthermore, it's already got great cross-platform support and a really comprehensive database of controller button/axis mappings.

    I have more details about all this on my proposal, which is up on melange now.

Sign In or Register to comment.