Path tracer in C++

The application is based on the results of the university course Global Illumination Methods. The path tracer is written in C++ and uses OpenMP for parallelization. Some notable features are:

  • Bounding-box-based hit-tests
  • An Octree for the scene
  • Bounding volume hierarchies (BVH) for the models in the scene
  • Lambertian, metal-like and dielectric material
  • Basic texturing support
  • A simple obj reader

Path tracer example output

Archive Diff Tool

A tool to compare archives of various file types, e.g. tar, zip or directories. The main use-case for this tool was to clean up various compressed archives used as backup. Since the file types differed between the archives it was not feasible to simply use the diffing capabilities of tools like tar.

The tool is written in Python and computes the diff by comparing file hashes. It also includes a function to strip prefix paths from the output, e.g. the leading directory name present for all files. For most archive types the no explicit extraction of the entire archive is necessary, as the files can be read one-by-one. This lends itself to efficient in-memory processing.

Code on GitHub.

AR Sudoku solver

This application is a simple prototype that uses computer vision to detect a sudoku in the camera feed of an Android phone, solves the sudoku and then superimposes the solution over the image. The code is available on GitHub.

Example output of the Sudoku solver

Android app to display class substitutions

I developed this app during the time at highschool. The school had a website which lists current substitutions and changes to the course schedule. At the time, this website was very inconvenient for mobile devices, therefore I decided to develop an application which can display this plan more readable. In addition, the application allows the user to set its own courses, such that all irrelevant changes are filtered out. Later on I added some functions to show other content from the schools web site, for example the schools blog posts, directly inside of the app.

Android app for tamper-proof media timestamps

This application started out as a project at my university in a group of four students. Originally, the app used the free timestamping service This service uses the Bitcoin blockchain to create timestamps of files. Such timestamps guarantee, that the given file existed at the point it was timestamped and was not modified since. Basically, a hash sum of the file is computed. This hash value is transformed, such that it can be used as a bitcoin address. Then a transaction is performed to the given address. Now the bitcoin blockchain contains a timestamped entry with the given address (which in turn was generated from the file hash). To prove that a file has a given timestamp, it is sufficient to compute its hash value, compute the address and then check, when the transaction was performed. For more detailed information, have a look at the website.

The application ended up as a commercial product of, a startup company which provides the timestamping service at a larger scale than the academic variant. The application is no longer maintained by me.