Undergraduate Course: Computer Graphics: Geometry and Simulation (INFR11241)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Credit level (Normal year taken)  SCQF Level 11 (Year 4 Undergraduate) 
Availability  Available to all students 
SCQF Credits  10 
ECTS Credits  5 
Summary  This course introduces classic and stateoftheart methodology in computer graphics. We will focus on methods and best practices in geometry and physical simulation, which are the basic building blocks for downstream applications such as animation, industrial design, game engineering, structural analysis, AR/VR, and medical imaging. Our curriculum will cover basic representations of shapes, geometric optimization, analysis, and principles of robust digital simulation of physical scenes. The techniques employed will involve classical numerical analysis up to deep geometric learning.
The course will include programming tasks to implement a few key algorithms in geometry processing, geometric learning, and physical simulation, to the extent that they can independently run and be analysed on modest opensource data.
This course (CGGS) and Computer Graphics: Rendering (CGR) are both courses that require no previous knowledge of computer graphics. These two courses may be taken independently or together. CGGS focusses on the representation, processing, and dynamics of 3D objects in the virtual world while CGR focusses on the rendering of virtual worlds as photorealistic images.

Course description 
Delivery Method:
The course will be delivered through a combination of (1) live lectures, (2) tutorials, and (3) an online discussion forum.
Content / Syllabus:
The exact set of methods and algorithms explored in the course will vary slightly from year to year, but will include many of the following topics:
 Overview: geometry and simulation in digital applications.
 Elemental digital representations of geometry: simplicial meshes, point clouds, voxelizations, implicit functions, neural fields
 Elementary principles of discrete simulation: strain and stress tensors, force equations, time integration.
 Geometry acquisition and reconstruction: classical (leastsquares based) and modern (neuralnetwork based) algorithms.
 Discrete shape analysis: curvatures, topology, differential operators.
 Finiteelement spaces for simulation and analysis, including basic PDEs like elasticity, Stokes equation, and Poisson equation.
 Simulation of rigid bodies with collisions.
 Modern deeplearning techniques for geometry and simulation, such as physicsinformed neural networks, graph neural networks, and implicit representations (e.g., signed distance fields)
 Practical aspects of implementation and debugging in geometry: we will discuss how to identify, critically analyse, and improve performance in geometric methods, with emphasis on pitfalls and basic principles in implementation and design.

Entry Requirements (not applicable to Visiting Students)
Prerequisites 

Corequisites  
Prohibited Combinations  Students MUST NOT also be taking
Computer Graphics: Geometry and Simulation (UG) (INFR11247)

Other requirements  Enrolled students are assumed to have:
 Basic algebra and geometry (e.g., vectors, rotations, trigonometry, etc.). Also basic calculus (what are differentiation and integration)
 Recommended: Physics to understand Newton's Laws of Motion. However, there will be a video lecture 0 to cover this material.
Students should be comfortable with programming in Python.

Information for Visiting Students
Prerequisites  As above. 
High Demand Course? 
Yes 
Course Delivery Information

Academic year 2023/24, Available to all students (SV1)

Quota: None 
Course Start 
Semester 2 
Timetable 
Timetable 
Learning and Teaching activities (Further Info) 
Total Hours:
100
(
Lecture Hours 18,
Seminar/Tutorial Hours 4,
Supervised Practical/Workshop/Studio Hours 4,
Feedback/Feedforward Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
70 )

Assessment (Further Info) 
Written Exam
0 %,
Coursework
100 %,
Practical Exam
0 %

Additional Information (Assessment) 
100% coursework
Coursework will comprise programming exercises where each such exercise will comprise a single major algorithm learned in class. Students will be provided a skeleton code and an automatic selfchecker. Examples of possible exercises are:
1. Reconstruction from point clouds.
2. Simulation of multiple rigid bodies.
3. Discrete shape analysis (visualizing quantities on meshes).
4. Elastic deformation with finite elements.
5. Learning functions on meshes.
There will be a choice of two such exercises (each 40% of the grade), where a final exercise (20% percent of the grade) about fixing and debugging problems in geometry will be mandatory.
The core part of each exercise will cover about 70% of the grade, whereas possible creative augmentations to the exercise might top the grade further. The students will need to write a short single page to demonstrate their outcome on that part.
We will include an 'exercise 0' which is not formally graded (although it will have an autochecker), but that runs through the basics of using the machinery of the course and some basic computational linear algebra. The feedback will be in the form of an automatic checker, where the theoretical aspects will be discussed in the tutorial/lab sessions.

Feedback 
The students will be able to check their own work on diverse inputs and will have one exercise with specific emphasis on processing feedback from programming in geometry and simulation. 
No Exam Information 
Learning Outcomes
On completion of this course, the student will be able to:
 identify and isolate geometric problems and produce an algorithm to solve them
 implement basic methods in geometry and simulation which would be adequate for either further research or as initial knowledge to find work in the relevant industry (examples of advanced applications in the industry that use this core knowledge: 3D printing, architectural design, medical imaging, weather simulations, robotics)
 use software and tools (e.g., Python) to implement geometric algorithms and test their results
 identify, fix, and test for possible issues with geometric algorithms in a way that transcends just 'software bugs' but rather problems with a geometric context

Reading List
The course will be selfcontained with no required books;
A list of useful resources:
1. Polygon Mesh Processing (http://www.pmpbook.org/)
2. A Sampler of Useful Computational Tools for Applied Geometry, Computer Graphics, and Image Processing (https://www.routledge.com/ASamplerofUsefulComputationalToolsforAppliedGeometryComputer/CohenOrGreifJuMitraShamirSorkineHornungZhang/p/book/9781498706285#googlePreviewContainer).
3. Physics for Game Developers, 2nd Edition, By David Bourg, Bryan Bywalec.
4. Physically Based Modeling: Principles and Practice (Online Siggraph '97 Course notes) 
Additional Information
Graduate Attributes and Skills 
Knowledge integration: This course will integrate and apply knowledge from more basic courses (e.g., math) and teach basic techniques that will be useful in latter or parallel courses (robotics, vision, bioinformatics).
Problemsolving skills: The students will develop their problemsolving skills by experimenting empirically with complex algorithms and their possible issues. The 'debugging geometry' subject is particularly useful in this aspect.
Critical and analytical thinking: The students will have to deeply understand and analyse the presented methodology so they could bring it into implementation in the practicals. 
Keywords  Computer Graphics,Geometry Processing,Game Physics,Simulation 
Contacts
Course organiser  Dr Amir Vaxman
Tel: (0131 6)50 8286
Email: avaxman@inf.ed.ac.uk 
Course secretary  Miss Yesica Marco Azorin
Tel: (0131 6)505113
Email: ymarcoa@ed.ac.uk 

