Algorithmic-Folding (WS2021/22) by Thijs Roumen and Abdullah Muhammad
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
- Thijs Roumen (instructor) : thijs.roumen@hpi.de
- Abdullah Muhammad (co-instructor): abdullah.muhammad@hpi.de
- Lukas Rambold (TA): lukas.rambold@hpi.de
- Ran Zhang (lecturer week 6,13): ran.zhang@hpi.de
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) |