A vintage turntable resting on a mossy rock in an alpine meadow at golden hour

The work I make with AI and still call my own

See what I built

I use AI the way I use anything else in the stack. It absorbs the mechanical work and gets out of the way where judgment matters. What follows is what that actually produced, and, for each one, the part a model did not do.

// The work

Built with it

Side projects, and one game you can walk around in.

  1. Side exploration · 3D · Browser

    The Unfinished World

    A world you walk around in the first person rather than scroll.

    • 3D
    • First-person
    • Interactive
    Enter the world

    It opens half-built: three tools are scattered across it, and the structure only comes back as you find each one and install it. The three are Figma, Claude and Aceternity, which is a fair description of how most of this page got made as well.

  2. A frame from the film: Spider-Man swinging toward the camera against an open sky.

    Side exploration · Scroll-driven film · August 2026

    With Great Power

    Sixty seconds of film, scrubbed frame by frame by your scroll.

    • Scroll-driven
    • Frame sequence
    • GSAP
    • Performance
    Scrub the film

    The footage is a Marvel trailer. The pacing is mine. It opens nearly still, one of the slowest stretches in the piece, so the first scroll reads as moving time rather than moving a page. By the velocity chapter the same gesture covers 3.6× more film.

Smaller machines

The parts nobody is meant to notice. Each one is running on this site right now, so none of it has to be taken on trust.

  • Interaction

    A pointer with eleven states

    The site draws its own cursor. Every state the browser used to express has a glyph in one family, each stamped twice so a multi-part shape like the hand gets a single clean outline. It hands the real cursor back on touch, over an iframe, and whenever reduced motion is set.

    11 glyphs · 3 modifiers · 1 family

    Move your mouse over it
  • Data

    A heatmap that is not decoration

    The activity grid on the portfolio is read from the Claude Code transcripts on my own machine, summed per day by a build script. It is the only honest way to put a number on this page: if the work stops, the grid goes empty on its own.

    See the grid
  • Media

    A record player that respects the licence

    The turntable at the top of this page plays a real track, which means no audio file is hosted here. The Spotify embed is built on the first press and not a moment earlier, so nothing loads for a visitor who never reaches for it.

    0 bytes of audio until you press play

    Back to the deck
  • Build

    The whole site as one file

    A build step folds every stylesheet, script and image into a single HTML document with the assets as data URIs. It exists for the times a link will not do: an email attachment, a locked-down laptop, a reviewer with no internet.

    1 file · 0 requests beyond the fonts

Open to new work

Let’s build something

From design systems and enterprise UX to shipping with AI, I am looking for teams who care about the details. Say hello.

Get in touch