**Information**

- Thursday 4:30-7:10pm
- Course Homepage (https://github.com/jmlien/DGP/)

**Instructor**

- Jyh-Ming Lien (http://cs.gmu.edu/~jmlien)
- jmlien@cs.gmu.edu
- Office: Online Meetings Only
- Office hours: By Appointments

**Course Scope**

In this seminar class we will explore **the key concepts and core techniques in geometry processing (GP)** and **its recent developements that exploit machine learning (ML) methods and large collections of 3D data**. Basic knowledge of geometry representation and computation is needed and
some basic knowledge of ML and deep learning is preferred.

The first half of the semester will focus on the introduction to the classic problems and their tranditional methods in GP. Polygon Mesh Processing (http://www.crcpress.com/product/isbn/9781568814261): "Geometry processing, or mesh processing, is a fast-growing area of research that uses concepts from applied mathematics, computer science, and engineering to design efficient algorithms for the acquisition, reconstruction, analysis, manipulation, simulation, and transmission of complex 3D models. Applications of geometry processing algorithms already cover a wide range of areas from multimedia, entertainment, and classical computer-aided design, to biomedical computing, reverse engineering, and scientific computing."

Building on the concepts that we learned in the traditional GP, the second half of the semester will revisit a subset of the classic GP problems (see topics below) with the new ML tools such as graph convolutional networks and multi-layer perceptron neural nets. The materials will be drawn from the recent publications.

**Disclaimer**: This is not an AI/ML course; this class may only be classified as a Visual Computing course.

**Prerequisites**

- Working knowledge of C/C++/Python
- In addition, you should already know:
- OpenGL for graphical display
- Basic data structures and algorithms for geometry representation
- Basic ideas of Meachine learning and Deep learning.

**Class Format**

This is a special topic seminar class that will consists of 50% lectures and 50% student presentations. Lectures will be delievered in recorded videos and only key concepts in the lecture notes will be discussed during the class time. Quizzes will be given during the class time to test your knowledge on the topics covered during and before that week. The second half of the semester will mostly consist of student presentations. There will be four progamming assingments (PAs). Two PAs will be from the tranditional methods in GP and two from the modern ML approaches. It is preffered that you have access to modern GPUs (e.g. high-end Nvidia GPUs). Alternatively, you can work on your assignment via Google Colab or other clould-based computing services.

**Required Textbook**

There is no required textbook.

Recommanded books/readings for classic methods in GP:

- Polygon Mesh Processing by Mario Botsch, Leif Kobbelt, Mark Pauly, Pierre Alliez, Bruno Levy, 2010, ISBN # 978-1-568-81426-1
- Geometric and Solid Modeling by Christoph M. Hoffmann. It appears that you can download the entire book from the author's website.
- An Integrated Introduction to Computer Graphics and Geometric Modeling by Ronald Goldman, ISBN: # 978-1-439-80334-9
- Computational Geometry: Algorithms and Applications by Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Cheong, third revised edition, Springer-Verlag, 2008. ISBN # 978-3-540-77973-5. You should be able to view the entire textbook from a GMU IP address.
- Computational Geometry in C by Joseph O'Rourke (Cambridge University Press; 2008 edition, ISBN # 978-3-540-77973-5).
- An Introduction to Solid Modeling by Martti Mantyla, Computer Science Press, College Park, MD, 1988.

Reading materials and tools for Deep GP will be posted throughout the semester.

**Grading**

- Programming Assignments (4x) 40%
- Presentations (2~3x) and Participation (quizzes) 30%
- Course project 30%

**List of Topics; The topics with * will be revisited in the second half of the semester (tentative)**

- Mesh Smoothing
- Mesh Simplification
- Mesh Reconstruction*
- Mesh Repair*
- Mesh Registration*
- Mesh Parameterization*
- Mesh Decomposition/Meshing*
- Distance Field*
- Mesh Deformation
- Remeshing
- Mesh boolean opeartions
- Continous collision detection
- Penetration depth estimation
- Swept volume, offset, Minkowski sum*

**Policies**

All required assignments should be completed by the stated due date and time. The total score of your finaly project score will be 10 points less every extra day after the due date (i.e., the 100 total points will become zero after 10 days pass the due date). You will be given 0 point for missing your own presentation.

**Academic Honesty**

Both the University and the Computer Science Department have honor codes you are expected to adhere to. We will be reviewing these in class, but more information about the university honor code can be found here: https://oai.gmu.edu/mason-honor-code/full-honor-code-document/ and the deparment's honor code can be found here: http://cs.gmu.edu/resources/honor-code/. You are bound by these honor codes.

Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will result in a case for the Honors Committee. Any code which is presented in class or provided to you as part of the project may be included in your programs.

General discussion of the project (e.g. what is the project? what does X mean in the project description? etc.) is encouraged. However, programming projects are considered individual efforts, therefore no sharing of code and/or project solutions will be allowed with anyone except the TAs or the professors. Student projects will be manually and automatically assessed for cheating. **You may not copy nor rewrite any other individual's code, pseudocode, or algorithms, that is not your own, including resources from Internet.**

You may not use any Internet resources to create code or algorithms, besides the textbooks, the slides, and Piazza, unless otherwise specified. However, you are free to look up the syntax errors your encounter online, to gain an understanding of what the syntax error means. The projects we're doing this semester can be directly solved using techniques discussed in class, and no outside material is needed unless otherwise noted.

**It is your responsibility** to lock your computers with a password, to not post your code to websites like Pastebin that are publicly accessible, to guard your USB drives and computers, to not upload your files to someone else's computer, etc. You will be liable for any access gained to your code.

**Campus Resources**

- Computer Labs - there are several freely available computer labs on campus
- Office of Disability Services
- Counseling and Support Services
- English as a Second Language (ESL) Writing Support

**Disability Statement**

If you have a learning or physical difference that may affect your academic work, you will need to furnish appropriate documentation to the Disability Resource Center. If you qualify for accommodation, the DRC staff will give you a form detailing appropriate accommodations for your instructor.

In addition to providing your professors with the appropriate form, please take the initiative to discuss accommodation with them at the beginning of the semester and as needed during the term. Because of the range of learning differences, faculty members need to learn from you the most effective ways to assist you. If you have contacted the Disability Resource Center and are waiting to hear from a counselor, please tell me.