A boot born from the moon, assembled from 54,000 particles.
Brief → Blender → Three.js / WebGL · co-authored with Claude Code
A real-time brand piece. Designed as a hero moment for a launch microsite - turning a 3D product model that would otherwise sit in a static library into an interactive campaign centerpiece.
The piece, running.
One product model becomes a living brand moment, not another still render.
Sole builder, brief to shipped piece.
I modeled the boot in Blender, designed the four-phase choreography, and wrote the custom GLSL shaders, sampling logic, and dust physics, composed through an AI build interface, with the judgment to know when its output was wrong.
A product render is finished the moment it loads. A brand moment has to unfold.
The asset already existed: one boot model. The brief was to turn it into something a viewer watches, then plays with, in the browser, with no plugins, no video file, no render farm. Everything on screen, from assembly to dust to reveal, is computed live from that single mesh. The piece ships as a single self-contained HTML file with no build dependencies - droppable into any brand portal, DAM component, or CMS embed as-is.
The constraint - no plugins, no video file, runs entirely in the browser - is intentional. A piece like this is designed to be dropped into a live workshop with designers and brand stakeholders: one URL, no setup, no render wait. Their reaction to timing, color, and interaction is the feedback that tunes the piece. Skeptics become collaborators once they can touch it.
One mesh in, four phases out, driven by shaders, not keyframes.
Mesh to particle field
Area-weighted surface sampling converts the boot into 54,000 points, so dense regions of the mesh get proportionally more particles.
A four-phase state machine
Dissolve in, hold, dissolve out, rest. Per-particle stagger and easing live in the vertex shader, so the GPU animates the entire field at once.
Dust the viewer can disturb
After the dissolve, the particles settle on procedural lunar terrain. Cursor wind, spring return, and damping keep the dust physical.
A payoff hidden in the surface
A brush-mask system tracks where dust has been swept. Trace enough of the buried mark and the swoosh and tagline surface.
From a Blender model to a live GPU piece.
The boot was modeled by hand. Everything after that, the sampler, the shaders, the physics, the reveal system, was composed through Claude Code, iterated against what was actually rendering on screen.
The mesh is the only authored asset. Everything the viewer sees is generated from it at runtime, which is what makes the piece a workflow, not a video.
One model, one draw call, a moment worth waiting for.
Capability claims only: what the piece demonstrably does at runtime.
The same discipline as the production tools: a single source asset, data baked per element, and the shader doing the storytelling.
Pattern shared with the DNEG tooling and the Forest Tool · one system, many moments
Performance was a first-class constraint, not an afterthought. Keeping 54,000 particles interactive without a GPU budget blowout meant the entire field runs as a single draw call, all animation computed per-particle in the vertex shader on the GPU rather than on the CPU per frame. The interaction - cursor wind, spring return, reveal tracking - was deliberately kept gestural: simple enough that a first-time visitor understands it in under five seconds, responsive enough that it rewards a second pass.