Google Summer of Code 2025

FreeCAD started participating to the Google student coding program (GSoC) in 2016. We participated through a combined effort of many CAx projects, under the BRL-CAD umbrella. Since 2023, we are applying as our own organization.

How it works

If you want to get involved, study well the GSoC 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.

Writing your proposal

We are proposing a number of project ideas here. But you are in no way forced to follow our ideas. You can propose anything you would like to work on, that you thing would be an interesting project. Good places to hunt for ideas are the list of feature requests, the FreeCAD forum or other FreeCAD communities, like Facebook, Discord or Reddit.

You will find many templates and models on the internet, and on the Google Summer of Code website, but it does not need to be very elaborate. Again, what is important is that you choose a subject you like. It's more important to get interested in your idea and do some research about how you would achieve it than writing very long proposals.

What we expect to see in your proposal is what is explained on the Google Summer of Code website. Additionally, we want to see that you did your research, and that you explored FreeCAD enough so we can trust you know what you are going into.

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 after GSoC has ended. GSoC is not a summer job, although it happens during the Northern hemisphere summer months and requires some dedication and commitment, like a job.

Additionally, submissions are ranked based on perception of the submitter's abilities to complete the task within the program time frame, 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 with the FreeCAD community, mainly through the FreeCAD forum. Communication is a great thing. Having a forum account already, and having already discussed your idea there, for example under the GSOC section, is a great way to have people interested in your project.

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.

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!

And in case your proposal is not accepted but you would still like to work on it, nothing prevents that! Several FreeCAD GSoC students in the past have worked on their project outside the GSoC program.

Possible Mentors

The pool of mentors will review all the proposals, each member will mark the proposals they want to mentor, and each winning proposal will get the mentors that marked their interest. There is no need for you to choose a mentor yourself before starting. If you would like to get reviewing and mentorship before starting, look for the mentors from previous years in the GSoC section of the FreeCAD forum, or simply post something in that section to ask for review.

Implementation Ideas

There are several sources for project ideas. The table below lists existing project ideas already picked by the FreeCAD developers. FreeCAD also previously participated in an umbrella organization for GSoC, and there are FreeCAD project ideas available in their GSoC repo. Additionally, there is a forum thread calling for additional ideas which may be the basis of a project.

The ideas listed here or in the OpenCAx repo serve mostly as inspiration, and do not have a higher chance of being accepted as project proposal. You are totally free to build your own idea, specially for students with an established involvement in FreeCAD who have already contributed code. Feel free to contact us on the forum for further discussions about the listed projects.

The size column shows the estimated time frame to complete the project, but you are of course free to suggest otherwise if you see arguments for it. Clicking on each idea will get you to its corresponding GitHub issue, which will contain more details and where you can ask questions.

Topic Language/Technology/FreeCAD module Size Difficulty
Improve FreeCAD Hidden Line Removal C++, OpenCasCade, Part, TechDraw 350h Hard
Improve API of the user preferences system C++, Preferences, User Interface 175h Medium
Design a finer way to copy/paste object attributes C++/Python, BIM, Part, Addons, User Interface 175h Medium
Diagnose and explore solutions to performance issues with large files C++, Core, Performance, User Interface 350h Hard
Implement Draft Analysis in Part Design C++, Part Design 350h/175h Medium
TechDraw: Export layered PDF File format C++, PDF, TechDraw 175h Medium
Support radius/diameter, also for cylindrical surfaces in measurement tools C++, Measurement 175h Medium
Measure inertia with material and coordinate system in measurement tools C++, Measurement 175h Medium
Add attachment support to annotation labels C++, Core 175h Easy
Add snapping to measurements / picking points C++, Measurement 175h/350h Medium
Unify DXF importers and exporters C++/Python, DXF, Draft, Import 350h Medium/Hard
Allow adding text to the sketcher C++, Sketcher, Qt 350h Medium
Export 3D PDF File format C++, Core, PDF 350h Hard
Use only selected parts of a sketch / Features with different profiles of a master sketch C++, Sketcher, Core 175h Hard
Improve the FreeCAD API documentation C++/Python, Doxygen 175h Easy
Compare multiple parts / bodies (CAD versions and 3D Scan to Original CAD Model) C++, OpenCasCade, Part 175h Medium
Assembly: Possibility to Inspect the Assembly C++, Assembly, Part 175h Hard
Sketcher: Improve Dimension between Circle/Arc (Distance Constraints) C++, Sketcher 175h Hard
Edit multiple documents at a time (AKA make tabs independent editors) C++, Core 350h Hard
Improvement of Light Sources Preferences: Appearance, Multiple Lights in the Scene, Background Illumination C++, Coin 3D, User Inteface 350h Medium
PartDesign: Design a good way to create walls / thin extrusions / ribs C++, Part Design 350h Hard
Implement selection order priority C++, Coin, User Interface 350h Hard
Sketcher: Implement automatic projection of external geometry for dimensions C++, Sketcher 180h Hard
Design a compatibility system for different Assembly Workbenches C++/Python, Assembly 350h Hard
On-machine inspection for CAM C++/Python, CAM 180h Medium
Advanced FreeCAD test system C++/Python, Core 350h Medium
FEM: Extend Z88 Solver C++/Python, FEM, Z99 350h Medium
Upgrade the documentation system C++/Python, Doxygen, Mediawiki, Markdown 350h Easy
FreeCAD ↔ BRLCAD integration C++, BRL-CAD, OpenCasCade, Core 350h Hard
Design a set of interactive controls in the 3D view for tools that have numeric values/inputs (drag to edit) C++, Coin, Core, User Interface 350h Hard
Direct modeling tools C++/Python, BIM, Core 350h Medium
Integrate a client for the buildingSMART Data Dictionary web service Python, BIM 175h Easy

Note also that any issue open on the FreeCAD issues tracker could become a good GSoC proposal. Don't hesitate to browse the issues, the list above is formed from the ones marked as GSoC issues. The ones marked as "Feature" are feature requests and might be especially interesting to you.

The ones marked as good first issue are identified as interesting for new contributors. If any of them picks your brain, feel free to discuss it, either directly on the issue itself, or on the forum thread.

Schedule

See https://developers.google.com/open-source/gsoc/timeline

Previous GSOCs