I'm Martin, and I'm currently an algorithm engineer at vind.ai. 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, computational geometry, concurrency, geometry processing, computer graphics, high performance computing, interactive computing, numeric algorithms, operating systems, programming 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-sustainability, whisky (both the -y and -ey kind), wool clothing, and more.
Before quitting grad school I wrote up two proposals for projects I found interesting. I won’t work more on either project in the near future, so I’m putting them out here for anyone interested.
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.
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.
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
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’s Thesis at Norwegian University of Science and Technology. Implemented a tracing garbage collector for Rust, with emphasis on multithreaded use-cases.
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.