Skip to content
François Beaune edited this page Feb 4, 2020 · 27 revisions

You are a student, and you would like to participate to this year's Google Summer of Code by working on appleseed. Here is an outline of how to proceed from here.

1. Get in touch

Join appleseed's Discord server, the central place for all discussions related to the development of appleseed at large. We also occasionally discuss more general rendering topics such as new techniques, interesting papers and open source projects, other renderers, etc.

Our Discord server is a safe, welcoming place. Everyone is quite relaxed but we all act in a civilized, professional manner. We expect the same from everyone, including you of course.

2. Introduce yourself

Please join the #gsoc-general channel which will be the central place for all GSoC-related discussions, and introduce yourself there. Don't be shy, and be honest. Here are some things we would love to know:

About yourself:

  • Where are you from? (Asked out of pure curiosity, and maybe you'll meet other people from your country or city!)
  • What are you studying?
  • Where are your interests in general? In programming?
  • Do you already know what you would like to do after your studies?

About open source:

  • What open source projects did you contribute to, if any?
  • Are you following closely the development of one or several open source projects?
  • Have you or are you leading an open source project (of any kind)?
  • Is there code of yours we could peek at on GitHub, SourceForge, etc.?

About rendering:

  • Did you ever use a commercial renderer? An open source renderer?
  • Did you ever contribute to an open source renderer, even if it wasn't by coding?
  • Have you ever wanted to start writing a renderer yourself?

About appleseed:

  • Did you know of appleseed before this year's GSoC? If so, where did you first hear about it?
  • Have you ever used appleseed?
  • Have you ever wanted to use appleseed but found out it was inadequate or missing an essential feature?

About coding:

  • Which language(s) are you proficient with?
  • How would you rate your proficiency with C++? With the STL?
  • Do you know how to use Git? GitHub?
  • Did you ever have to follow coding guidelines that weren't yours?
  • Did you ever have to work on a large code base that wasn't yours? How did that feel?
  • Did you ever have your code reviewed by a peer?
  • Did you ever do a review of someone else's code?

If you are interested in one of the project from our List of Project ideas for GSoC 2020:

  • Why did you pick this project in particular?
  • Do you understand everything in the description of the project?
  • Do you feel that the scope and difficulty of the project match your skills?

If you have your own project idea, please describe it with as many details as possible.

Assuming your participation to GSoC this year is a success:

  • Would you be interested in continuing to contribute to appleseed after the summer?
  • Would you like to become responsible for a module or a particular area of the code?
  • Would you like to become a mentor if we participate to GSoC next year?

Finally:

  • Is there anything else you would like to tell us?
  • Do you have any question about appleseed or about the team?

3. Complete a small coding task

Beside introducing yourself, we will ask you to build appleseed on your machine and fix a small bug or implement a small feature. These are supposed to be very easy: it should take someone used to the code base from mere minutes to an hour to complete. However it will undoubtly require a bit more effort on your side, so don't panic if it seems difficult at first.

Build appleseed on your machine

We have detailed, step-by-step instructions in our wiki: please follow them closely.

If something goes wrong or seems incorrect, get in touch on Discord in the #help channel.

Find a small bug/feature

These small coding tasks are tagged as Good First Issue in our issue tracker. Let us know which you would like to tackle so that we can explain what it is about.

Complete the task

Start by reading our Coding Philosophy and Guidelines. We will ask you to follow them closely.

We will help you find your way through the code base and complete the task. However we kindly ask you to investigate on your own first.

As usual, questions are best asked on Discord in the help sub-channels.

Clone this wiki locally