Blog post: Developing a custom thumbnailer for Nautilus
Python NumPy GNOME Linux
MRC file thumbnail generator for GNOME desktop environments. The generator loads central slice (or just uses the image if it is a single 2D image) and applies contrast stretching. There is also a Makefile that automatically registers the generator for all .mrc files. Just a small quality-of-life improvement utility.
Fast N-dimensional numpy array tiling and merging, with overlapping, padding, and tapering support. During my PhD project, I work on semantic segmentation of 3D data that is often too big for GPU memory. After reusing same tiling (patching) functions for multiple projects, I decided to write a separate library. Tiler is memory-optimized (no copies), works on any number of dimensions, automatically computes required overlaps and padding, and can apply tapering.
Python Ulauncher Spotify API
Extension for Ulauncher, application launcher for Linux. The extension provides access to all Spotify WebAPI endpoints, allowing users to control Spotify playback on all connected devices, e.g. smartphones, smart speakers or computers. Moreover, the extension allows convenient search in Spotify catalogue of tracks, albums, artists and playlists. Two months after publishing the extension on github (at the moment of writing this, Oct 18 2020), it has ~100 monthly users from all over the world.
Python NumPy CUDA PyCUDA CuPy
NumPy CUDA-accelerated texture memory 3D affine transformations. Applying affine transformations to big 3D arrays on CPU is extremely slow. During my PhD project, I have worked with 3D template matching, where the template must be rotated hundreds of times, per each voxel of the search volume. To optimize this obvious bottleneck, I wrote a simple CUDA kernel and together with PyCUDA connections, the template matching time was reduced in the number of magnitudes (2 hours on 16-core CPU vs 6 minutes on GTX 1080Ti). Since then, the project was move to CuPy and optimized even further.