CODE 80412 ACADEMIC YEAR 2024/2025 CREDITS 6 cfu anno 2 COMPUTER SCIENCE 10852 (LM-18) - GENOVA 6 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA 6 cfu anno 1 MATEMATICA 9011 (LM-40) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW 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. AIMS AND CONTENT LEARNING OUTCOMES 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. AIMS AND LEARNING OUTCOMES 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: Understand the basic concepts in geometric modeling. Know the basiscs of discrete differential geometry. Resolve geometry processing problems in Python, with the aid of a programming library including the related numerical programming tools. Develop practical applications related to the topics of the course. PREREQUISITES Linear algebra: vectors, matrices, linear systems Differential calculus in several variables: partial derivatives, gradient, Laplacian, Hessian Imperative programming: Python TEACHING METHODS Theory classes in frontal teaching. Homework/project developed autonomously by students. Assistance from the teachers. SYLLABUS/CONTENT Models of discrete geometric shapes a general framework for shape modeling parametric representaitons boundary representations: parametric patches and geometric meshes implicit representations Curves and surfaces piecewise polynomial curves and surface: definitions and properties subdivision curves and surfaces: definitions and properties subivision schemes in 2D and 3D Geometric meshes topological entities and relations data structures for surfaces discretized as triangle meshes operators for manipulating cell and simplicial complexes Surface reconstruction normal estimation mesh reconstruction with implicit methods Discrete differential geometry parametric representation of lines and surfaces: tangent vector ad plane, normal, Jacobian matrix, Gauss map, directional derivatives first and second fundamental forms principal curvatures, shape operator, curvature tensor, lines of curvature, umbilicals functions on surfaces: gradient and Laplace-Beltrami operator discrete estimation of differential properties on meshes Geometry processing smoothing and fairing parametrization mesh deformation Geodesic computations geodesic lines and distances on surfaces algorithms for estimating shortest paths and distance fields applications to surface decoration splines on surfaces RECOMMENDED READING/BIBLIOGRAPHY 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 TEACHERS AND EXAM BOARD ENRICO PUPPO 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. CLAUDIO MANCINELLI Exam Board ENRICO PUPPO (President) PAOLA MAGILLO CLAUDIO MANCINELLI (President Substitute) LESSONS LESSONS START In agreement with the calendar approved by the Degree Program Board of Computer Science. Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION 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. ASSESSMENT METHODS 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. Exam schedule Data appello Orario Luogo Degree type Note 21/02/2025 09:00 GENOVA Esame su appuntamento 01/08/2025 09:00 GENOVA Esame su appuntamento 19/09/2025 09:00 GENOVA Esame su appuntamento FURTHER INFORMATION Pre-requirements 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. Agenda 2030 - Sustainable Development Goals Quality education Gender equality Decent work and economic growth Industry, innovation and infrastructure