3D Rendered Keyboard

I occasionally like to play around with Blender, just as a hobby. I used it to digitally recreate one of my mechanical keyboards, a Filco Majestouch Minila. The work included modeling, texturing, lighting and camera placement, and was mostly carried out over the course of two weekends. Three attempts were made to model the main body of the keyboard; it has some quite tricky shapes. A learning experience, to be sure.

Rendered with Cycles at 4K resolution and 256 samples with denoising. Render time ~20 minutes per image.

Stop Using the MP3 Format

MP3 has been the dominant codec for digital audio for years. I find that slightly odd, given that it has been encumbered by patents for much of its lifetime. Most of those patents, if not all, have expired at this point, so the problem of one company controlling who can encode to, and decode from, the de facto standard format is gone. A fact we cannot escape, however, is that MP3 from a technological perspective is completely obsolete.

Consider how quickly information technologies advance in general. Computing as we know it today, did not exist two decades ago. We no longer use the same PCs, phones (even the Nokia 3310 did not exist yet) or web (arguably the web is still the same, but simultaneously not at all). We have invented “the cloud” (a.k.a. “lets upload all of our critical files to other people’s computers”), and are well on our way to kill off TV and newspapers with streaming and social media. Meanwhile, much of digital audio that is distributed today is encoded using a codec, the latest standard version of which is from 1998!

Merely being old does not inherently mean that a technology is bad. MP3 still being widely used suggests that the engineers who created it must have done something right. But with age, the probability of a technology being superseded by another increases. And that is my point. Since its creation, MP3 has been superseded, over and over again, by superior formats. They are technologically superior and some also in terms of licensing.

AAC (1997-2009)*, Vorbis (2000-2012), Opus (2012-2017) are probably the most notable replacements. They are all more efficient than MP3, and the latter two are completely free and open source. I am personally a big fan of Opus. It is free, low-latency, efficient, and immensely versatile, as can be seen from this indisputably scientific chart from Wikipedia (I have no clue how it came to be, but it fits my narrative). MP3 has been left in the dust.

Opus quality comparison colorblind compatible

The difference in quality is demonstrated in this audio clip, where we first hear uncompressed WAV audio, then Vorbis (which is inferior Opus) at 48 kb/s and finally MP3, also at 48 kb/s.

The only downside to Opus is the relative lack of software support. “Relative” is the key word here, though, as Opus compatible software definitely does exist (e.g. VLC, Audacious, modern web browsers and Vanilla Music for Android) and more is being made. Remember how information technology can change very rapidly? It could happen here too, if people only cared enough about their audio to insist on using good codecs.

* Year of initial version and latest version at the time of writing.

Songrs: Song Lyrics Projection Application

I recently released v0.1.0 of Songrs. It is a free and open-source application for projecting song lyrics with a projector, similar to OpenLP, although at this point with a quite minimal set of features.

Songrs is written in Rust, and uses GTK for the GUI. The fundamental idea was to make a projection program that runs on GNU/Linux and uses local plain text and media files for its content, as opposed to databases, binary file formats and forced online services. This way, the content files can easily be managed with standard desktop programs and synchronized using general purpose file sync services such as Nextcloud.

Why have I done this, and why not just use OpenLP or some other existing program?

The program will hopefully be field-tested within a couple of weeks. We’ll see how that goes.

Songrs is licensed under the GPLv3, and its repo is here: https://gitlab.com/janikarki/songrs

Ray Tracer Scene Management Project

As part of a course in computer graphics, I am currently working on a project in which I will investigate how scene management affects the rendering time of a simple ray tracer, which I also will implement. The answer to the investigated question is, of course, very well known already, but the project is nonetheless a good exercise for me to learn more about computer graphics and research work.

Check out the project blog, if you wish.