GSOC 2013 questionnaire

SoC Information for Google

This is the info that we submit to google as application in Summer of Code (current status: 2013). The submitter automatically becomes primary admin. Most entries are mandatory and have to be filled out before the application can be submitted.

Organization Name:



darktable is a free virtual lighttable and darkroom for photographers.

It manages your digital negatives in a database and lets you view them through a zoomable lighttable. It also enables you to develop raw images and enhance them.

This project tries to fill the gap between the many excellent existing free raw converters and image management tools (such as ufraw or f-spot). The user interface is built around efficient caching of image metadata and mipmaps, all stored in a database. The user will always be able to interact, even if the full resolution image is not yet loaded.

All editing is fully non-destructive and only operates on cached image buffers for display. The full image is only converted during export. The frontend is written in gtk+/cairo, the database uses sqlite3, raw image loading is done using rawspeed and libraw as fallback, high-dynamic range, and standard image formats such as jpeg are also supported. The core operates completely on floating point values, so darktable can not only be used for photography but also for scientifically acquired images or output of renderers (high dynamic range).

darktable features parts of its pipeline in OpenCL for fast processing. The core is very small, and every possible task is outsourced to loadable modules, such
as image format for export, light table plugins as the collection interface, and raw pixel processing plugins.

We are slightly over the 200k lines of code (see, with three main developers and about 19 active contributors (who submitted more than one patch since release-0.7.1).

Our main features include:

  • non-destructive, fully color managed pixel processing pipeline in floating point
  • SSE and OpenCL accelerated processing
  • tethered shooting via gphoto2
  • a lot of high quality raw processing modules, standard as well as original ones
  • export to various formats as well as email/flickr/picasa (Google +) upload
  • flexible database queries for custom image collections, tagging, color labels, star ratings

Home page:

Main Organization License:

darktable is released under the terms of the GNU general public license version 3 or later.

Why is your organization applying to participate in GSoC 2013? What do you hope to gain by participating?

darktable is a free software project which is in that very interesting phase where it isn't a toy project anymore and can be used for its main purpose, but it still has lots of features that we want to add and not enough history to slow us down. We are also at the stage where the project is a great testbed for people interested in photo processing algorithm and we see many inovative algorithms added by people that want to try new things

There is a lot to do, some easy, some not so.

This is the point where joining an open-source project is the most interesting and the point where manpower is the most needed.

By joining GSoC we want to have new people joining the project with all sorts of itches to scratch. We want to be in contact with people that want to join the free software world and don't know where to start, because we believe that darktable is a great place to start.

Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

Darktable was part of GSoC in 2011, we mentored a single stundent due to our small mentor manpower but this student turned out to be invaluable. He helped us to get rid of the glade infrastructure, making our UI code much more maintainable and added a keyboard shortcut infrastructure which allows darktable to be highly customizable to each user's need.

This student is now an active member of our community and is still heavily involved

If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6

in 2011 : 1/1

Add a Comment (optional):


If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

we successfuly candidated in 2011 which was our first time
we also applied unsuscessfully in 2012

What is the URL for your ideas page?

What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2013. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.

The main development mailing list is "". An important secondary mean of communications is our IRC channel on Freenode. If you have questions you should ask them in #darktable on and wait for a reply (might take some hours!).

What is the main IRC channel for your organization?

#darktable on

Add a Comment (optional):

Does your organization have an application template you would like to see students use? If so, please provide it now. Please note that it is a very good idea to ask students to provide you with their contact information as part of your template. Their contact details will not be shared with you automatically via the GSoC 2011 site.
  • git (used for all commits)
  • C99 (language used for all the normal source code)
  • sqlite3/SQL
  • OpenCL
  • OpenMP
  • gtk/cairo
  • SSE intrinsics/optimized programming
  • cmake
    1. Which tools do you normally use for development? Why do you use them?
    1. What programming languages are you fluent in?
    1. Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably only add this number in the application for you submit to Google since the info in the wiki is available in public. We will not make any use of your number unless some case of "there is no way to contact you" does arise!

1. Basics
1. Write a small introduction to yourself.
1. State your preferred email address.
1. If you have chosen a nick for IRC, what is it?
1. Why do you want to participate in summer of code?
1. What are you studying, subject, level and school?
1. What country are you from, at what time are you most likely to be able to join IRC?
1. Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
1. Experience
1. What programs/software have you worked on before?
1. Have you developed software in a team environment before (as opposed to hacking on something on your own)?
1. Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
1. Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
1. Photographic experience
1. What type of photos do you take, with what camera, in which format?
1. How do you organise and develop your photos?
1. Do you have a website/flickr account?
1. How proficient are you with post-production software, and which one(s) do you know?
1. Are you familiar with basic photographic data processing (demosaicing, white balance, color management)?
1. If you have contributed any patches to darktable, please list them below. You can also list patches that have been submitted but not committed yet, patches that were refused or patches that have not been specifically written for GSoC. This will help us find out what your work was and how you code.
1. Communication skills
1. Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
1. What spoken languages are you fluent in?
1. Are you good at interacting with other people?
1. Do you give constructive advice (both as a photographer and as a coder)?
1. Do you receive advice well (both as a photographer and as a coder)?
1. Are you good at sorting useful criticisms from useless ones?
1. How autonomous are you when developing? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want?
1. Project
1. Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?
1. If you have invented your own project, please describe the project and the scope.
1. Why did you choose this project?
1. Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".
1. Include as much technical detail about your implementation as you can.
1. What do you expect to gain from this project?
1. What would make you stay in the darktable community after the conclusion of GSoC?
1. Practical considerations
1. Are you familiar with any of the following tools or languages?

In general please try to be as verbose as possible in your answers and feel free to elaborate.

What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible:

Our mentor is the project founder who is still coding or reviewing most of the commits, and should thus be able to give advice about every part of our code, or at least point to the right developer.

When he is not available, the darktable community is quite helpfull and there is usually someone on the IRC channel able to help.

What is your plan for dealing with disappearing students?

The important part is to avoid it happening in the first place. Students don't disapear without a reason. We intend to keep our eyes and ears open for signs of a student being tired, worried or uninterested by the project. If it were to happen we would try to deal with it as early as possible, including rethinking the goals and planning of the project, having more devs involved with helping the student or dealing with any human relation problem that would appear.

If a student were to disapear entirely, there isn't much left to do except failing him and doing the work ourselves. We plan to have the student's work be public (either in the main git repository or through services like github) so we can pick up wherever he left.

What is your plan for dealing with disappearing mentors?

Our mentor is the founding developer of the project and he volunteered for the job, so we don't expect that to happen.

However, should it happen, we would continue to mentor as a developer community the student until we find a new "official" mentor to take on the job.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

We don't intend to recruit a student that we didn't get to meet on IRC beforehand, and we plan to make that clear. We intend to have students actively participate in the project before the start of GSoC. We have started collecting easy coding tasks on a separate web page to help get quickly into the code.

What will you do to ensure that your accepted students stick with the project after GSoC concludes?

Our community is very active and agreable to be in. This is usually a good motivator. We plan to recruit as much as possible students that are photographers and thus are most interested in the tool. Having an itch to scratch is an important motivator for open-source developers. Appart from that we want our student to be a full-fledge developer at the end of summer of code. In particular he should have full authority on his project, i.e be the dev that handles that part.

Is there anything else you would like to tell the Google Summer of Code program administration team? :

Backup Admin (Link ID):

Admin Agreement:

Also available in: PDF HTML TXT