Los shaders siguen siendo lo más difícil de llevar a producción en un equipo web normal. WebGPU entrega el acceso al hardware y acto seguido pone por delante adaptadores, descripciones de grupos de enlace y descriptores de tubería antes de que se mueva un solo píxel. Vercel pagó ese costo internamente al construir los shaders de vercel.com, y ahora liberó el resultado.
vgpu es una biblioteca de TypeScript que trata los archivos .wgsl como módulos importables, expone un único contexto Gpu y corre el mismo shader en un lienzo del navegador, en Node.js sin pantalla y en una prueba de captura dentro de integración continua.
¿Se puede usar en producción?

Sí. vgpu está publicada bajo licencia MIT y está en npm, así que pnpm add vgpu es todo el trámite de adquisición. Es una biblioteca, no un servicio alojado, de modo que no hay cuenta, cuota ni factura por inferencia de por medio.
Un solo contexto, sin estado global escondido
init() obtiene un adaptador y un dispositivo, y devuelve un único manejador Gpu. Todo lo demás cuelga de ahí. El inicio rápido para navegador que trae el archivo README ocupa cuatro líneas:
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 envuelve el lienzo y acota la relación de píxeles del dispositivo entre 1 y 2. effect compila WGSL como un efecto a pantalla completa cuyas variables uniformes se direccionan por su nombre en WGSL a través de set(). Los cuadros son explícitos: pasadas, limpiezas y dibujos son llamadas, nunca estado implícito de un grafo de escena.
WGSL como sistema de módulos
El diferenciador está en las herramientas para shaders. Los archivos .wgsl importan y exportan igual que los módulos de TypeScript. vgpu resuelve el grafo de módulos, refleja los enlaces, elimina las declaraciones sin uso y emite código de shader compacto en tiempo de compilación. Eso saca del medio las declaraciones de enlace escritas a mano, que en la práctica siempre terminan desincronizadas respecto del shader.
El archivo README afirma que un efecto completo a pantalla completa se despacha en 25 KB comprimidos con gzip, y que ese presupuesto se hace cumplir dentro de integración continua.
Tres entornos de ejecución, una sola interfaz
El paquete expone rutas de importación para vgpu, vgpu/node, vgpu/mock, vgpu/scene, vgpu/client y vgpu/core. La ruta de Node se apoya en Dawn y renderiza fuera de pantalla:
const target = gpu.target({ size: [256, 256], format: "rgba8unorm" });
const pixels = await target.read();Eso es lo que vuelve práctico renderizar dentro de integración continua. pixelmatch y pngjs son dependencias directas del paquete publicado, en línea con el flujo documentado, donde el sistema compila el shader, renderiza un cuadro sin pantalla y compara la captura contra la de referencia. El adaptador simulado es determinista y existe para pruebas que no deberían tocar una GPU en absoluto.
¿Por qué la llaman una biblioteca para agentes?
Vercel describe esto como una biblioteca pensada primero para agentes, y el empaquetado respalda esa afirmación. El paquete incluye un binario vgpu, así que npx vgpu docs, npx vgpu examples y npx vgpu check funcionan sin instalación global.
El sitio vgpu.sh publica agents.md, llms.txt y una exportación completa de la documentación, más una interfaz de descubrimiento de ejemplos sin credenciales, descrita con OpenAPI 3.1. Hay además un servidor MCP de solo lectura alojado en vgpu.sh/api/mcp, y @modelcontextprotocol/server figura como dependencia directa. El repositorio también incluye una habilidad instalable para agentes.
Puntos clave
- Vercel liberó
vgpu, la biblioteca WebGPU que construyó para desplegar los shaders de vercel.com. - Una misma interfaz corre en el navegador, en Node.js sin pantalla mediante Dawn y en un simulador determinista.
- Los archivos
.wgslimportan y exportan como módulos de TypeScript, con reflexión de enlaces y disposiciones. - Un efecto completo a pantalla completa pesa 25 KB comprimidos, un presupuesto que según el repositorio se verifica automáticamente.
- Licencia MIT, disponible en npm en la versión 0.3.1, con interfaz de línea de comandos,
llms.txty un punto MCP de solo lectura.
Se pueden revisar el repositorio en GitHub, la documentación y los ejemplos y el paquete en npm.




