Curvature 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ArticleThe 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 Article