Linkblog/2025/03/04
Real-Time Atlases, Nikki Shadow Drop, Nightmare Bicycle, Eval > Model, IMG_0416, PlantStudio, Lo-Fi Art and Human Tools, Skin Deep - Blendo Wav Tool, Exploiting Cursor to write better code, SpacetimeDB, Trippy.
FastAtlas: Real-Time Compact Atlases for Texture Space Shading
Texture-space shading (TSS) methods decouple shading and rasterization, allowing shading to be performed at a different framerate and spatial resolution than rasterization. […] Real-time TSS shading requires texture atlases small enough to be easily stored in GPU memory. […] We propose FastAtlas, a novel atlasing method that runs entirely on the GPU and is fast enough to be performed at interactive rates per-frame. […]
I’ll be honest in that I don’t really know what is going on in this paper…
But it just looks so cool, and I’ve also been digging into texture atlases in my own project, so I had to include it.

Infinity Nikki: Mysterious Shadow Drop
I f*ckd up. This is how I originally planned this article: It should be short, contain 1-2 videos and express the following:
“Look! In Infinity Nikki the character has a “real” shadow, but the developers fade it out while jumping to make space for a blob shadow (which helps to navigate while jumping/gliding).”
But the more I looked into the subject, the more observations I made, the more people got involved (to give me advice), and the article grew longer and longer. I’m sorry.
A really interesting dive into blob shadows across different games, both old and new, from a graphics programming perspective.
Also, from Graphics Programming Weekly - Issue 381
Geoffrey Litt - Avoid the nightmare bicycle
In my opinion, one of the most important ideas in product design is to avoid the “nightmare bicycle”.
Imagine a bicycle where the product manager said: “people don’t get math so we can’t have numbered gears. We need labeled buttons for gravel mode, downhill mode, …”
This is the hypothetical “nightmare bicycle” that Andrea diSessa imagines in his book Changing Minds.
I do enough tinkering with product at work to be dangerous, mostly I am a developer acting on the whims of someone who’s actual job title has ‘product’ in it, but even I can acknowledge how this sort of thinking can arise from a well-intentioned person, but spread and grow into the state you have a heap of a project which doesn’t trust that even somewhat conscious humans are using it.
Balance is key.
Your Eval is More Important Than the Model
In this Cambrian era of LLMs – where new models drop every week – choosing a model for a product, pipeline, or project can be daunting. It’s tempting to throw your hands up and default to whatever OpenAI or Anthropic is offering this week. But if you’re building with AI, I strongly recommend against this “default.” Instead, take a step back and build your eval.
[…]
Last year, Hamel Husain wrote an amazing piece on evals, arguing, “If you streamline your evaluation process, all other activities become easy.” I’ll go a step further: your eval is the most valuable AI asset you own, not your model or your prompts.
The author mentions DSPy in another article of his, something else I have heard positive things about with regards to structuring evals.
Between 2009 and 2012, Apple iPhones and iPod Touches included a feature called “Send to YouTube” that allowed users to upload videos directly to YouTube from the Photos app.
[…] Apple uses the ‘IMG_XXXX’ naming convention for all images and videos captured on iOS devices, where XXXX is a unique sequence number¹. The first image you take is named “IMG_0001”, the second is “IMG_0002” and so on. During the Send to YouTube era of 2009 and 2012, the title of one’s YouTube video was defaulted to this naming convention. Unwitting content creators would then upload their videos on a public site with a barely-searchable name. To this day, there are millions of these videos.
![]()
Truly candid videos, not in the sense of those not knowing they are being filmed, but not knowing the eventual place this content will end up on.
Its long enough ago as well, that I’d already view this as an interesting snapshot of a point in time.
The reason it was cut in 2012, was “when Apple severed ties with YouTube by removing its homegrown app in 2012.”.
TIL, the YouTube app was homegrown at that point.

Classic.
From Ava’s ‘cool links IV: healthcare, cool retro software, humanity’
Pirijan - Digging Into PlantStudio, a Bit Late
This aesthetic screenshot of an old windows app has been in my inspiration space for ~5 years. Until recently, I assumed that it was just a nostalgia bait concept.
![]()
The calm, serene life associated with gardening pairs suspiciously well with rose-tinted wistfulness for a simpler time in computing. I’m happy to be wrong though, because software doesn’t get more real than PlantStudio.
What a lovely piece of software, given the age this was made it gives vaguely similar vibes as Pivot Animator, but instead of stick figure animations, procedurally generated plants.
I should follow Pirijan’s tutorial on how to set it up on Mac, so I can add some flowers to this ‘garden’ of a website as well.
From ava’s link to maya’s site.
Pirijan - The Lo-Fi Art and Human Tools Era
(Once I find a new website I like, I do usually do some digging to see if there is other content I might enjoy, and oh yes there was!).
I spend a lot of time thinking about tools for thinking and creativity, and how they’ve changed. If you’re not used to drawing or writing – and even if you are – the scariest thing in the world is a blank page.
[…]
The first sentence, or the first brush stroke, is a high anxiety situation. Full of potential, full of unknown pain.
So to help with the blank slate problem, software tools added Templates.
File → New
turned intoFile → New → Do You Want to Make a Portfolio? Or a Résumé?
. This more recently turned intoFile → New → Ask AI to Do It
. These features help some people, but also create new problems.These tools can generate almost effortless outputs. They unburden us from the abrasion of creativity and their generic-by-design results keep us cocooned from the risks of standing out. No one wants to make ‘ugly’ art, or a ‘bad’ website. But struggling and making mistakes is an important part of developing skills and – increasingly important – finding your own voice.
The biggest piece I get out of this post, which I’m breaking direct quotes on here to call out it specifically, is this:
We don’t talk enough about the many-years-long rite of passage that every creator goes through.
In many creative realms, like game development, or design, I feel like I have no ability to call myself good, but, when it comes to structuring a website (probably a bit more from its innards), I feel like I know what I’m talking about, and it took a while to get here.
I do think its possible to find your voice quickly and become ‘productive’ creatively in a short period of time, but I think most people fall into the camp of folks who worked on their craft over a long period of time, before being looked at as having truly made their own vision and direction in what they seek to make.
Brendon Chung - Skin Deep: Blendo Wav Tool
Brendon is back!
His new game, Skin Deep, has had a demo drop, which I have played the one level you can play on it, probably at least five times by now.
Don’t take my word on it, see what Dustin Bailey has to say on the game:
I went from “I hope this is good” to “this might be GOTY” within 5 minutes of picking up the Steam Next Fest demo for this ridiculous stealth game
Skin Deep is like a slapstick Dishonored and it’s suddenly one of my most-anticipated games of 2025.
Brendon talks about the Blendo Wav Tool, yet another piece of open source gamedev technology he’s opened sourced, used for the game.
Skin Deep has a lot of sound effects, a lot of music, and full voice acting (VO). There’s a lot of audio. As a result of this increase in scale, it became challenging to manage this amount of assets – and so, I made this Blendo Wav Tool.
To set expectations: this is all very low-tech straightforward stuff. There’s nothing here that can’t be done with Regex or a Python script. But having a specific tool for our specific workflow was something hugely helpful.
I love all of the random little programs Brendon has thrown together, if I ever tackle a game project outside the scope of a game jam, I hope to approach things similarly.
GlitchCityLA - Quake BSP Survival Guide | Brendon Chung | Demo Night (part 2 of 12)
(Another dive, this time more Brendon fan fair).
Some behind the scenes look at Brendon’s game Thirty Flights of Loving being shown off at Glitch City LA in 2013.
In 2017, he did another talk on kit bashing, likely during his time working on Quadrilateral Cowboy, which actually has a full art book as a piece of software itself you can grab as DLC on Steam.
I am Blendo Games stan.
Ricardo Ander-Egg - Exploiting Cursor to write better code
I have been using the Cursor IDE for some time already and I really like its documentation indexing feature. Recently, I discovered a better way to leverage Cursor’s tools to make better references to official documentation and write better code.
Here’s what I’ve been doing: Instead of relying on URL-indexed documentation, I download official docs directly to my machine. Take Caddy, for example. I grabbed their docs from GitHub (see
src/docs/markdown
), keeping just the markdown files in a local subfolder calleddocs
. Now when I’m tweaking my Caddy config, the documentation sits right next to my work.This setup is surprisingly powerful. When I use Cursor’s chat with CMD + Enter, it scans my entire codebase – which now includes my Caddy config plus the official docs. The LLM gives me better, more accurate suggestions because it’s working with authoritative sources.
Very neat approach, maybe this predates the Agent feature of Cursor though, or would go more hand-in-hand with it.
I would assume there are Model Context Protocol Servers one could use to maybe have bits of this be external to the repo, or maybe having things in-repo is better?
So many approaches.
The Onion - Pete Hegseth Deploys 3,000 U.S. Troops On Beer Run

Hell yeah
Tyler Cloutier - Introducing SpacetimeDB 1.0
Very hyped to see SpacetimeDB being launched, I want to find a reason to use this project sometime soon.
However, ignoring for a moment its under a Business Source License, which means me as a user can ignore that but there can’t be a competing hosing provider for SpacetimeDB rather than themselves, it does not look like client interpolation is something SpacetimeDB concerns itself with.
I assumed the reason they’d choose something Rust native with WASM, would mean that aspects of their logic could run both on serverside, and client side, but I had to join the Discord to see a lengthy message from someone with a colorful role (therefore I assume a contributor), saying that, no, SpacetimeDB has nothing baked into it to give you a story for clientside interpolation.
Sad, current project idea I have in my head would really make use of something like that, so a tool like SpacetimeDB leaving that as a TBD is a bit frustrating.
Oh well, maybe skill issue understanding what the role of SpacetimeDB would be in the context of a game, but, 🤷.
I have a new webpage up! It is called r_g_b.html [warning for flashing colours].
Trippy.
More trippy.
Gotta love when people treat websites like the proper digital canvases they are.