
Vercel lança vgpu, biblioteca TypeScript para WebGPU
O que é o vgpu
A Vercel, por meio do vercel-labs, publicou o vgpu, uma biblioteca TypeScript para WebGPU descrita como modular e multi-runtime, voltada a shaders, cenas 3D, tensores em GPU, redes neurais e visualização matemática. O repositório no GitHub opera sob licença MIT e acumula 1,2 mil estrelas e 56 forks, com documentação completa em vgpu.sh.
Características principais
- Imports de WGSL tipados: arquivos .wgsl são importados e exportados como módulos TypeScript, e a reflexão mantém nomes de bindings, tipos e layouts corretos sem declarações escritas à mão. O pacote @vgpu/wgsl-std oferece declarações reutilizáveis (hash, noise, cor, sampling) e qualquer arquivo .wgsl pode exportar suas próprias funções, structs ou constantes para outros shaders. As importações são resolvidas em tempo de build, sem etapa de codegen.
- Um único contexto Gpu: init() retorna um handle único, e cada ponto de entrada (draw, effect, frame, surface, target) o recebe como primeiro argumento, sem estado global oculto.
- Tamanho reduzido: declarações não usadas são podadas antes da minificação, e um efeito fullscreen completo ocupa 25 KB gzipped - orçamento verificado no CI.
- Multi-runtime por padrão: a mesma API funciona no navegador, em Node headless (vgpu/node, com backend Dawn) e num mock determinístico (vgpu/mock) feito para testes e CI, dispensando GPU real nos testes.
- Frames explícitos: passes, limpezas e draws são chamadas explícitas, nunca estado implícito de um grafo de cena.
Uso e exemplos
O exemplo do README mostra init() adquirindo adapter e device, surface() encapsulando um canvas como alvo de renderização (com device pixel ratio limitado entre 1 e 2), effect() compilando o shader com uniforms endereçados pelos nomes WGSL via set(), clock() fornecendo o tempo de quadro e frameLoop() executando o callback a cada frame. No Node, o mesmo padrão permite desenhar em um target e ler os pixels resultantes.
Suporte a agentes
A biblioteca foi projetada também para ser operada por coding agents. Documentação, galeria de exemplos e validação de shaders rodam pela CLI (npx vgpu docs, npx vgpu examples, npx vgpu check). O site publica agents.md e llms.txt para consumo por LLMs, a API de descoberta de exemplos é sem token e somente leitura (descrita por OpenAPI), e há guia MCP conectando agentes ao endpoint público https://vgpu.sh/api/mcp ou executando stdio local com documentação versionada.
Monorepo e pacotes
O projeto é um monorepo com ponto de entrada público em vgpu (init, draw, compute, effect, frame, bundle, target, uniforms, além dos subcaminhos scene e core) e pacotes de apoio: @vgpu/cli (binário de linha de comando com docs, check e doctor), @vgpu/core (wrappers de baixo nível de Device, Buffer, Texture e bind groups), @vgpu/wgsl (converte .wgsl em módulos JS), @vgpu/wgsl-std, @vgpu/adapter-node, @vgpu/adapter-mock e @vgpu/render (auxiliares de edição, inspeção e performance).