What features in free software will be sponsored by Google this summer
Earlier this week Google published a list of projects accepted for the Summer of Code 2013 program. Let's take a look at the variety of improvements in free software to be sponsored by the company.
For GIMP the Google Summer of Code program this year is once again a trade-off between improving the existing feature set, making everything faster, and developing cool new features.
A combined selection tool, to be created by Ajay Ramanathan, will clean-up the toolbox and improve selection workflow. It's possible that the tool will partially rely on results of a 2010 usability research by students of Peter Sikking, the user interaction architect in the team.
Another enhancement project is a better support for PSD files. Even though GIMP doesn't have layer filters or adjustment layers yet, and thus cannot read the relevant part of Photoshop documents, there are still lots of things to do: editable text layers, masks, etc.
The speed-up project is about porting existing GEGL operations to OpenCL, so that processing could be leveraged to GPU. Carlos Zubieta will be mentored by Victor Oliveira who made OpenCL in GEGL a reality.
Finally, the cool new feature this year is a new transformation tool that will make it possible to transform isolated objects as real-life objects (in 2D). To give you idea, here's a video from the student:
The tool will be based on “As-Rigid-As-Possible Image Registration for Hand-drawn Cartoon Animations” paper by Daniel Sýkora et al., with a number of modifications. The great part is that Marek already made a preliminary implementation in Java (which is where the video above comes from).
Recently the team merged some past GSoC projects into the main development branch in an attempt to save them from bitrot. One of them, the Warp Transform tool (an on-canvas version of the iWarp plug-in on steroids), has pretty good chances to make it to v2.10.
Timeline mockup for Krita
Krita team only got two students, but that's how many slots they requested anyway. One student will be working on image filters which, in their own words, have been neglected for a while. Another student will work on adding animation (the real deal, with timeline and everything).
The darktable organization isn't participating in GSoC again, so we are down to just two end-user software orgs: digiKam and F-Spot.
DigiKam beats its own past record with 8 projects this year. Most interesting ones is a tool to make feathered selections to make better localized editiing. Another student will be working on tool to merge exposure bracketed snapshots into HDR.
The only F-Spot's project is, frankly, somewhat puzzling. Camilo Polymeris will attempt to integrate 3rd party RAW processing software into this somewhat forgotten photo management application. Rawstudio, UFRaw, and darktable were mentioned in the proposal as examples.
The puzzling part here is that F-Spot has been capable of using UFRaw to create versions of RAW images for the last four of five years, so presumably the idea is to either take it further, focus on other applications, or both.
Another notable project is HDR imaging in OpenCV. The scope of the project is loading HDR images from OpenEXR, RGBE etc., merging exposure brackets into HDR, and various tonemapping techniques.
Not photography-specific, but still important is a GNOME project to write a shader in Wayland/Weston to convert between color spaces and modify color managed applications to take advantage of the color profiles directly from Wayland/Weston. The project is mentored by Richard Hughes.
This year Inkscape is pretty much the only vector graphics application participating: neither LibreOffice, nor Calligra Suite's Karbon got relevant projects.
All five Inkscape proposals are interesting and, partially, long overdue — like streamlining unit support, or adding a new dialog to create documents from templates (instead of browsing a pageful of menu items).
Most visually exciting projects are a new interactive tool for recoloring artwork using color harmonies, and a better way to vectorize highly pixelized images (based on a SIGGRAPH 2011 paper).
User interface proposal for recoloring
The “Electronics CAD support” project is not as crazy as it might seem. Most expected changes are going to improve the existing Connector tool and the new Symbols dialog (expected in 0.49).
Interestingly enough, there are several projects this year that are related to authoring and reading ebooks.
Okular and Evince (KDE's and GNOME's document viewers, respectively) are getting various enhancements. A KDE student will make Okular better read EPUB files (e.g. internal links), while two GNOME students will add bookshelf view & tiling support to Evince and improve making annotations in PDF.
LyX organization got 3 students, one of which will improve existing XHTML exporting and implement exporting to EPUB. If you are not familiar with LyX, do check it out: it's a quite interesting text processing application, a cross between Word and TeX.
Blender got no less than 15 students this year. There's a usual share of BGE projects, two Cycles projects (texturing for volume rendering and various new shader nodes) etc.
One of the most interesting projects is sketch mesh editing, based on “Sketch-Based Interface for Detail-Preserving Mesh Editing” SIGGRAPH 2005 paper by Andrew Nealen.
Crystal Space 3D engine has some interesting projects like planetary simulation, interactive water simulation, or post-processing effects like screen space ambient occlusion, depth of field, and motion blur.
The Ogre3D is likewise getting several important projects, most notably, bringing the engine closer to the 2.0 state by introducing multithreading and better cache utilization.
Unless you count OSGeo projects in, BRL-CAD is the only computer-aided drafting project to participate in GSoC this year. There are all sorts of improvements to be made, but two projects are of a particular interest:
- A web interface finetuned for mobile users. The scope of the project is implementing the basic concept. The idea of drafting in a browser and/or on a mobile device isn't really new, but free software needs to gain on that to be any competitive.
- A new 3D display manager based on Qt/OGRE to graphically interact with geometry.
Apart form that and a few internal refactoring projects, BRL-CAD will also be getting a teapot (or Suzanne) of its own: a heart primitive.
Surprisingly, Kdenlive team didn't make a visible attempt to participate in GSoC as part of KDE, which probably has to do with ongoing work on refactoring (an effort that typically sucks all the spare time), so, again, we are down to just PiTiVi.
Mathieu Duponchelle will be doing general bug fixing in this NLE, attempting to make a new release a possibility by the end of summer. He already fixed the mixing of video tracks which was broken after the switch to GStreamer Editing Services:
Edit: As Jean-Francois pointed out, there are three more students in the project:
- Anton Belka will be adding proxy editing;
- Simon Corsin will be working on complex layer management and waveforms in PiTiVi;
- Joris Valette will be implementing time stretching with smooth interpolation.
As a matter of fact, you can add Blender video sequencer improvements to this “list” of video related projects: Alexander Kuznetsov is going to redesign VSE to make it better integrated into Blender and lists dynamic slow motion as a possible new feature.
But most importantly, he will focus on better playback performance (multithreading, with GPU extension in the future) and sharing compositor nodes for effects and transitions. There's likely to be a video preview with playback in the file browser and strips too.
MuseScore finally got its share of GSoC students. Andrey Tokarev will work on more accurate, assisted MIDI importing in MuseScore, which isn't as simple or straightforward as it might seem.
UI proposal for the assisted MIDI importing
Kyle Messner will works on the basics of using MuseScore in browsers. That will involve making the libmscore library accessible from browser (via Emscripten) and writing a proof-of-concept HTML5 application to use it and do simple edits like transposition of the score.
The Mixxx organization got four students who will be working on various long overdue features such as loop recorder, non-blocking database access, and better MIDI mapping workflow. DJing with free software is going to become even more fun!
Given the overview above, one major and a somewhat disturbing trend stands out.
“The rich are getting richer, the poor are getting poorer” — major projects in the multimedia production field are getting same amount of slots or more, but the diversity of projects as we knew it is gone. It would seem easy to blame Google, but they are not the ones to blame, and most likely noone is. Here's why.
Take music making apps. They are indeed getting decreasing representation in the program. It's now been years since either Audacity or Ardour organizations participated. But in both cases it's teams' decisions, not Google's.
From what I've seen, one major concern is managing an organization and finding mentors. Participation in GSoC is a responsibility: you need to have time to check on your student's progress, to give advice and generally “be there” when you are needed.
While GSoC increases inheritance in projects and stimulates growth and connections with the academic world, it also cuts into developers' time and limits the ability to work on an application itself. For projects that are a one-man show — something that's typical for Linux audio — this is a no-go.
Clashes with development cycles are one more reason. For instance, at least once in the past the Audacity team voted against submitting a proposal for participation due to ongoing work on finalizing a major new release. Participating in GSoC would get them distracted from the primary goal.
Another major concern is merging GSoC code and making it available to the users. Ardour 3, released earlier this year, features long anticipated MIDI tracks. But it started from 2006 and 2007 GSoC projects by David Robillard. That's 7 years in the making.
In other words, participating in GSoC does not magically solve all the problems for free software projects. It has its great moments, but not every team can benefit from it. Fortunately, there are other ways to make development of free software sustainable. But that's another story.