This course introduces the principles of modeling geometric objects from a mathematical and computational perspective. After introducing the basic schemes for solid modeling, and the necessary concepts in differential geometry, the course focuses on geometric meshes and related data structures and algorithms. The course includes homework and/or a final project developed either in Python or in C++ using a library for geometry processing.
Learning theoretical foundations, techniques and methodologies for the representation and manipulation of solid objects, 2D and 3D scalar surfaces and fields, and related computational techniques. Learning computational techniques for resolving geometric problems (computational geometry and geometry processing). Reference applications: computer graphics, scientific visualization, CAD systems, geographic information systems, virtual reality.
The students will learn the theoretical foundations of geometric modeling and the mathematical foundations and related algorithms for resolving basic problems in geometry processing and discrete differential geometry.
Applications of such techniques to fields such as computer graphics, animation, FEM, digital fabrication, etc. will be explored.
At the end of the course, students will be able to:
Linear algebra: vectors, matrices, linear systems
Differential calculus in several variables: partial derivatives, gradient, Laplacian, Hessian
Imperative programming: Python
Theory classes in frontal teaching. Homework/project developed autonomously by students. Assistance from the teachers.
Models of discrete geometric shapes
Curves and surfaces
Geometric meshes
Surface reconstruction
Discrete differential geometry
Geometry processing
Geodesic computations
Notes and slides made available on Aulaweb. Notes contain references to reference books and articles for further reading.
Some recommended books (available in the library):
M. Mantyla, An Introduction to Solid Modeling, Computer Science Press, 1988
M.K. Agoston, Computer Graphics and Geometric Modeling, Springer Verlag, 2005
M. Botsch, L. Kobbelt, M. Pauly, P. Alliez, B. Lévy, 2010, Polygon Mesh Processing, A.K. Peters, ISBN 978-1-56881-426-1
Ricevimento: Appointment by email: enrico.puppo@unige.it During class period appointments for groups can be set by posting on the course forum on AulaWeb.
ENRICO PUPPO (President)
PAOLA MAGILLO
CLAUDIO MANCINELLI (President Substitute)
In agreement with the calendar approved by the Degree Program Board of Computer Science.
The exam will consist of an evaluation of the homework/project plus an oral.
Homework tests consist of simple exercises to be done individually by each student, to familiarize with the geometric library.
The final project consists of a more elaborated problem to be addressed in a group of two/three students, within the same programming framework.
Homework and project can be proposed alternatively or together, depending on the class's global level of programming skills.
Homework/project will be evaluated for the correctness of the solution, efficiency, and correct use of the library.
The oral exam will include questions that can span the whole syllabus. Students are not required to remember by heart all mathematical details but should know the logical steps of all methods and be able to explain all details while consulting the slides.
This course will rely on tools from calculus in multiple variables introduced in the Calculus courses of the second year of the undergraduate program and tools from numerical analysis such as the resolution of linear systems and functional minimization.