This is the course blog for the TU Berlin course in the winter semester 2019/2020.

Course Times
Wed. 12-14 MA 749
Thu. 12-14 MA 645

Olga Diamanti – diamanti_at_math.tu-berlin.de
Marcel Padilla – padilla_at_math.tu-berlin.de

Office Hours
Thursdays 14:00-16:00 at MA 823.

New posts will arrive below this sticky post. Please stay up to date with the announcements on this post. There may be changes to the schedule during the course and they will be posted here.


  • 11.03.2022: New download folder link for all the files! (There was an issue with the cloud service.)
  • 30.01.2020: All the notes for the course material have been posted either in the downloads folder or as links in the course progress post.
  • 30.01.2020: The final project topics are now online. Click this page for further information.
  • 09.01.2020: Practical Implementation Homework 05 is now online. Click here to flatten. (Due Tuesday, January 28.)
  • 20.12.2019: Some candidate papers for the implementation project have been (tentatively!) posted. See the downloads folder.
  • 20.12.2019: Pen & Paper Assignment IV has been posted.
  • 19.12.2019: Practical Implementation Homework 04 is now online. Click here to splish splash.
  • 04.12.2019: Pen & Paper Assignment III has been posted.
  • 28.11.2019: Practical Implementation Homework 03 is now online. Click here and burn the bunny.
  • 20.11.2019: Practical Implementation Homework ist now online. Get creative and click here.
  • 15.11.2019: Pen & Paper Assignment II has been posted.
  • 07.11.2019: The first practical implementation homework is now online! Click here.
  • 24.10.2019: Pen & Paper Assignment I has been posted. In preparation for next week’s Houdini tutorials, please install Houdini as described here.
  • 24.10.2019:  You have been granted access to author blog posts on this website. If you have any questions regarding the course, feel free to write a post! (If you have not been received an invite, please send us your email address).
  • 23.10.2019:  Important: Due to administrative restrictions, the course rules have been updated.
  • 17.10.2019:  Important: Please send us your email address so we can compile a mailing list and notify you of important news / website updates.
  • 17.10.2019:   Click here to follow the lecture progress.
  • 17.10.2019:   The course rules (grading / homework / examinations) can be found here.
  • 17.10.2019:  The first theory homework will be handed out during the week of October 21, the first implementation homework during the week starting October 28.
  • 17.10.2019:  Lecture notes can be found in the downloads.
  • 15.10.2019:   As Peter Schroeder is a visiting Professor from Caltech, some weeks will have two lectures and some weeks will have two tutorials.

Tutorial 06: Entropy and Waves

In today’s tutorial, we will mathematically prove that we will all die and be forgotten and then simulate this. We will then play with waves.

This image has an empty alt attribute; its file name is waves1.gif
Waves on a planet.

Please check out the download folder and check out the .hip file of this tutorial. It will contain a functional DEC build with a heat flow example. I have noticed that many of you used for loops to build the sparse matrix. The file shows that this is not necessary.

Continue reading Tutorial 06: Entropy and Waves

Tutorial 04: Volumes and Python (Without Snakes)

Hi! In this tutorial, we will learn the fundamentals of volumes and also get started with python coding! That is an incredible amount of fun!


The most intuitive 3D mesh to fill up space is to dissect space into many little cubes. Such a box of dissected cells can be placed using the volume node.

This image has an empty alt attribute; its file name is image-8.png
What a volume looks like. It is Invisible by default.
This image has an empty alt attribute; its file name is image-9.png
A visualization of the cells inside the volume.

Each cell can now carry an attribute. Normal meshes fill up surfaces only but 3D mesh fills up volume.

Continue reading Tutorial 04: Volumes and Python (Without Snakes)

Tutorial 01: Getting Started with Houdini

Let us get started with Houdini!

You will soon be able to render this.

I will do my very best to make your entry as smooth as possible. It will be like sitting in a cockpit with the fear of crashing the plane by hitting the wrong button but rest assured that we will bit by bit learn to understand the software. It will be worth it and you will get a nice insight behind the scenes of Hollywood production on the way.

Continue reading Tutorial 01: Getting Started with Houdini

Lecture Progress

  • Week 1: lectures only ( October 16 – 17 )
    • Planar curves. Parametrizations, geometric quantities, length variation, turning angles. Discrete planar curves. Discrete arc length, curvature.
    • Discrete space curves. Frames. Frenet-Serrat formula. Smooth surfaces. Metric. Curvature.
    • Lecture notes
  • Week 3: tutorials only ( October 30 – 31 )
    • Houdini Workflow, lights, camera, rendering.
    • Working on common examples.
  • Week 7: lecture and tutorial ( November 27 – 28 )
    • Discrete Exterior Calculus, Take Two: the dual complex. See also paragraphs 1-6 and 9 from this publication on DEC by Desbrun et al.
    • An example of the complications in building exterior derivative operators in the presence of boundaries. Using circumcentric subdivision one can identify ‘dual edges’ with ’90 deg. rotated edges’ and build a ‘boundary operator for dual 2d-cells’ $\partial_2^*$ as the transpose of the primal boundary operator for edges $\partial_1$, with the following relation $\partial_2^*=-\partial_1$. However such a relation cannot be set up for $\partial_1^*$  since one would need to add the midpoints of the boundary edges as vertices, and the sizes of $\partial_1^*$ and $\partial _2^T$ would no longer match.
  • Week 8: lectures only ( December 4 – 5 )
    • Whitney Elements.
    • Differential Equations on Manifolds. Physical Units.
    • The Heat Equation – Derivation and properties of the solution.
    • Finite Elements: Weak and Strong formulations of the heat equation.
  • Week 9: lectures only ( December 11 – 12 )
    • Discrete Finite Elements. Time Discretization/Stability. Poisson equation.
    • Conformal maps.
  • Holidays: Please be happy!
  • Week 12: No lectures ( January 15 – 16 )
  • Week 13: No lectures ( January 22 – 23 )
  • Week 15: Tutorials only ( February 5 – 6 )
    • Boundary conditions: Dirichlet and Neumann
  • Week 16: Tutorial and Project presentation ( February 12 – 13 )