Marvin Mügge

No dates anywhere. The bench has to look the same after quiet months and a loud week.

I think by building. Creative tools, interactive experiments, small machines that show their workings. Everything here is personal work, made on my own time out of plain curiosity; the day job (leading social, video and audio at a Berlin daily) sometimes borrows a tool from this bench, but never owns one. On the bench: projects in whatever state they're honestly in, each carried by the thought that started it.

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 ↗

The footer is a nameplate; a workshop doesn't need a directory.

These lines are the layout fluid: coat the plate, scribe the plan, cut to the line.