Shaders are still the hardest thing to ship on a normal web team. WebGPU gives you the hardware, then hands you adapters, bind group layouts, and pipeline descriptors before a single pixel moves. Vercel spent that cost internally building the shaders on vercel.com, and has now open-sourced the result.
is a TypeScript library that treats vgpu.wgsl
files as importable modules, exposes one Gpu
context, and runs the same shader in a browser canvas, in headless Node.js, and in a CI snapshot test.
Is it deployable?
Yes,vgpu
is MIT licensed and published to npm, so pnpm add vgpu
is the entire acquisition path. It is a library, not a hosted service, so there is no account, quota, or inference bill.
One context, no hidden global state
init()
acquires an adapter and device and returns a single Gpu
handle. Everything else hangs off it. The browser quick start in the README is four lines:
const gpu = await init();
const surface = gpu.surface(canvas, { dpr: [1, 2] });
const wave = gpu.effect(WAVE_WGSL, { set: { speed: 2 } });
gpu.frame.loop(() => { wave.set({ time: gpu.time }); wave.draw(); });
surface
wraps the canvas and clamps device pixel ratio between 1 and 2. effect
compiles WGSL into a fullscreen effect whose uniforms are addressed by their WGSL names through set()
. Frames are explicit: passes, clears, and draws are calls, never implicit scene-graph state.
WGSL as a Module System
The differentiator is shader tooling. .wgsl
files import and export like TypeScript modules. vgpu
resolves the module graph, reflects bindings, removes unused declarations, and emits compact shader source at build time. That removes the hand-written binding declarations that normally drift out of sync with the shader. The README states a complete fullscreen effect ships in 25 KB gzipped, and that the budget is enforced in CI.
Three Runtimes, One API
The package exposes subpath exports for vgpu
, vgpu/node
, vgpu/mock
, vgpu/scene
, vgpu/client
, and vgpu/core
. The Node path is Dawn-backed and renders offscreen:
const target = gpu.target({ size: [256, 256], format: "rgba8unorm" });
const pixels = await target.read();
That is what makes CI rendering practical. pixelmatch
and pngjs
are direct dependencies of the published package, consistent with the documented workflow where CI compiles the shader, renders a headless frame, and compares the snapshot. The mock adapter is deterministic and exists for tests that should not touch a GPU at all.
The Agent Surface
Vercel calls this an agent-first library, and the packaging backs that up. The package ships a vgpu
binary, so npx vgpu docs
, npx vgpu examples
, and npx vgpu check
work without a global install. vgpu.sh
publishes agents.md
, llms.txt
, and a full documentation export, plus a tokenless examples discovery API with an OpenAPI 3.1 description. A hosted read-only MCP server is available at vgpu.sh/api/mcp
, and @modelcontextprotocol/server
is a direct dependency. There is also an installable agent skill in the repo.
Comparison
Key Takeaways
- Vercel open-sourced
vgpu
, the WebGPU library it built to ship shaders on vercel.com. - One API surface runs in the browser, in headless Node.js via Dawn, and in a deterministic mock.
.wgsl
files import and export like TypeScript modules, with reflection for bindings and layouts.- A complete fullscreen effect ships in 25 KB gzipped, a budget the repo says CI enforces.
- MIT licensed, on npm at v0.3.1, with a CLI,
llms.txt
, and a hosted read-only MCP endpoint.
Check out the GitHub Repo,
Docs and Examples. Also, feel free to follow us on
npm package****and don’t forget to join ourTwitter
and Subscribe to
150k+ML SubReddit. Wait! are you on telegram?
now you can join us on telegram as well.Asif Razzaq is the CEO of Marktechpost Media Inc.. As a visionary entrepreneur and engineer, Asif is committed to harnessing the potential of Artificial Intelligence for social good. His most recent endeavor is the launch of an Artificial Intelligence Media Platform, Marktechpost, which stands out for its in-depth coverage of machine learning and deep learning news that is both technically sound and easily understandable by a wide audience. The platform boasts of over 2 million monthly views, illustrating its popularity among audiences.