Google Summer of Code 2017
This is the 2017 GSoC page.
The 2018 Google Summer of Code page is located here.
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!
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.
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. The topics priority shows you how important the work on the ideas is for the mentors, and hence choosing a high priority topic will give you an advantage if there are more applications than slots for FreeCAD.
|Advanced 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||Low||Ickby|
|Topological Naming Project: Implementation of subshape identifiers based on creation history and update of topology class to work with those identifiers||C++||Hard||High||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||Low||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||Medium||Ickby|
|Integrate Cycles renderer: Add Blender's new Cycles renderer as a new render engine to the Raytracing Workbench||C++||Medium||Low||Yorik|
|Stepwise integration of ElmerFem into FreeCAD should be done in three phases:
Phase 1 - New solver object for handling ElmerFEM execution in FEM-workbench
|Python, C++||Medium-Hard||High||Bernd, HoWil|
|PartDesign Updates: Finish PartDesign port to new Body object, simplify the workflows and extend tools while making them more robust.||C++, Python||Medium||High||Ickby|
|GSoC FEM Solver Z88: Extend the capabilities of FEM solver Z88OS in FreeCAD FEM workbench.||Python||Easy-Medium||Low||Bernd|
|GSoC FEM Unit Tests: Extend the unit tests of FreeCAD FEM workbench.||Python||Easy-Medium||Low||Bernd|
|GSoC Path/Robot Integration: Path is the CNC/CAM workbench. It currently lacks any simulation capability. Robot workbench is a tool for simulating industrial robots. Extend Path and Robot workbenches to support simulation of CNC operations in the Robot workbench.||C++, Python||Easy-Medium||Medium||Yorik, sliptonic|