If you are taking this course for credit, the project will count for 50% of your final grade. Therefore, I advise you to start early on it. The grade will be primarily based on:
- A short (2-3) page report about your work.
- If your project is practical, please also submit the code (implementation).
If you are more ambitious, please feel free to select another more advanced projects below If you are planning to do a project, please contact me to let me know what topic you have selected.
The choice of topic is flexible, so if you have your own topic in mind, please let me know.
Group Size:For most projects, you should be able to do them alone. If you prefer, you can also work with at most one partner. Please note that for groups with tw people, I will give the same grade to both members, so it's up to you to distribute the work evenly.
Some Project Ideas
|Non-rigid shape Matching||In class we will go in some detail into the problem of rigid shape alignment of rigid shape matching. Many shapes in real world, including humans are non-rigid. Thus, it is interesting to try to find non-rigid deformation or alignment that brings the shapes together. In this project your goal is to explore recent methods in non-rigid shape matching. You can also look at the work on Blended Intrinsic Maps by Kim et al., the work on Heat-Kernel Signature techniques by Sun et al. or on Functional Maps that I've worked on. Please pick one of these papers, implement and test it. You can find some collections of non-rigid shapes, for example here.|
|Non-rigid shape Deformation||Once you have a shape you may often want to deform it beyond rotation, translation, etc. In this project, your goal will be to implement a method for efficient and interactive shape deformation at existing literature on non-rigid shape deformations. You can start by considering the following paper: As-Rigid-As-Possible Surface Modeling by Sorkine and Alexa, which presents a classical approach for real-time deformation.|
|Alternative: Please also feel free to consider another article, Harmonic Coordinates for Character Articulation, which describes an influential algorithm developed by researchers at Pixar that can be applied both for 2D and 3D shapes and also gives an overview of so-called cage-based techniques.|
|Variational Shape Approximation||Analyze and implement the method described in the paper Variational Shape Approximation by Cohen-Steiner et al. This method tries to approximate a given shape with a small number of geometric proxies (usually ellipses). This allows to represent a shape very compactly without significant loss of quality.|
|Symmetry Detection||Most of natural 2d and 3d shapes contain some kind of symmetry (reflectional, rotational, etc.). Thus, given a shape it is natural to try to discover the symmetries that it contains. There is a large number of methods that have proposed for detecting symmetries from 3d meshes. You can start by reading a recent state-of-the-art report: Symmetry in 3D Geometry: Extraction and Applications which describes the different methods for detecting symmetries. Then, you should implement and test one of the methods. For example, the methods in A Planar-Reflective Symmetry Transform for 3D Shapes or Partial and Approximate Symmetry Detection for 3D Geometry.|
|Shape Comparison and Retrieval||Shape retrieval is the problem of finding a shape in a large database
(such as, for example, the Trimble 3D Warehouse that
is most similar to a given (query) model. For example, if the query is an airplane, the goal is to
find all similar airplanes in the database as quickly and as accurately as possible. There are several
techniques that have been proposed for this problem, and your goal will be to implement one of them
and test it on some interesting data. You can start by reading the paper: Laplace-Beltrami Eigenfunctions for
Deformation Invariant Shape Representation, which proposed an elegant and easy to compute
descriptor for deformable 3D shapes. Your goal will be to test this method and compare it to another
approach (called Shape-DNA also described in the paper above) on the following dataset. In other words, your goal
will be to classify the shapes into their corresponding categories (cats, dogs, etc.). If you are
feeling a little bit more ambitious, you should test your approach on a larger dataset, the Princeton Segmentation Benchmark, which contains 380
shapes in 19 categories.|
|Sketch-based Shape Retrieval||As an alternative to the previous project, you can consider the problem of sketch-based retrieval, where the goal is to also find relevant 3D models in a large collection. However, now the input is a rough 2D sketch, rather than a complete 3D model. This problem is, in some ways, more challenging, but on the other hand allows to use very well-developed techniques from image analysis. Again, your goal will be to read and implement a recent paper, Sketch-Based Shape Retrieval, and test it on any dataset, such as the one described here.|
|Shape Analysis and Optimization for 3D Printing||As mentioned during the first
lecture, one of the applications of Geometric Modeling and geometric shape analysis is 3D
printing. In this project, you will implement one of the recent articles that propose
techniques for improving the structural qualities of 3D shapes explicitly for 3D printing. You
can start by looking at the slides from a recent course on 3D printing
oriented design, and then implement and test one of the following papers: Balancing Shapes for 3D Fabrication, or Efficient Support Structure Generation for Digital
Fabrication, or a bit more fun one Optimizing Moment of Inertia for
If you are feeling ambitious, you can also try to print your model using one of the online services, such as Shapeways, or Sculpteo, or one of the workshops you can find on 3D hubs, or any other service you find (e.g. i.materialise, makexyz, Ponoko, etc.).
|Physical Simulation and Animation||A fundamental application of concepts of
geometric modeling is in animation and physically-based simulation. As you note, however, the
goal in most computer graphics applications is to achieve a believable appearance at reasonable
speed, rather than obtaining accuracy guarantees in the limit. In this project your goal is
to implement an article for physically-based animation, such as:
Real-time fluid simulation. based on the classical approach of stable fluids. Although not directly related to geometric modelling, this paper uses some of the techniques that we discuss in our course, and the approach can be implemented relatively easily. Also you can consider a more advanced version of this paper here, which is however considerably (even notoriously) harder to implement.
Cloth simulation based on the approach described in this paper. Again this is a classical paper in computer graphics, which uses some of the data structures and general techniques we discuss in our course.
Elastic Shape animation using a method based on shape matching. This is a fairly recent approach to generate plausible deformations (not necessarily physically correct) for complex geometry very efficiently. It produces some nice animations without the complexity of the very costly physically based models. The method is quite simple to implement and pretty fun to play with. Also look at the following video.
|Shortest paths on surfaces||A common operation in shape analysis consists of computing shortest paths between points on the 3d surface. In differential geometry, these shortest paths are called geodesics and computing them is closely related to finding shortest paths in graphs (e.g. using Dijkstra's algorithm). However, things get a bit more complex since shortest paths can cut through graphs. In this project, you should read the standard paper: Fast exact and approximate geodesics on meshes by Surazhsky et al., implement one of the methods mentioned in that paper (either Fast Marching, described in detail in this paper or Exact geodesics) and test it on a variety of triangle meshes.|
Alternative: Because the computation of exact geodesics is very sensitive to numerical errors, there exist several approaches for more robust approximate methods. As an alternative, you can implement one such approach, called Geodesics in Heat, based on the solution of the heat equation, and compare it to a naive method based on Dijkstra's algorithm, on shapes for which you can compute the distances analytically (patch of a plane, a sphere, etc.).
Updated 23/05/2018 by Maks Ovsjanikov.