GSoC/Getting Started

=Google Summer of Code - Getting Started=

Google Summer of Code (GSoC) promotes open source software development by sponsoring contributors to work on open source projects from the comfort of their home. If you are a person interested in developing open source software, this program is for you!

Blender is generally looking for contributors who are willing to learn, have good coding skills and, most importantly, have a keen interest in 3D creation pipelines and open source software development in general.

Conditions
Contributors who successfully complete GSoC will receive a compensation for their work.

To participate as a contributor, you must be at least 18 years old at time of registration and an open source beginner. No group applications are allowed.

GSoC is a program strictly for coding projects. Other initiatives, such as for documentation or translation, are also very important, but are not allowed for GSoC.

First Steps
Read it carefully to get to know the initiative. The guide has a very good overview of the program and precious advice on how to get started, communicate, write your proposal and start the work. See also Google's FAQ.
 * Google's Student Guide is the best place to start!

Investigate Blender's history, mission and get involved in the community. Browse the source code to get an idea of the project dimension and how it is organized. Be sure to know the basics of Blender's usability as an end-user!
 * Get familiar with the Blender project.

Head over to the ideas page to pick a topic that interests you. You can also take inspiration from projects from previous years.
 * Write your project proposal.

We also recommend reading Google's guide for writing a proposal.

Submit early if you want feedback! Don't expect any feedback on the last week before the deadline, as this is when most applications come in.

Getting started with Blender

 * New to Blender? Download it and do a number of beginner tutorials for users.
 * Visit the Get Involved section which has information for new developers.
 * Get the source and build Blender.
 * Try to do one of the quick hacks, fix a bug, or provide another patch for Blender. Your proposal should link to your patches or previous contributions to Blender. Don't be intimidated! If this is your first time approaching a big code base, see our Developer Introduction, specially the Advice.

FAQ

 * Q: What will most help my odds of acceptance?


 * A: There are a number of things you can do to help your odds


 * A quality proposal - a well thought out proposal that shows you understand what you want to do and have reasonable expectations about what can be accomplished in the time you will have available.
 * Show evidence of past experience or achievements related to the proposal.
 * Make a useful patch for Blender - this shows that you can successfully read, edit, and compile our code.
 * Discuss your application with us and get some feedback. You can chat with us on blender.chat and post a link to your proposal to our mailing list, and of course we will give feedback in the GSoC web-interface too.


 * Q: Is there some place that tells me the process of compiling Blender?


 * A: See this documentation.


 * Q: Where can I learn more about Blender's code base?


 * A: There is quite a bit of good documentation here.


 * Q: The Blender code base is huge! Where do I start?


 * A: Have a look at the Files structure. The editor directory is usually a good place - it is where most of the operators live. Have a look at the header files and structs related to what you are interested in working on. The headers usually have the best overview of what a function does. Another way to start is with writing Python scripts. The API for our Python tools is similar in many ways to our C API. You can often find out where some C code lives by seeing the python tooltips when hovering over a button and seeing what the operator name is. Some useful techniques are to scan the console window for output of actions and to place a breakpoint in a function to get familiar with the code by stepping through and examining the callstack. See more tips and techniques in the Developer Introduction, specially the Advice.


 * Q: I want to get involved before submitting my application. Can you guide me?


 * A: Getting involved early and showing presence is a good idea and increases your chances for acceptance. On the other hand, contributors have to show that they can take steps by themselves, without much "handholding". Mentors will try to help contributors make it successfully through the project; their job is not to give guidance on every step of the way. Of course, the usual communication channels are available to contributors for when they need help on specific topics. Together with the developer introduction guides, contributors should be able to get started. So take some initiative yourself. Show that you are capable of working on your own (to a good degree), that you can figure simple things out yourself and that you know when and where to ask questions.

Thanks!
Thank you for considering Blender for your Google Summer of Code!