CGAL Accepted Projects page for the Google Summer of Code 2013

As in 2010, 2011 and 2012, the CGAL Project is a mentoring organization of the Google Summer of Code. 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.


Previous project ideas of the CGAL project for the Google Summer of Code can be found on the following pages: 2010, 2011, 2012, 2013.

You will find below the list of projects that have been selected:

Summary:

  1. 2D AABB Tree
  2. Implement a model of the concept ArrangementDcel using the Combinatorial Map data structure
  3. More point generators in CGAL
  4. Adding a Curve-Skeletonization Algorithm into CGAL
  5. Improved design and new features for the Mesh_2 package
  6. Visibility Polygon Implementation x 2
  7. Adding point set consolidation algorithms into CGAL

2D AABB Tree

Mentor: from Inria Sophia-Antipolis and from GeometryFactory
Student: Nuwan Chamara Jayalath, Ensimag GrenobleINP - FRANCE

Project Description

The purpose of this project is to provide the same functionalities as the ones provided by the 3D AABB package but in 2D. Instead of duplicating of the code, the student will have to devise a solution that shares as much as possible source code from the 3D implementation, without breaking backward compatibility. Once completed, a testsuite carefully checking the correctness and performances of the implementation must be devised. The performance of such a core component being important, code profiling and optimization is a key aspect of the project.

Time permitting, the student will propose a solution to the point-inside-polygon test using the 2D AABB-tree and will to participate to the ACM GISCUP 2013.

Implement a model of the concept ArrangementDcel using the Combinatorial Map data structure

Mentors: from the Applied Computational Geometry Lab, Tel Aviv University and from LIRIS
Student: Junfei Huang, The Ohio State University - USA

Project Description

An object of the class template Arrangement_2<Traits,Dcel> offered by the 2D Arrangement package represents the planar subdivision induced by a set of x-monotone curves and isolated points into maximally connected cells. The arrangement is represented as a doubly-connected edge-list (Dcel) such that each Dcel vertex is associated with a point of the plane and each edge is associated with an x-monotone curve whose interior is disjoint from all other edges and vertices. The Dcel template parameter must be substituted by a model of the concept ArrangementDcel. The 2D Arrangement package offers a model of this concept called Arr_dcel_base<V,H,F>. In this project you are asked to develop another model of this concept using the Combinatorial Map data structure offered by the Combinatorial Maps package.

More point generators in CGAL

Mentor: from Federal University of Pernambuco.
Student: Alexandru Tifrea, Politehnic University of Bucharest - Hungary

Project Description

CGAL is a high quality generic C++ library on Computational Geometry. Amongst its features, CGAL offers random point generators in disks, squares, balls, cubes, hypercubes, to mention a few. Point generation is quite useful for several things, e.g., testing algorithms, obtaining initial values for optimization schemes, and more. In this work, we will concentrate efforts on implementing new point generators. Some of the useful point generators that are missing in CGAL include random points inside a triangle, simplex, triangulation, on a surface mesh, on a pure complex, ...

Adding a Curve-Skeletonization Algorithm into CGAL

Mentor: from Ecole Polytechnique Federale de Lausanne, and from GeometryFactory.
Student: Xiang Gao, ETH Zurich - Switzerland

Project Description

This project consists in implementing a curve-skeletonization algorithm for a watertight surface mesh. The algorithm consists of two main phases. In the first step, a mass-spring system is solved, resulting in a progressive contraction of the model into a skeleton. In the final step, the watertight surface is converted into a network of curves by shortest-edge collapse. The basic algorithm can also be extended to guarantee that the curves are centered within the object.

A visual demo of the algorithm is available here and the algorithm is explained in the following paper (a reference implementation is also available at this page):

  • Tagliasacchi, A., Alhashim, I., Olson, M., and Zhang, H. 2012. Mean Curvature Skeletons. Computer Graphics Forum (Proceedings of the Symposium on Geometry Processing) 31, 5, 1735-1744.

Improved design and new features for the Mesh_2 package

Mentor: from GeometryFactory, and from Inria Sophia-Antipolis
Student: Raul Gallegos Hidalgo, National University of San Agustin - Peru

Project Description

The Mesh_2 package implements a 2D isotropic triangle mesh generator. Currently, the domain to be meshed is defined by some constrained edges and a set of seed points. The constrained edges divide the plane into several connected components. The mesh domain is either the union of the bounded connected components including at least one seed, or the union of the bounded connected components that do no contain any seed. The project can be split into three phases:

  • Improve the C++ interface of the package, in order to unify the API with the Mesh_3 package (3D mesher).
  • Add some mesh optimization methods, to improve the quality of the output meshes.
  • Develop an "oracle" abstraction layer (as devised for Mesh_3) so that the mesher can take different types of input: implicit functions, polygonal domains, 2D images... and on the way, add the ability to manage multi-domain inputs.

or additionnal details, here is the documentation of the current Mesh_2 package and of the Mesh_3 package.

Visibility Polygon Implementation

Mentor: and Alexander Kröller from TU Braunschweig
Student (variant 1): Kan Huang, Stony Brook University - USA
Student (variant 2): Francisc Bungiu, Bremen University - Germany

Project Description

Given a planar polygonal domain (which can be given as a polygon or as an arrangement) and a query point, compute the polygon of all points that can see the query point. Efficient algorithm implementations for this problem are still missing in CGAL. This project will therefore join forces with people at TU Braunschweig, with the purpose of developing a new package for visibility. Together we will work on implementing several different algorithm types (with vs. without preprocesing) for different problem inputs (simple polygons vs. polygons with holes vs. arrangements); including limited vision ranges would be a welcome extra.

Adding point set consolidation algorithms into CGAL

Mentor: from Inria Sophia-Antipolis
Student: Shihao Wu, South China University of Technology(SCUT) - China

Project Description

Point set processing is playing an important role in modern geometry processing due to the various input collected nowadays. This project consists in implementing into CGAL


Last modified on Monday, 01-Jul-2013 18:50:44 MEST. contact information