-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Project Ideas
- GSoC 2025 Projects
- Information Candidates Should Supply
- Previous Project Ideas and Successful Projects
The CGAL Project is a candidate mentoring organization of the Google Summer of Code 2026. On this page we present some project ideas as well the information applicants have to provide us. GSoC applicants are welcome to propose other ideas and check if a mentor is interested in supervising it. For new project proposals, contact us at [email protected].
Mentor: Sebastien Loriot
Project description:
Remeshing algorithms in CGAL requires the proper extraction of sharp features so that they can be represented in the output mesh (like here for example). Classical method to detect sharp features are based on collecting edges with sharp dihedral surface angles. However, depending on the quality of the input mesh, some noisy edges might be detected, or some edges might be detected. To workaround these issues, it might be interesting to rely on tools from Topological Data Analysis, like for example persistence. Indeed, extra data or missing data are all related to a notion of scale at which the problem is looked at. The goal of this project is to implement such a strategy for provide curated feature edge graph to the meshing algorithm of CGAL. If time allows, extension to detection of significant handles might also be looked at.
Resources:
- A Practical Solver for Scalar Data Topological Simplification
- To cut or to fill: a global optimization approach to topological simplification
- Topological Simplification of Nested Shapes
- Gudhi library
Required Skills: C++17, Mesh Processing, Topological Data Analysis
Contact: [email protected]
Duration: 350h
Mentor: Sebastien Loriot and Mael Rouxel-Labbé
Project description:
The CGAL library provides several functions to read and write meshes (surface and volume) in the Stream Support package. The list of currently supported file format is available here. The goal of this project is to add support to more file formats. We could for example add support for glTF, gmsh format, 3mf v2, ... The duration of the project will depend on the file format proposed for addition.
Required Skills: C++17
Contact: [email protected]
Duration: 90h, 175h, or 350h
Mentors: Gabriel Zachmann, Rene Weller, University of Bremen
Project description:
A nice generalization of AABBs are k-DOPs, which can bound geometry much tighter than AABBs by adjusting the parameter k. We have implemented algorithms that can create such kDOPs to bound a given set of polygons; also, our code can check two k-DOPs for overlap, even when they are rotated, i.e., no longer given over a common set of generating vectors. Finally, our code can make use of SSE/AVX instructions, which can give a good performance boost.
The task in this GSOC project will be to CGAL-ify our code. This means using the CGAL data structures (e.g., those for points, vectors, polygons, etc.). Also, an important part will be writing unit tests that can be run in an automated environment and test the correctness of the code. This can be a little challenge in the case where the pair of k-DOPs are rotated arbitrarily, but CGAL's convex hull algorithms should be helpful for that (the unit tests do not necessarily need to have optimal running times).
Resources:
- https://cgvr.cs.uni-bremen.de/papers/iros2019/iros2019_paper.pdf
- https://cgvr.cs.uni-bremen.de/papers/vrais98/vrais98.pdf
- Section 3.5.9 in https://cgvr.cs.uni-bremen.de/papers/zachmann_diss/zachmann_diss.pdf
Required Skills: C++17, experience with CGAL, Computational Geometry
Contact: {zach, weller}@cs.uni-bremen.de
Duration: 350h
The application process has several steps. Before contacting anybody verify that you are eligible (Check section 7.1 of the official rules). The next step is to contact the mentor of the project you are interested in. You have to convince him that you are the right person to get the job done. The next step is to work out more details and to contact the mentoring organization by providing the following information by email to [email protected]:
-
Project:
- Select a project in the list and provide your personal and detailed description. If you wish to work on another idea of your own, we are pretty open as long as this serves the goal of consolidating CGAL as a whole.
- Provide a proposal of a technical solution with your envisioned methodology. The more detailed the better.
- Explain how the solution will be available to the user, in which form. Do not forget the documentation, unitary tests and cross-platform aspects.
- Provide a realistic schedule with objectives (one every two weeks for example) and deadlines. Focus on mid-term objectives as well as on the final evaluation.
-
Personal data:
- First name, last name, affiliation and geographical location.
- A brief list of the main studies and programming courses attended, with ranking.
- List of the most important software projects contributed and success.
- Which are your best skills in terms of programming and scientific computing?
- In general what is your taste in terms of programming? language, methodology, team work, etc.
- Is there anything that prevents you from working full time on the project during the program period?
- How do you see your involvement after the program ends? Do you see yourself pushing the project further, or do you see yourself contributing to other CGAL projects?
- Are you more interested in the theory/scientific aspect of CGAL, or do you feel more like a hacker?
- What are your long-term wishes in terms of job?
Mentor: Sebastien Loriot
Project description:
Approximate convex decomposition aims to partition a 3D shape into a set of nearly convex components whose convex hulls approximate the input geometry. This representation enables efficient collision detection and physical simulation, as many geometry processing algorithms are optimized for convex shapes. The project is to implement an existing method describe here within CGAL. The algorithm rely on a plane-based decomposition strategy combined with a concavity metric that measures deviation from convexity using approximate symmetric Hausdorff distance between the surface and its convex hull. The algorithm iteratively cuts the mesh by planes to minimize global concavity. The algorithm selects the cutting planes using a Monte-Carlo Tree Search startegy.
Resources:
- The publication
- [The implementation of the publication]((https://github.com/SarahWeiii/CoACD)
Required Skills: C++17, Mesh Processing
Contact: [email protected]
Duration: 175h-350h
General Information
- Information for New Developers
- Developing with Git
- Structure of a CGAL Package
- Building
- Concurrency in CGAL
- License
- Documentation Guidelines
- Reviewing Process
- Testing
- Miscellaneous
- Tools
- Scripts
- Libraries
- Infrastructure
- Releases
- Miscellaneous