Discrete Differential Geometry Processing in Python
Notes: The included "assignments" demonstrate some initial applications of discrete differential geometry and the exterior calculus to geometric processing tasks. I basically set about doing the homework from Keenan Crane's discrete differential geometry course(s). They also serve as an introduction to computational simulation of simple PDE's on a manifold. This stuff resides in various places at Cal tech and Carnegie Mellon. See: here and pdf discrete differential geometry book for starters.
To run these little python demos, you will need methes, e.g. the Stanford bunny. For testing my code, it's easiest to pull my mesh repo and situate them together at the same level in a directory. "My" meshes are here
Requirements beyond NumPy, SciPy, Matplotlib:
pip install euclid pip install plyfile pip install pyOpenGL
pyOpenGL GLUT issue: https://stackoverflow.com/questions/26700719/pyopengl-glutinit-nullfunctionerror
Linux Users can just install glut using the following command:
$ sudo apt-get install freeglut3-dev
Most critical, you need suitsparse for fast inversion of sparse matrices in order to take advantage of some of the solver forumulations:
get an up to date suitsparse here
Installing scikit-sparse requires:
Python
NumPy
SciPy
CHOLMOD
On Debian/Ubuntu systems, the following command should suffice:
$ apt-get install python-scipy libsuitesparse-dev
Then just:
$ pip install --user scikit-sparse
Now you might want my meshes to run the assignments with the meshes stipulated in the inputs:
git clone https://github.com/LukeMcCulloch/meshes.git
That's it!