Assignment #1:


Submission date: Friday, Sep 30 2016, 23:59


Learn to use a real-life medium size programming environment & data structure for meshes.


  1. Experiment with the GUI and the mesh
  2. Perform simple data-structure operations.
  3. Experiment with mesh subdivision


The assignment consists of two components: installation of Cartel and coding.


Reading the documentation on the Cartel Website is highly recommended to get a handle on the code structure. Your algorithms will be coded as functions directly into the EditMesh class, and called via key bindings in the ControlState class.


Your function should take only necessary input parameters, and perform one iteration of the algorithm on the loaded mesh. The algorithm should work correctly if run multiple times.

BONUS: You can get extra marks for implementing any of the following options (bonus at the discretion of the marker). For the description of each option, please refer to online literature on subdivision.


A small set of inputs to debug your algorithm can be found here. It contains coarse meshes with and without boundary. More meshes can be downloaded from, e.g. aim@shape repository.
Please note that the provided Cartel software only included functionality to load OBJ files at the moment, so meshes in any other format will require conversion.


Send an email to Giorgio ( with the subject "[CPSC 524] Assign1" containing a zip file with your source code, do not include any binaries.

All emails should be received by Friday, 9/30/2016, at 23:59.

All assignments will be marked  in person, using a schedule which will be published on Piazza. Please make sure to register for a marking spot. Please do not touch your code between submission deadline and marking session.

Late assignments policy:You have 3 grace days total for all of your assignments, you can use them whenever you want during the course.

This assignment is 15% of your final grade.

Good luck!