Skip to content

LukeMcCulloch/Python-discrete-differential-geometry

Repository files navigation

Python discrete differential geometry

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

TODO: document in depth here.

Installation

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!

About

Discrete differential geometry in Python. Derived from CMU and Caltech Codebases and Published papers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published