HOME

Software

Table of Contents

An overview over published software. I try to build this list from bigger projects to smaller ones, but every project (or experiment) led me to many new ways of thinking and new techniques. This is by no way complete and other smaller experiments were carried out in-between (also, I'm mostly leaving standardized coursework out of this list).

Para{C,Q}ooba: Modular distributed solving framework for SAT and QBF

Paracooba is my Master's Thesis project.

QuAPI

QuAPI adds assumption-based reasoning support to any given SAT or QBF solver binary by instrumenting their read() calls through LD_PRELOAD. It can be used as a standalone CLI tool or as a library for other solver authors.

Distrac (Distributed Tracing)

Distrac is a distributed tracing program implemented in C++ that links different instances of a program together by causal dependencies of messages the instances exchange. It was developed during my Master's Thesis.

HARPTech and the VERNER Rover

Before my studies, I was part of the HARPTech group, which was a group of five interested students who wanted to construct an autonomous rover. The autonomous did not work out, but we built a very nice six-wheeled rover nontheless. I did the software, which was fully event-based and supported sending events from a base-station to the rover platform.

My Bachelor's Thesis was then built on checking the steering kernel of this system, meaning if the wheels would react correctly to all given inputs. This was done by translating the Python code running on the rover into SMTLIB-2 formulas, which were then checked using SMT-solvers. The code for this is also on GitHub as RVerify.

KoradControl

KoradControl is a small utility program written in C++ with the Asio library to control Korad desktop DC power supplies, mainly the Korad KA005P. I firmly believe simplistic CLI tools have great value, so I wanted to try to be as primitive as possible, while providing more features than commonly used GUI tools.

SFML-Sidescroller

My first game! It is old and I doubt it can be still be compiled easily, but it is online in its own repository. It was integrated into the Pigaco system, with which I tried incrementally built a Linux-based gaming console, including window-management and compositor.

Pigaco

The Pigaco project was meant to provide libraries to communicate with a shared memory input-controller that relays inputs from USB-conntected Arduinos to games as fast as possible. This worked really well and (looking back) it is amazing how far one can come with these techniques.

With Valve's Steam Deck being a great success, I believe the design direction of Pigaco was exactly right - although I was too inexperienced back then to see how far-reaching the involved technical resources were and how much would have to be invested for this system to work nicely. It was fun for demos though.

Author: Maximilian Heisinger

Created: 2023-06-25 Sun 14:49