Surface Reconstruction



I'm researching surface reconstruction from point clouds using machine learning. I'd like to have some possible optimizations investigated for the reconstruction. On top, there is a very interesting idea for automatically tuning parameters...


  1. (*) Optimize the speed and quality of the reconstruction using implicit surfaces. Some of these:
    1. Dataset:
      1. Scene-based training data with multiple objects per training sample.
      2. Add training data far from the surface.
    2. Local and global information:
      1. Re-enable uniform random sampling for the point cloud sub-samples.
      2. More intelligent sub-sampling. Extra neural networks?
      3. Multi-scale approach for local and global information.
    3. Reconstruction:
      1. Better sign propagation of the sparse distance field.
      2. Find better ways to add sample distances to the grid, e.g. with Gaussian smoothing.
      3. Evaluate query points multiple times and take the average.
      4. Find better query points, e.g. with iterative refining.
    4. General:
      1. Combine input point clouds with images
      2. Optimize parameters.
      3. Data augmentation: translate point clouds further over the borders of the volume and clip points.
  2. (* for DA) (Semi)-Automatic Parameter-Space Exploration: The reconstruction is done multiple times with random parameters. Then, it optimizes the parameters with e.g. Gaussian Processes for better results.
  3. Post-processing, e.g. mesh smoothing to get rid of artifacts.
  4. Make the reconstruction available via webserver.

The choice of tasks depends on type of thesis or project and your preferences. Tasks with * are mandatory.


  • Knowledge of English language (source code comments and final report should be in English)
  • Basic knowledge of geometry for computer graphics (e.g. surface definition with vertices and faces)
  • Bonus:
    • Basic knowledge of Python
    • Basic knowledge of Deep Learning (Pytorch)
    • Experience with C++
    • Knowledge of modeling and geometry processing


The source code is currently pure Python for both Windows and Linux. C++ might be necessary for performance optimization.


For more information please contact Philipp Erler (