## Computer Graphics 1, 236216 (prev. 234325)

**Objectives**

This introductory course stands at the base of the vast Computer Graphics world, whose outcomes 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

## Computing with 3D Shapes, 236329

**Taught next: Spring 2024**

slides

**Objectives**

3D models are becoming as ubiquitous as images. This course provides an introduction to the mathematical and algorithmic tools required to represent, model and process geometric 3D models.

Topics include:

- Surface modeling using triangle meshes
- Mesh generation
- Discrete differential geometry
- Mesh smoothing and simplification
- Flattening and remeshing
- Subdivision schemes
- Mesh editing and deformation

Programming exercises will help translate theoretical concepts to practical applications. A coding framework will be provided to experiment with various algorithms taught in class. There will be a few modest programming assignments and a final project (no final exam).

**Prerequisites**

Recommended but not enforced: Introduction to Computer Graphics.

Some background in geometry or computational geometry is helpful, but not necessary.

## A Matter Of Perspective, 236629

**Objectives**

This is a joint project course with the Architecture and Town Planning department, taught together with Prof. Gershon Elber and Yoav Sterman.

Each project team will include student(s) from Arch and student(s) from CS. The goal is to implement a recent geometric algorithm as a plugin for Grasshopper for Rhino, as a means for fabricating a real object using computational manufacturing techniques (such as 3D printing, laser cutting, etc.). The students will have access to the printing facilities of the Arch department, and the CGGC lab. A list of projects will be published prior to the beginning of the semester. The course will include lectures on computational manufacturing techniques, a tour of the manufacturing lab at the Arch department, and potentially additional topics.

**Prerequisites**

CS students need background in Computer Graphics and/or geometric computing.

Prior experience with geometric modeling is an advantage.

## Image Synthesis, 236373

**Objectives**

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

## Numerical Simulation for Graphics and Animation, 236628

**Objectives**

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.

**Prerequisites:**

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).

**Grading:**

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.

## Vector Field Analysis on Surfaces, 236628/236629

**Objectives**

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

**Grading:**

- 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.

## Advanced Topics in Computer Graphics, 236628

**Taught next: **

**Objectives**

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.

**Grading:**

- 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.