Eight months ago, the creator of - the model output rendered directly from a GPU buffer to an HTML <canvas> via the library's ICanvasRenderer. No PNG encoding step, no base64 data URL, no host readback of pixel data.
Image classification - SqueezeNet 1.1
A 95MB model. Streams the weights one tensor at a time so it doesn't blow up the WASM heap. Output is upscaled back to the source image's exact aspect ratio via a GPU bilinear resize kernel, then run through a piecewise-linear colormap kernel (plasma / viridis / inferno / grayscale) - palette switch is one accelerator dispatch, no re-inference.
Neural style transfer - Mosaic
Salient-object segmentation in the browser. The mask is computed on the accelerator, applied to the source image's alpha channel on the accelerator, and composited (transparent / white / blur background options) without any CPU loop ever touching pixel data.
3x super-resolution - ESPCN (tile-based)
, my fork of ). That bug is a wall for anyone trying to ship more than one model in a single browser session. It pushed me from "I wonder if I could do this" to "I'm doing this."
The deeper motivation: when neural networks run on the user's device, the user's data stays on the user's device. No upload to your servers. No "we promise we won't train on your data." No data plane at all. The user runs the model on their hardware against their data, period.
That's what the SpawnDev stack is for. Blazor WebAssembly + WebGPU + the ML library + WebRTC peer-to-peer model delivery via to put the full crew back on the ship.
That's the gap between this preview and the next ten:
- Every remaining operator family migrated to the new Tensor API
- The 11 other inference pipelines verified end-to-end on every backend
- FP16 attention + Flash Attention on WebGPU
- Llama and Phi-4 LLM inference in the browser
- Full text-to-image diffusion through SD-Turbo
- TripoSR single-image-to-3D
- Peer-to-peer distributed compute through SpawnDev.WebTorrent
It is all in flight. The bottleneck is hours, not ideas.
Try it, break it, file bugs
The library is on NuGet:
dotnet add package SpawnDev.ILGPU.ML --prerelease
The source is at run entirely in your browser - the page itself is served from GitHub Pages, but the inference happens on your GPU and your data never leaves your machine.
If you're a .NET developer who's looked at the browser ML space and thought "I want this but I can't bring myself to write JavaScript," this is for you. If you're a Blazor developer who needs ML and couldn't make ONNX Runtime Web behave, this is for you. If you've been waiting for someone to prove Blazor WebAssembly can be a serious AI runtime, this is the proof.
Try the demos. File issues from your own models. Star the repo if you want to see this continue.
And if you can sponsor: github.com/sponsors/LostBeard. $5/month is a vote of confidence. $200/month total puts the crew back at warp speed.
🖖🚀
SOCIAL SHARE CARD GENERATOR