Google Summer of Code 2017

From FreeCAD Documentation

FreeCAD started participating to the Googles student coding program (GSoC) in 2016. As we are only a small team we got involved in a combined effort of many CAx organisations. Due to the combined application at GSoC many links will lead from here to the BRLcad wiki, which is used as single place for everything.

How it works

  • The student writes a project proposal for FreeCAD.
    • Sometimes their project idea caters to something that the open source organization suggests and sometimes it's an idea entirely of the student's conception.
  • Proposals are reviewed, evaluated, and ranked by the open source organization's mentors.
  • Google allocates a certain number of slots to each participating organization
    • That, in turn, determines how many student developers work with that organization.

If you want to get involved have a look at the getting started checklist. Whether you're applying or accepted, we've itemized everything you need to do in this list. We're here to help you become new open source developers, so don't be shy if you have any questions.

The Selection Process

GSoC is about getting people involved and contributing to open source over the long-term. As such, we heavily weight our application selection process towards students that are interested in remaining involved in FreeCAD and open source software development long after GSoC has ended. GSoC is not a job. If you think this is just a summer job, then GSoC is probably not for you. It's only like a job in terms of planning your time commitment over the summer.

Additionally, submissions are graded based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to FreeCAD. Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel or on the forum. Communication is a great thing.

Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult.

Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new FreeCAD developers!

Available Slots

As FreeCAD is new in GSoC our slots will be limited to a maximum of two. Hence it will be hard for gathering one of those slots with your application. Try to increase your chance by getting to know us early and start fixing bugs before GSoC starts, this always helps to build trust and will convince us of your dedication.

Possible Mentors

Ickby, Yorik : You can reach us both in the forum and in the IRC channel.

Implementation Ideas

The ideas listed here have a high chance of being accepted as project proposal. Note that for students already longer involved in FreeCAD, and which already contributed code, own ideas in their line of work are also welcome. Feel free to contact us on IRC, the forum or the mailing list for further discussions about the listed projects.

Topic Language Difficulty Contact
Advance FreeCAD test system: Create a framework for result file based comparisons and workbench specific comparators. Also creation of test cases should be simplified by a GUI or wizard. Python/C++ Medium Ickby
Topological Naming Project: Implementation of subshape identifiers based on creation history and update of topology class to work with those identifiers C++ Hard Ickby
Direct modeling tools: Create a new layer of tools and objects, that work on top of existing Part-based 3D objects, that allow a user to graphically modify their geometry. Python/C++ Medium Yorik
FEM Post Processing based on VTK: Base the existing FEM VTK post processing on the updated SMESH data structure and design a python interface for it. Also improve integration into the workbench. C++ Medium Ickby
IPython notebook integration: Create a way to export the open inventor scenegraph as a JavaScript file and add functions for seamless interaction with the IPython display system C++, JavaScript, Python Easy Ickby
Integrate Cycles renderer: Add Blender's new Cycles renderer as a new render engine to the Raytracing Workbench C++ Medium Yorik