Skip to content

table of proposed coding projects

Vissarion Fisikopoulos edited this page Mar 10, 2025 · 19 revisions

⚠️ NOTE

This year contributors will have to choose between a ~90 hours small-sized project, ~175 hours medium-sized project or ~350 hours large project. For more information please read the official gsoc website as well as GeomScale's introductory wiki for GSoC 2025.


GeomScale hosts a few projects in different github repositories. The most mature one is volesti written in C++. Then there are two repositories that act as interfaces of volesti (i) Rvolesti in R that also contains utilities for financial applications and (ii) and dingo written in Python (uses C++ functions of volesti via Cython) and contains utilities for biological applications. Finally, there is PorQua a Python package for index replication in finance.

Proposed projects are related to those repositories. There are two types of coding projects: research and development (marked as R&D in the table below) and pure development (marked as Dev in the table below). R&D projects needs a deep understanding of the mathematical background in addition to the implementation details that are needed by the Dev projects. Typically the former is more demanding than the later but this also depends on the background of the contributor.


Mentors, please edit this wiki page, and add your ideas to the table below.

Contributors, please look for a project that interests you in the table below. Before emailing project mentors, please do at least one project test and post a link to your solution on the proposal's wiki page.

Proposal Type Languages Size Hours
Randomized SDP solver R&D C++/R Large 350
Non-convex sampling in dingo R&D C++ /Python Large 350
Exclude Lpsolve from R and C++ interfaces of volesti Dev C++/R Medium 175
Counting linear extensions with volume computation and applications in AI R&D C++ Large 350
Expose sampling and volume on spectrahedra to R interface of volesti Dev R/Rcpp Medium 175
Expose autodiff to R interface of volesti Dev R/Rcpp Medium 175
Enhancing Rvolesti: Integration of Advanced Rounding Routines Dev R/Rcpp Small 90
Supporting Sparse Matrix Representation for H‐Polytopes in Rvolesti Dev R/Rcpp Small 90
Developing a Comprehensive Unit Test Framework for PorQua Dev Python Small 90
General Sampling and Volume Computation in Dingo Dev Python Medium 175
Interactive Web API for PorQua Dev Python Medium 175
PorQua – A Framework for Constructing and Backtesting Investment Strategies Dev Python Large 350
Shake and Bake ‐ Sampling from the boundary of convex polytopes R&D C++ Large 350

All contributor applications will be discussed by the GeomScale mentor community, and proposals will be ranked considering factors such as quality, contributor's ability to successfully finish the project, and impact for the GeomScale project. A finite number of slots will be granted to GeomScale by Google, thus, only the best proposals will get chosen. This implies that it is possible that some ideas will not become GSoC projects even if they are supported by a good contributor application.

Contributors, if you are interested in a coding project related to GeomScale that is not listed above, please try to find mentors by posting a description of your project idea on the gitter. If you find mentors, feel free to add your project idea to this wiki and write an application.

Information Candidates Should Supply

The application process has several steps. Before contacting anybody verifies that you are eligible. The next step is to contact the mentor of the project you are interested in. You have to convince them that you are the right person to get the job done. The next step is to work out more details and to contact the mentors or the GeomScale org by providing the following information by email or by gitter.

  • 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 GeomScale 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, teamwork, 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 GeomScale projects?
    • Are you more interested in the theory/scientific aspect of GeomScale, or do you feel more like a hacker?