项目作者: alecjacobson

项目描述 :
Course material for a grad-level course in Geometry Processing.
高级语言:
项目地址: git://github.com/alecjacobson/geometry-processing.git
创建时间: 2017-06-23T14:17:53Z
项目社区:https://github.com/alecjacobson/geometry-processing

开源协议:

下载


Geometry Processing Course

Course material for a grad-level course in geometry
processing
.

Course designed by Prof. Alec Jacobson,
University of Toronto, with assistance from Klint Qinami and Prof. Eitan
Grinspun, Columbia University.

Prerequisites and dependencies

In general, the materials in this course assume that students should have
already taken Linear Algebra and Calculus.

Students should have already taken Introduction to Computer Science and should
be proficient in computer programming (in any language) and should feel
comfortable programming in C++.

All course assignments are conducted in C++, however none rely on nitty gritty
memory management or complicated object-oriented data-structures.

While knowledge of Partial Differential Equations is not required, it will
certainly be very handy for derivations. Similarly, previous experience with
Computer Graphics is not required but recommended.

All coding assignments make use of
Eigen), an open-source
linear algebra library; and libigl, an
open-source geometry processing library. Each assigment is built using
CMake.

Organization

The original run of
this course structured weekly assignments in the following order:

  1. Introduction
  2. Mesh Reconstruction
  3. Surface Registration
  4. Smoothing
  5. Parameterization
  6. Deformation
  7. Curvature

Besides the introduction, there is no strict ordering to these topics.

Each topic has its own git repository. Inside each, there is a README.md file
contains background information necessary for understanding the topic’s coding
assignment.

The
Introduction
README.md contains detailed information about compilation, file layout and
assignment protocols.

Wikipedia

The background materials link heavily to Wikipedia articles. Sometimes the
wikipedia articles relating to geomtry processing are less informative than they
could be. Edit them!

In university offerings of this course, 5% credit has been awarded to the entire
class for collaboratively improving Wikipedia’s entries on geometry processing
topics.

Are you an instructor?

There are instructor repositories for all of the assignments above. If you’re an
instructor for a geometry processing course, send an email to
jacobson@cs.toronto.edu for an invitation.

For my reference, I can add a new instructor with github id [githubid] to all solution repos using:

  1. github-add-user -u alecjacobson -r $(echo alecjacobson/geometry-processing-{introduction,mesh-reconstruction,registration,smoothing,parameterization,deformation,curvature}-solution | tr ' ' ',') [githubid]

Corresponding solution (private) repos are located at:

  1. Introduction
  2. Mesh Reconstruction
  3. Surface Registration
  4. Smoothing
  5. Parameterization
  6. Deformation
  7. Curvature

Homework Submission via GitHub Pull Requests

When used for a formal course, it is intended that students fork each
assignments repository, commit their solutions to their own forks, and then
submit their assignment via pull request to the public repo of the assignment.

More details on this structure are found on Alec’s
weblog
.

Honor System

Since pull requests are public, students will be able to see each other’s
completed solutions as soon as their posted. Students will not cheat because
they are honorable 👍.
Actually, since most of the assignments are standard
algorithms there are many implmentations online already. In particular, libigl
contains ready-made implementations using Eigen with similar function APIs. Why
cheat from other students when you can cheat from the professor? But, really,
why cheat?