Tuomas Siipola Articles Projects

Articles

Aligning point patterns with Kabsch–Umeyama algorithm

Description and implementation of Kabsch–Umeyama algorithm for finding the optimal translation, rotation and scaling between two paired sets of points.

Chroma subsampling and JPEG sampling factors

Comparing different ways of notating chroma subsampling and trying to understand how these are related to JPEG sampling factors.

Comparing NumPy arrays

Short guide for comparing equality of different types of NumPy arrays.

Converting rotation matrices to angles

Tutorial on converting rotation matrices to angles in two and three dimensions.

Distinguish local and remote terminals

Tutorial on using colors to quickly distinguish terminal windows with active SSH sessions from local sessions.

Drawing musical keyboards

Studying different ways of drawing musical keyboards in music software.

Exif orientation in different formats

Investigating how JPEG, WebP, PNG and AVIF store Exif metadata and do web browsers support Exif orientation in all these formats.

File formats in Web Audio API

Tutorial on content negotiation in Web Audio API including recommendations on different audio formats.

High-quality photograph datasets

Introducing datasets of high-quality photographs based on Wikimedia Commons.

Hyphenation in React Native

Tutorial on hyphenating text in React Native applications.

Image processing basics in the browser

Tutorial on loading images, manipulating pixel data and displaying the results in the browser.

Pitch shifting in Web Audio API

Tutorial on pitch shifting samples in a cross-browser compatible way.

Pixelated images in SVG

Investigating how to render pixelated raster graphics such as pixel art in SVG images.