Prof. Alberto Paoluzzi,

Ing. Enrico Marino, Ing. Federico Spini


The course aims to develop the skill needed to (a) produce geometric models of highly complex components and structures, both natural and man-made, and (b) understand the design and development of computer-aided modeling and rendering. The lectures offer some background about the geometric and mathematical techniques required, and provide insight into some main topics of computer graphics techniques, including computer rendering and geometric computing. The theory is carefully linked to practice by implementing programming projects in cutting edge graphics environments based on Python and Javascript.


Course program

Introduction to Python programming

Why Python? Getting started: basic syntax by examples.

Polyhedral geometry

Linear and affine spaces, convex sets, affine and convex coordinates, Cellular complexes: polytopal, simplicial and cuboidal complexes.

Introduction to Geometric Computing

Parametric representation. Curves, surfaces, solids. Rational and polynomial maps, tensor product patches, transfinite methods. Solid modeling. Motion modeling.

Basic computer graphics

Affine transformations, hierarchical structures and scene graphs.

Graphics rendering

2D and 3D pipelines, projections, materials and illumination models, shading, texture mapping.

Student projects

Each student is required to design and implement a personal project in the area of visual data structures and computational modeling. Projects of 2015/16 concern modeling and rendering of some famous building of Modern Architecture.

Teaching materials

  1. A. Paoluzzi, Geometric Programming for Computer-Aided Design, Wiley, 2003. (free download from uniroma3.it domain)
  2. http://www.plasm.net, https://github.com/plasm-language/pyplasm