Copying code (either from other students or from external sources) is strictly prohibited! We will be using automatic anti-plagiarism tools, and violating this rule will lead to expulsion from the class. Late submissions will generally not be accepted. In case of severe illness or emergency, please notify Daniele and provide a relevant medical certificate.
For each assignment, you will use the geometry processing library libigl, which includes implementations of many of the algorithms presented in class. In particular, you will be using the python bindings of igl.
The libigl
library includes a set of tutorials, an introduction to which can be found in the two previous links. You are advised to look over the relevant tutorials before starting the implementation for the assignments; you are also encouraged to examine the source code of all the library functions that you use in your code to see how they were
implemented.
No libraries apart from libigl
, numpy
, meshplot
, and scipy
are permitted unless permission is granted in advance.
For every assignment, you should provide a report in the form of a runnable Jupiter notebook including results for all steps described in the assignment. Please also add illustrations and text as needed to explain what you did. In addition to the notebook, you should also attach an html version of the notebook, exported using nbconvert
.
*** Warning: You must use Python 3.12 or older; Python 3.13 is not yet supported by libigl ***
First set up a virtual environment
mkdir gp25
python3.12 -m venv gp25
source gp25/bin/activate
Then install igl
, meshplot
, and jupiter
trough pip (do not use conda for igl, as it is outdated)
pip install libigl
pip install git+https://github.com/skoch9/meshplot/
pip install pythreejs
pip install notebook
Launch the lab
gp25/bin/jupyter notebook
If you see
Renderer(camera=PerspectiveCamera(children=(DirectionalLight(color='white', intensity=0.6, position=(-0.016860…
<meshplot.Viewer.Viewer at 0x136ed5d90>
instead of a 3D view, follow the instructions here to install pythreejs: https://pythreejs.readthedocs.io/en/stable/
pip install pythreejs
jupyter labextension install jupyter-threejs