The Coddling of the Professional Mind
"The problem isn't that Johnny can't read. The problem isn't even that Johnny can't think. The problem is that Johnny doesn't know what thinking is; he confuses it with feeling." – Thomas Sowell I'm...
View ArticleFrickin' Shaders With Frickin' Laser Beams
Hassle free GLSL I've been working on a new library to compose GLSL shaders. This is part of a side project to come up with a composable and incremental way of driving WebGPU and GPUs in general....
View ArticleWho Doesn't Go Nazi?
The essay "Who goes Nazi" (1941) by Dorothy Thompson is a commonly cited classic. Through a fictional dinner party, we are introduced to various characters and personalities. Thompson analyzes whether...
View ArticleOn Progress
The known unknown knowns we lost When people think of George Orwell's 1984, what usually comes to mind is the orwellianism: a society in the grip of a dictatorial, oppressive regime which rewrote...
View ArticleReact - The Missing Parts
Question the rules for fun and profit One of the nice things about having your own lean copy of a popular library's patterns is that you can experiment with all sorts of changes. In my case, I have a...
View ArticleThe Hiker's Dilemma
How to take care of your tribe The other day I read: "If you're hiking and you stop to let other people catch up, don't start walking immediately when they arrive. Because that means you got a rest...
View ArticleThe Case for Use.GPU
Reinventing rendering one shader at a time The other day I ran into a perfect example of exactly why GPU programming is so foreign and weird. In this post I will explain why, because it's a microcosm...
View ArticleThe GPU Banana Stand
Freshly whipped WebGPU, with ice cream I recently rolled out version 0.7 of Use.GPU, my declarative/reactive WebGPU library. This includes features and goodies by itself. But most important are the...
View ArticleGet in Zoomer, We're Saving React
Looking back, and forward Lately, it seems popular to talk smack about React. Both the orange and red site recently spilled the tea about how mean Uncle React has been, and how much nicer some of...
View ArticleUse.GPU Goes Trad
Old is new again I've released a new version of Use.GPU, my experimental reactive/declarative WebGPU framework, now at version 0.8. My goal is to make GPU rendering easier and more sane. I do this by...
View ArticleTeardown Frame Teardown
Rendering analysis In this post I'll do a "one frame" breakdown of Tuxedo Labs' indie game Teardown. The game is unique for having a voxel-driven engine, which provides a fully destructible...
View ArticleFuck It, We'll Do It Live
How the Live effect run-time is implemented .embed-live-40 { padding-bottom: 40%; } .embed-live-56 { padding-bottom: 56%; } @media screen and (max-width: 767px) { .embed-live-m-square {...
View ArticleSub-pixel Distance Transform
High quality font rendering for WebGPU .embed-wide { box-sizing: border-box; max-height: 720px; } .embed-live-25 { padding-bottom: 25%; } .embed-live-40 { padding-bottom: 40%; } .embed-live-48 {...
View ArticleStable Fiddusion
Frequency-domain blue noise generator .embed-wide { box-sizing: border-box; max-height: 720px; } .embed-live-25 { padding-bottom: 25%; } .embed-live-40 { padding-bottom: 40%; } .embed-live-48 {...
View ArticleI is for Intent
Why your app turned into spaghetti There's a certain kind of programmer. Let's call him Stanley. Stanley has been around for a while, and has his fair share of war stories. The common thread is that...
View ArticleThe Bouquet Residence
Keeping up appearances in tech The word "rant" is used far too often, and in various ways.It's meant to imply aimless, angry venting. But often it means: Naming problems without proposing...
View ArticleOcclusion with Bells On
Modern SSAO in a modern run-time Use.GPU 0.14 is out, so here's an update on my declarative/reactive rendering efforts. The highlights in this release are: dramatic inspector viewing upgrades a modern...
View ArticleHTML is Dead, Long Live HTML
Rethinking DOM from first principles Browsers are in a very weird place. While WebAssembly has succeeded, even on the server, the client still feels largely the same as it did 10 years ago....
View ArticleThe L in "LLM" Stands for Lying
On Evitability in Use of AI If the hype is to be believed, software development as we know it is over. Strangely though, despite now years of LLM-powered tooling, the results look, feel and function...
View ArticleCurvature Beziers
Improving on a timeless recipe .embed-two-panels { position: relative; width: 100%; padding-bottom: 50%; } @media screen and (max-width: 767px) { .embed-two-panels { padding-bottom: 200%; } } The...
View Article