Plate III

Fluoddity

a field guide to a universe that only exists inside one GPU

as observed by Oops! All Paperclips

I have a few of these recursive scenes. I will probably make…

a room curated by Oops! All Paperclips — it renders live from their thread; when the thread grows, so does the room

“I have a few of these recursive scenes. I will probably make more once my Claude Code fever subsides a bit. Each sdf scene is written by hand in glsl and involves many hours of fiddling to get right. I find the whole process to be a very calming experience, like painting or sculpting.”

— @all-paperclips.bsky.social, at the door

Fig. 1

I have a few of these recursive scenes. I will probably make more once my Claude Code fever subsides a bit. Each sdf scene is written by hand in glsl and involves many hours of fiddling to get right. I find the whole process to be a very calming experience, like painting or sculpting.

collected 30 May 2026 · field notes →

Fig. 2

At first I had this complicated scheme involving a teleporting camera that needed some external state to track where it was entering each nested cell. You can see here that the sun angle is drifting with each iteration. Eventually these would all be in shadow.

collected 11 June 2026 · field notes →

Fig. 3

The solution to the sun-drift was to realize that the camera is tracing a logarithmic spiral, and to align the sunlight along the axis of that spiral. Voila: Recursion invariant shadows.

collected 11 June 2026 · field notes →

Fig. 4

This insight also led me to realize that the teleporting camera was silly and overcomplicated. Instead, the frag shader just smoothly rotates and scales the whole scene with some math by Claude. The spiral is self-similar so you never notice when it "starts over" as long as I render the right copies

collected 11 June 2026 · field notes →

Fig. 5

I titled this one "How your email finds me". I wanted to do something inspired by my terrible computer posture and then I remembered this slouchy polar bear midjourney that would be perfect.

collected 11 June 2026 · field notes →

Fig. 6

Bonus "Icebearg" from mid-development

collected 11 June 2026 · field notes →

Fig. 7

Then I set my sights on animation. This flower was my proof of concept. Simple to code. VERY tough to choreograph in practice.

collected 11 June 2026 · field notes →

Fig. 8

That led me to "Bait". Here's a second angle on it. This one has to be my favorite. Really strict complexity budget because there are so many pieces: -Ocean surface/floor. -Fish -Boat/Fishing line -Angler/Fishing pole I had so much fun with the angler that I decided to do more human figures.

collected 11 June 2026 · field notes →

Fig. 9

But for that to look right, I'd need some physics. These are entirely stateless, so the entire animation has to be a function of time. I tasked Claude with creating a python app that would analytically solve simple physics problems and turn them into animations like mat3 body1_rotation(float time)

collected 11 June 2026 · field notes →

Fig. 10

I also had claude write a little gui tool for editing impulses and torques while watching things play out. The result: "Always Has Been" It was tricky getting the planet and stars to line up periodically without looking like something was fishy.

collected 11 June 2026 · field notes →

Fig. 11

Finally I wanted to try my hand at a vehicle. I ended up going for such high detail that I completely gave up on the idea of animating anything, and just went all-in on accurately modeling my reference.

collected 11 June 2026 · field notes →

Fig. 12

Untitled · 11 June 2026

collected 11 June 2026 · field notes →

Fig. 13

I also made a second bird scene early on, but it didn't really fit anywhere in the narrative and I never made a nice looping render out of it so I'll include it at the end here. I was aiming for crow, but I never felt like the beak was right.

collected 11 June 2026 · field notes →

Fig. 14

Same scene in Fluoddity-vision

collected 11 June 2026 · field notes →

Fig. 15

The way this works, is that each cohort tries to spawn only on one of the materials in the scene, and then the geometry normals are used as force/strafe fields that shove the fluoddicles around.

collected 11 June 2026 · field notes →

Fig. 16

Another example where I randomize mutation seed with each loop

collected 11 June 2026 · field notes →

Fig. 17

The end (for now)

collected 11 June 2026 · field notes →