Google Summer of Code Application Guide


  • Name
  • IRC nick, email address
  • What timezone you are/will be in for the duration of GSoC 2021?
  • What other time commitments will you have during GSoC 2021?
    • e.g. school work, exams, research, another job, planned vacation, etc
    • we can work around it, but we need to know
  • You will need a blog for GSoC, to log your daily activity
  • academic/technical background
    • What do you study?
    • What kinds of classes (or self-teaching) have you done (with regards to software development)?
    • Have you done any personal projects? If so, how did they go? (don’t worry if you don’t have any)
    • How is your experience with C, C++, Linux, CLI, git, and the patch submission process?
    • What experience do you have with the open source world, as a user, and as a contributor?
  • Why did you apply to libcamera? What looked interesting/exciting?


You should be subscribed to the mailing list, and join the #libcamera IRC channel on freenode. See the contributing page for more information.

The proposal

If you have any project proposal that doesn’t come from the project ideas list, let us know. What do you want to accomplish? What purpose will it serve?

You may also choose a project from the provided project ideas. What was interesting about the project idea? What made you choose it?

The proposal describes the goal (deliverables), the plan, and the timeline for the project.

You can ask us anytime for guidance on these points.


What do you expect to have completed by the end of the GSoC period? What kinds of results do you expect to see at the end of the project? Take into consideration your own skills, and the amount of time available. The project ideas list has some guide for the expected results, but the scope likely needs to be narrowed. Doing some exploration as suggested in the warmup tasks section might help in determining the scope.

The plan

How do you plan to implement the deliverables? What changes would you make to existing components? What new components would you add? How would they connect to existing components? Drawing a diagram may help. This is essentially the blueprint to the work that you will do. It doesn’t have to be super detailed and complete, but it should be a roadmap of what you plan to do to achieve the goal.

The timeline

Divide your plan into a timeline, and set milestones for when you expect major components to be complete, and what results you expect/hope to complete by then. Take into consideration your own skills, and don’t feel bad about adding some extra time in case you get stuck unexpectedly; it happens to all of us.