Blog | Hendrik Erz

Where Zettlr Failed: How I Wrote My Entire Thesis Using (Almost) Only One Program

This is a (late) extension to both my PhD series and my “How I work” series. In this article, I explain the technical setup of my PhD thesis — how I integrated my data analysis pipeline into my writing, and how I enabled exports for the various journals I had to submit my work to. [Read more]

WebGL Series, Part 8: Implementing Multi-sample Antialiasing (MSAA)

In this last article in my series on WebGL, I re-implement antialiasing to make the rendered graphic look more crisp. This step concludes the full setup of the iris indicator that you can see on the demo page. [Read more]

WebGL Series, Part 7: Adding a Bloom-Filter

In the second-to-last installment of my series on WebGL, I explain how a Bloom filter works and how I added it into the processing-pipeline of the iris indicator. [Read more]

WebGL Series, Part 6: Post-Processing

In part six of this series on WebGL, I introduce the concepts behind post-processing a rendered image, and how to implement that in a WebGL program. [Read more]

WebGL Series, Part 5: Computing Colors

In this fifth article on WebGL, I explain how I procedurally generate colors and animate them to convey changes in the state of the iris indicator. [Read more]

WebGL Series, Part 4: Animating Things

In this fourth article of my eight-part series on WebGL, I explain how I animated the rendering and ensure that it conveys a sense of motion. [Read more]

WebGL Series, Part 3: Drawing Things

In this third installment of my 8-part series on WebGL, I explain how I finally was able to draw triangles onto the screen, based on the previous two articles that were merely concerned with setting things up. [Read more]

WebGL Series, Part 2: Setup and the OpenGL Rendering Pipeline

This is the second part of my eight-part series on WebGL. This article introduces the basic architectural design of the iris indicator and provides a primer on what WebGL is. [Read more]

A Rabbit Hole Called WebGL

Over Christmas, I made another little side project. But this time around, it turned out to be a rabbit hole of galactic extend. So read this article on my journey, as I fell down the rabbit hole of OpenGL and graphics rendering. [Read more]

Vibe Coding: The Final Form of Hyper-Individualism

A few days ago, I had to deal with the first "vibe coded" PR to my software. In this article, I reflect on this encounter, and analyze the social habitus of the "vibe coder." I conceptualize "vibe coding"—inexperienced users generating complex code via AI tools—as the final manifestation of hyper-individualism. Drawing on sociological frameworks, I argue that this practice disrupts open-source norms by producing unreviewable, high-impact PRs that ignore community standards and technical context. While motivated, their output reflects a "tragedy of the lone producer" who sacrifices meaningful engagement for isolated productivity. This trend can threaten software integrity and community health. [Read more]