Google Summer of Code - Getting Started
Welcome to GSoC!
Google Summer of Code (GSoC) promotes open source software development by sponsoring students to work on open source projects from the comfort of their home. If you are a student interested in developing open source software, this program is for you!
We are generally looking for students 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.
Students who successfully complete GSoC will receive a compensation for their work.
Getting started with Blender
- New to Blender? Download it and do a number of beginner tutorials.
- Visit the Get Involved Section it has a lot of good new coder info.
- Get the sources and get Blender to compile (works in Linux, Windows and OS X)
- Try to do one of the quick hacks, fix a bug, or provide another patch for Blender. We want to see that you are capable of handling a simple task.
How to Apply
To participate in GSoC as a student, you must be an individual enrolled in an accredited post-secondary institution. No group applications are allowed.
Please check Google's student manual in detail.
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.
When applying for a Google Summer of Code grant to work with the Blender Foundation, your application must follow our application template below (much of which we have borrowed from the Perl Foundation, with gratitude).
Before applying, please check with our ideas page for our requirements for acceptance, and for tips and examples of previous successful Summer of Code projects:
- 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 against Blender - this show 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 IRC 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 Blenders 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. (To find the struct a simple grep or other search for struct FooStructIWantToLookAt will find it for ya.) You can also start 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 tool tips by hovering over a button and seeing what the operator name is. Also if you add a console window you can see what is output to it when you do an action. Then just search the code. Also putting a break on a function in a debugger and doing a back trace can help you find the path code took to get to your function of interest.
- Please provide your full name.
Email / IRC / Social / Web
- Where can we contact you? If you frequent our IRC channel (#blendercoders on irc.freenode.net) please let us know what your nick is. If you have a web page you'd like us to know about, please include it. Mention your Facebook, Twitter or other identities!
- A short description of your planned SoC project
- Describe how your project will benefit Blender. Will it benefit artists using Blender for 3D content creation? Will it be an aid for future Blender development?
- Provide a user-level summary of the final output or results of your project. How does it integrate in Blender, and how does it cooperate with the rest of Blender's features? Note that end-user documentation should be one of the deliverables as well.
- A more detailed description.
- How long will the project take? When can you begin work?
- Include an estimated timeline of the project with mini-milestones
- Please also note any vacation time you expect to take during the project period.
- Do you have any possible school or work conflicts with your schedule?
- Who are you, what are you studying (and where), and what activities do you enjoy? What is your experience using Blender or other computer graphics programs? What (3D) code development projects you've realized? What makes you the best person to work on this project? If you have any history submitting bug fixes or patches to our tracker, please indicate what you have done.
Thank you for applying to work with Blender in the Google Summer of Code program!