mht.wtf

A blog about computer science, programming, and whatnot.

About Me

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, 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.

Blog

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.

Projects

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]