Computer Graphics 1, 234325

Computer Graphics 1
Taught next: Winter 2020/2021

This introductory course stands at the base of the vast Computer Graphics world, whose outcome we see in medical applications, industrial modeling, entertainment and many other fields.
Topics include:

  • Basic rendering techniques
  • Introduction to OpenGL
  • Color theory
  • Shadowing
  • Simple animation techniques
  • Selected advanced topics

Digital Geometry Processing, 236329

Digital Geometry Processing
Taught next: Spring 2021

Recent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models.
This course covers some of the latest developments in geometric representations, modeling and processing.
Topics include:

  • Surface modeling based on triangle meshes
  • Mesh generation
  • Mesh fairing and simplification
  • Parameterization and remeshing
  • Subdivision schemes
  • Mesh editing and deformation

Programming exercises will help translate theoretical concepts to practical applications.
A code framework will be provided that allows to experiment with various algorithms without having to bother about software infrastructure.
There will be a few modest programming assignments, and no final exam.

Introduction to Computer Graphics, experience with C++ programming.
Some background in geometry or computational geometry is helpful, but not necessary.

Image Synthesis, 236373

Image Synthesis

The course focuses on advanced topics in computer graphics and specifically photo-realistic rendering.
Topics include:

  • Basics of sampling theory and applications to image manipulation
  • Ray tracing
  • Radiosity
  • Photon mapping
  • Selected advanced topics in volumetric graphics

Advanced Topics in Computer Graphics, 236628


Taught next:

In this seminar we will discuss recent advances in Computer Graphics, by critically analyzing recent research papers.
Topics include any paper presented in SIGGRAPH 2018.


  • Each student will present two papers from the latest SIGGRAPH conference, and submit a critical review of the papers they are presenting
  • Grading will be based on your ability to critically analyze the paper, compare it with the state-of-the-art and discuss the research results.
  • Final grade: 50% presentation, 30% written critical review, 20% class participation.
  • Attendance is mandatory.
  • Prerequisites
    Numerical Algorithms, Optimization, and one or more courses in Computer Graphics, Geometry Processing or Computer Vision are required.
    Strong mathematical background is a bonus.

    Vector Field Analysis on Surfaces, 236628/236629

    Seminar on Vector Field Analysis on Surfaces
    Taught next:

    In this seminar you will be introduced to the analysis and design of vector fields on discrete surfaces, by reading and discussing recent research papers on the topic.
    The first few meetings will be dedicated to some basic background about vector calculus, and vector calculus on surfaces.
    Topics include:

    • Vector field representations
    • Smooth vector field design
    • Vector field visualization
    • Vector field simplification
    • Applications: texture synthesis
    • Applications: curvature estimation
    • Applications: quad meshing
    • Applications: fluid simulation


    • Each student will present a research paper in the seminar.
    • The presentation is 50-70 minutes, and should include enough details to understand the paper, and where it stands in the context of other papers. You will need to read the paper carefully, implement a simplified version of it (e.g. one of the algorithms suggested), and discuss its pros and cons. Grading will be based on your ability to analyze the paper, and discuss the research results.
    • Final grade: 60% presentation, 40% partial implementation of the paper.
    • Attendance is mandatory.
    • Prerequisites
      Some background in geometry is helpful, but not necessary.

      Numerical Simulation for Graphics and Animation, 236628

      Numerical Simulation for Graphics and Animation

      A practical course on the various methods, challenges and applications of modelling the motion of physical objects and the evolution of physical processes in the computer, with a focus on the kinds of phenomena one encounters in graphics and animation. We will work through a number of interesting examples; from their mathematical modelling, to the discretisation and numerical solution of the resulting model, all the way to the visualisation and study of the results.
      Potential topics, with examples, include:

      • Particle systems: flame simulation, formation of snowflakes
      • Rigid-Body Motion: Quadcopter simulation, Realistic spaceship flight
      • (Inverse) Kinematics: Deformable & tearable cloth, Ragdoll physics
      • Elliptic PDEs: Buckling of bars and shells, Radiosity, Fluid/gas flow through a maze
      • Parabolic PDEs: Heating things up, Tiger stripes and giraffe spots formation
      • Hyperbolic PDEs: All kinds of waves!

      Most of the algorithms we will use can be found in Numerical Recipes: The Art of Scientific Computing by W. H. Press et al., Cambridge Uni Press.

      Being comfortable with Linear Algebra (vector spaces, matrices, linear systems), Analytic Geometry (coordinate systems, equations of lines, circles) and Calculus (derivatives and integrals, preferably in many dimensions). A familiarity with linear systems and differential equations would be useful, but is not required. We will work with a relatively small subset of Python, so a basic knowledge of the language would be useful. A working knowledge of Matlab or Mathematica is not required but might be helpful with the exercises.
      Some related courses are: Intro to Computer Graphics, Numerical Analysis, Visualisation and Animation (EE).

      A number of exercises/mini projects will be suggested based on each topic, typically asking for the numerical simulation of a phenomenon via a given algorithm and the visualisation of the result.
      The final grade will be a combination of:

      • Solving a certain number of the exercises.
      • Presenting in the class an animation video based on one of the exercises.

      The language of instruction is English.