A blog about computer science, programming, and whatnot.

About Me

I'm Martin, and I'm currently an algorithm engineer at I was previously a PhD student at IST Austria in Bernd Bickel's group working on computational design and fabrication of soft robots. You can find my CV here.

I have broad interests within computer science, including: algorithms (approximation, parameterized, probabilistic), compilers and runtimes, comput­ational geometry, concurrency, geometry processing, computer graphics, high performance computing, inter­active computing, numeric algorithms, operating systems, pro­gramming languages, systems programming, and probably much more.

In computing at large I also enjoy 4k monitors, free and open source software, game development, mechanical keyboards, typesetting systems, and thinking and writing about it all. Outside computing, I appreciate beer, cooking, music, pizza, reading, self-sustain­ability, whisky (both the -y and -ey kind), wool clothing, and more.


I have a technical blog in which I try to write on topics I care about.

Other Pages

Here's a list of other pages on this site.


Here's a list of projects and other things I've done, ordered by date.

Object Deformation for Molding

1 Jul 2019

When molding objects with few mold pieces, a problem is that the casted model cannot have any overhangs since the mold itself would be impossible to remove when the casted piece is cured. In this project, I adapted the ARAP deformation algorithm of libigl to weight for this moldability constraint.

Supervised by Bernd Bickel

git repository available.

Algorithms for Persistent Homology

20 Feb 2019

I did an experimental comparison of two variants of the well-known matrix reduction algorithm in computing persistent homology. The algorithm computes the liveness of holes of a simplicial complex; for the alpha complex this correspond to the holes that are created and filled by growing balls of a radius around each point in a point cloud.

Supervised by Herbert Edelsbrunner.

git repository is available, and continues to see some development.

Relaxed Scheduling of Disjoint-Set

4 Dec 2018

Investigated expected number of collisions in scheduling random Disjoint-Set operations, supervised by Dan Alistarh.

Schedulers can use a relaxed priority queue for ordering its tasks; the relaxation makes out-of-order pops possible. Looking at a Disjoint-Set data structure, we want to know the expected number of collisions, where the out-of-ordered popped operation has a dependency on another operation before it in the queue.

Writeup available, although in a rough state.

Master Thesis: Multithreaded-Aware Garbage Collector for Rust

13 Jun 2018

Master’s Thesis at Norwegian University of Science and Technology. Implemented a tracing garbage collector for Rust, with emphasis on multithreaded use-cases.

Supervised by Magnus L. Hetland, and co-supervised by Dan Alistarh of IST Austria.

Both the git repo and the thesis are available.

Course notes for Advanced Data Structures

23 Jul 2017

I wrote a collection of course notes for the course Advanced Data Structures at ETH Z├╝rich, in the spring of 2017. Most of the lectures were either loosely or firmly based off of Eric Demaines MIT course 6.851 of the same title.

[pdf] [LaTeX source]