The order is curated, not chronological. A bench makes an argument.
A status describes the present; resting is a state, not an apology.
experiment
NumType
TypeScript never got its NumPy. The one thing a typed answer could add is exactly what Python structurally can't: shape errors while you type. So I taught the type checker schoolbook subtraction, digit by digit, and a tensor bug becomes a red squiggle instead of a production crash.
Plates instead of screenshots: each capture is pressed into the bench's own ink and paper, so a figure can't clash and can't go stale.
Visit ↗Teaching the type checker arithmetic →Letting the demo write the wishlist →Retiring the word unproven →
shipped
asdf
I wanted to know how much game fits under four keys, the ones your left hand already rests on. Turns out plenty: a whole world computed at runtime, almost all of it plain JavaScript, and it runs fast. Turn the sound on. The soundtrack is half the game.
Visit ↗Measuring the soundtrack →The road is a formula →
shipped
Artemis II · Flight Record
The obvious idea was a rotating 3D globe, and it got banned on day one. That ban built the site: with the reflex off the table, every element had to argue from the story, and the pieces that couldn't were cut.
Visit ↗
shipped
Watch Me Learn
Built to see learning happen: a DQN training live in your browser, pixels to policy. I wanted to watch a system learn, not read a claim that it does.
Visit ↗
shipped
Kern Typo
The tool I needed didn't exist, so I built it. Down to the ProRes encoder, because that didn't exist either.
Visit ↗