Simon Willison · 2026-06-22 · notable
Simon Willison — porting Moebius image inpainting to the browser via Claude Code
Simon Willison shows how he used Claude Opus 4.8 to port the 0.22B Moebius image-inpainting model from PyTorch/CUDA to a browser-only WebGPU + ONNX demo, with the agent doing the framework conversion, weight upload, and UI work.

A 2,000-word walkthrough of letting Claude Code port a 1.3 GB PyTorch model to WebGPU + ONNX with almost no hand-written code.
What is it?
Simon Willison's June 22 post walks through using Claude Opus 4.8 as a coding agent to port the Moebius 0.22B image-inpainting model — originally PyTorch + NVIDIA CUDA — into a browser demo running on WebGPU via ONNX Runtime Web. Willison prepared the research links, set the agent's goals, then iterated on outputs rather than writing the conversion code by hand.
How does it work?
The agent converted PyTorch weights to ONNX, uploaded the artifact to Hugging Face, then built a single-page web UI that streams the 1.3 GB model into the browser using the CacheStorage API so it loads once and persists. Willison shows the prompts, intermediate failures, and the iteration loop, plus tests across Chrome, Firefox, and Safari.
Why does it matter?
Moebius itself is already a notable open weight — 0.22B parameters matching a 12B-class model on FLUX.1-Fill-Dev. Putting it in a browser via an agent shrinks the deploy story to a single HTML file, and the post captures what "vibe coding" actually looks like when the model is strong enough to handle a cross-framework port end-to-end.