Google Summer of Code 2017: Difference between revisions

From FreeCAD Documentation
No edit summary
m (Kunda1 moved page Google Summer of Code to Google Summer of Code 2017: Moved since it's confusing for people to realize that this is not the current 2018 GSOC)
 
(41 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This is the '''2017''' GSoC page.
FreeCAD did not yet participate in Googles student coding program (GSoC), 2016 is the first attempt. As other open source CAD programs issues a combined proposal the year before we may get involved in this effort before trying a own submission. Hence for most useful information we propose to have a look at the [http://brlcad.org/wiki/Google_Summer_of_Code BRLCad] wiki. Currently no update to 2016 has been done, but catching general information of how to proceed can be found.

'''The 2018 Google Summer of Code page is located [[Google_Summer_of_Code_2018|here]].'''

FreeCAD started participating to the Googles student coding program ([https://summerofcode.withgoogle.com/ GSoC]) in 2016. As we are only a small team we got involved in a [http://brlcad.org/w/index.php?title=Google_Summer_of_Code/Project_Ideas#FreeCAD_Projects combined effort] of many CAx organisations. Due to the [http://brlcad.org/w/index.php?title=Google_Summer_of_Code/Project_Ideas#FreeCAD_Projects combined application] at GSoC many links will lead from here to the [http://brlcad.org/wiki/Google_Summer_of_Code 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 [http://brlcad.org/wiki/Summer_of_Code/Checklist 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 ==
== Possible Mentors ==
[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby], [http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 Yorik]
[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby], [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=2069 Bernd], [http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 Yorik] :
You can reach us all in the forum and in the IRC channel.


== Implementation Ideas ==
== 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.
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.


{| class="wikitable"
{| class="wikitable"
Line 11: Line 40:
! Language
! Language
! Difficulty
! Difficulty
! Priority
! Contact
! 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.
|[[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++
|Python/C++
|Medium
|Medium
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|-
|-
|[[Topological Naming Project]]: Theory evaluation of possible algorithms in respect to FreeCADs internal architecture and implementation of a prototype to show the general applicability of the choosen approach.
|[[Topological Naming Project]]: Implementation of subshape identifiers based on creation history and update of topology class to work with those identifiers
|C++
|C++
|Hard
|Hard
|High
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|-
|-
Line 26: Line 59:
|Python/C++
|Python/C++
|Medium
|Medium
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 Yorik]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 Yorik]
|-
|-
|[[FEM Post Processing based on VTK]]: Advance the currently prototyped FEM post processing based on the vtk library with more functionality and ensure a better itnegration into the workbench
|[[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++
|C++
|Medium
|Medium
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|-
|[[Multithreading in document evaluation and Part workbench]]: Multithread the graph based document object evaluation with intels tbb library and integrate OpenCascades multhithreading
|C++
|Medium
|Medium
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 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
|[[Highly integrated help system based on the wiki]]: Integrate the help system better into the application via advanced tooltips and make it interoperate seamlessly with the wiki
|C++, Markup
|C++, JavaScript, Python
|Easy
|Easy
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|-
|-
|[[Integrate Cycles renderer]]: Add Blender's new Cycles renderer as a new render engine to the Raytracing Workbench
|[[General measure framework]]: Build a unified measure framework working with different workbenches and objects for advanced data collection
|C++
|Medium
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 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]]<br>
Phase 2 - [[Mapping of main ElmerSolver setting for mechanical simulations]]<br>
Phase 3 - [[Give graphical access to a wide range of available ElmerSolver setting from within FreeCAD]]
|Python, C++
|Medium-Hard
|High
|[https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=2069 Bernd], [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=6222 HoWil]
|-
|[[PartDesign Updates]]: Finish PartDesign port to new Body object, simplify the workflows and extend tools while making them more robust.
|C++, Python
|C++, Python
|Medium
|Medium
|High
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|-
|-
|[[GSoC FEM Solver Z88]]: Extend the capabilities of FEM solver Z88OS in FreeCAD FEM workbench.
|[[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
|Python
|Easy-Medium
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Bernd]
|-
|[[GSoC FEM Unit Tests]]: Extend the unit tests of FreeCAD FEM workbench.
|Python
|Easy-Medium
|Low
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 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
|Medium
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=686 Ickby]
|[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=68 Yorik], [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=708 sliptonic]
|}
|}


[[Category:Google Summer of Code]]

Latest revision as of 20:12, 15 March 2018

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!

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, Bernd, Yorik : You can reach us all 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. 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.

Topic Language Difficulty Priority Contact
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
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 Low 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
Phase 2 - Mapping of main ElmerSolver setting for mechanical simulations
Phase 3 - Give graphical access to a wide range of available ElmerSolver setting from within FreeCAD

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