How to Read Types in C

Type signatures in C are a common point of confusion for even seasoned programmers. I found myself repeating the same explanations over and over again, so I decided to write this post to have a reference to link to. Recap: Type annotations In many programming languages (and in mathematics), you annotate an expression e with type A by writing e : A. These types can either be primitive types like int or float, or they can be compound types like function types A → B or product types A × B (aka tuples (A, B))....

January 24, 2024 · 6 min

New Website!

After not looking after my website for over 2 years, I finally decided to redo it entirely and turn the domain into a blog. As I'm writing this, the new website is still kinda work in progress, so in case you want to visit the old one, there should be a "legacy" button in the top right corner1. For the past couple of years, I've been making cool stuff and posting about it here and there, but I didn't have one place to document it all....

March 28, 2023 · 2 min

Generalizing Kaminski's Equation

The ideas in this write-up were originally explored in the context of the university course "Introduction to Computational Logic" by Prof. Gert Smolka and posted in the course-internal forum. Here, I want to elaborate on the forum post and give enough context to keep it mostly self-contained. Kaminski's Equation In the lecture, we learned about Kaminski's equation, an interesting statement about functions on boolean values ($\mathbb{B}$). It formally states the following....

May 20, 2022 · 8 min

Cyclic Dripstone

2kb of GLSL shader code released at TokyoDemoFest 2021 [pouët] In this entry demonstrates a way to approximate the lighting you get from a path tracer in a way that's fast enough to run in real-time while still using SDF ray marching to render the scene. A typical path tracer with next event estimation You can think of a path tracer as being a system that computes how bright a given point in the scene is....

December 12, 2021 · 3 min

Kuwahara's Painting (桑原の絵画)

a 4k exe-gfx released at Tokyo Demo Fest 2021 [pouët] Earlier in 2021, NuSan mentioned the Kuwahara filter in a discord server I'm in. The filter was originally invented to reduce noise in photos without making them look blurry, but it has the pleasant side effect of making images look a bit like paintings if the filter is applied with a sufficiently large kernel size. I started by making a simple tree in a fragment shader....

December 11, 2021 · 2 min


a 4k exe-gfx released at Névoke 2021 [pouët] This entry has been strongly inspired by the artist Windmill and especially their texture generator called JsPlacement. Though, because of size limitations I was not able to embed a texture into the executable, so I made a very minimal copy of the tool using fragment shaders. From here it was a matter of using the generated texture to create an interesting-looking scene. I used the texture as a heightmap for the floor, as a color map for the blue pattern over the geometry, and as displacement on the tower....

August 14, 2021 · 2 min

Off by One

a 4k exe-gfx released at Outline 2021 [pouët] This entry started as a shower thought two days before the deadline: What if I wrote a path tracer but instead of starting the ray at the camera, I start tracing from the light source and put a point on the screen where the ray ends up? This turned out to be fairly easy to implement in vertex shaders since they allow you to put points on the screen at given coordinates and also let you compute a lot of rays at once....

May 14, 2021 · 2 min


a 256b PC intro released at Revision 2021 [pouët] This intro is a demonstration of a way to simulate buffer swaps using special color values, all within 256 bytes. The naive way to render an effect like this would be to first clear the entire screen, then draw some lines and repeat. This works in theory but it creates a lot of flickering since you're very likely to see the image while it's in the middle of either clearing or rendering, meaning the lines are only partially visible....

April 6, 2021 · 2 min


a 4k exe-gfx released at Revision 2021 [pouët] I found yet another interesting way to render placeholder geometry :D With this entry, I tried to recreate the look of a point cloud visualization, where there is one scanner in the middle of the scene that samples points outward and the camera is viewing the collected data from the outside. To create a sense of depth, the points are colored according to how close to the scanner they are, and they are rendered with lots of depth of field....

April 4, 2021 · 2 min

Rise Again

my submission to the CG1 Rendering Competition at Saarland University The rules of the competition required me to hand in a write-up with my submission, so here you go: (In case the above link does not work, here is a backup link) My entry ended up winning (joined) 1st place and they even gave me a prize after the final exam.

February 4, 2021 · 1 min