/Algorithmic-Folding

The code base for the Algorithmic Folding class (Winter Term 2021/22)

Algorithmic-Folding (WS2021/22) by Thijs Roumen and Abdullah Muhammad

2022_01_31 banner folding course_1

objective: implement and study folding algorithms applied to linkages (1D), origami (2D), and polyhedra (3D). We will go through the high level algorithms as well as practical in-class hacking assignments and learn about applied engineering examples. You will furthermore learn how to represent some intractable high dimensional folding problems in lower dimensions to then leverage universal and generic algorithms. You will learn how folding algorithms formed the backbone of several research projects at our lab in in the broader HCI and graphics field. And finally, you will learn how to extend what is known by running a small in-depth research project on one of the lectures, advised by the class instructors.

description: Every week you will code up a simple program in python through mostly in-class assignments, continued into homework assignments. The homework serves as a self-check and we provide full solutions in the code base. We are fully available to help with this as our objective is not to confirm that you are great students (we know that), but to help you get the most out of the learning experience. The in-depth assignment gives you an opportunity to do a little research beyond the paved roads of knowledge, every lecture contains an example in-depth assignment, but you are free to propose your own too. The instructors and TA are fully available to help you succeed at this. We are generally interested in the outcomes too! We can help code things up and create use cases etc and if you are excited to pursue the project beyond the lecture period, we will collaborate to turn this into an actual research paper or practical open source software tool!

mailing list: please sign up to this mailing list

pre-requisites: Master level course, heavily building on Maths 1+2 and Programming Technology 1+2

language: python

dependenies: (please install before the lectures to maximize flow, contact a TA should you have any problems) pip install requirements.txt

  • jupyter notebook
  • scipy
  • numpy
  • sympy
  • networkx
  • itertools
  • shapely
  • openmesh
  • drawSVG
  • conda
  • igl conda install -c conda-forge igl
  • meshplot conda install meshplot

deliverables and grading: weekly homework assignment (ungraded, solution provided) a mid-term (30%) and final exam (70%) and in in-depth project in which you dive deeper into any of the lecture's topics. The in-depth assignment is evaluated through a question about your approach and findings as part of the final exam

workload: weekly 3hr time slot, in which the first slot is lecture + in-class coding and the second slot for homework with the instructors around. Some weeks (indicated in the schedule) are 3hr lecture only.

further reading: Geometric Folding Algorithms by Erik D. Demaine and Joseph o' Rourke is a fantastic standard work in this discipline and Origami Design Secrets, mathematical methods for an ancient art by Robert J. Lang takes a deep dive into the Tree Method and origami specific content

contact information: no official office hours--contact by email, we are happy to set up extra zoom calls for support anytime

coding logistics: this repository contains the code base for all assignments in the course. Use the individual branches or the links in the schedule to be redirected to the repository of the week (git checkout <branchname>). Please pull the branch right before each lecture starts so we are all using the same up-to-date code base (git pull)

schedule, slides and code repositories: [COVID] unfortunately from December on, our lecture takes place via zoom: Meeting ID: 910 1917 9704 Passcode: 56942491

week date content code branch notes
1 Mon 01.11.21 vertex unfolding.ppt + homework code (soon) in repo swap with lecture 2 again next year
2 Mon 08.11.21 strip folding.ppt + homework folding/01
3 Mon 15.11.21 edge unfolding.ppt + homework unfolding/01
4 Mon 22.11.21 unfolding+lasercutting.ppt + homework unfolding/02
5 Mon 29.11.21 general unfolding.ppt + homework unfolding/03
6 Mon 06.12.21 developable surfaces.ppt double slot developable_surface
7 Mon 13.12.21 efficient origami (tree method).ppt + homework folding/02
8 Mon 20.12.21 mid-term exam
9 Mon 10.01.22 linkage folding (kempe's universality).ppt + homework linkages_kempe
10 Mon 17.01.22 rigidity theory.ppt double slot rigidity/01
12 Mon 24.01.22 tensegrities.ppt + in-depth assignment rigidity/02-tensegrities
13 Mon 31.01.22 multistable mechanisms.ppt and simulation.ppt double slot multistable/01
14 Mon 07.02.22 Programming Shape Change.pdf and AutoOrigami.pdf by Yasaman Tahouni and Bio-inspired 4D Printing.pdf by Tiffany Cheng (ICD, University of Stuttgart)
15 Mon 14.02.22 Final Exam
16 Mon 28.02.22 in-depth projects due (demo session)