Efeitos de shader em WebGPU empacotados como componentes prontos para React, Vue, Svelte, Solid e JavaScript puro.
gpujs/gpu.js
GPU.js transpila funções JavaScript simples em código de shader para executá-las na GPU em navegadores e no Node.js, com fallback para JavaScript puro.
- Estrelas
- 15,511
- Forks
- 666
- Issues abertas
- 68
- Último commit
- há 14 dias
O que é?
GPU.js é uma biblioteca JavaScript para computação de propósito geral em GPUs (GPGPU), tanto no navegador quanto no Node.js. Você escreve uma função JavaScript comum que calcula um elemento de um array de saída, e o GPU.js a transpila para uma linguagem de shader e compila para execução paralela na GPU. Se não houver uma GPU disponível, a mesma função é executada em JavaScript convencional.
A biblioteca usa kernels criados com gpu.createKernel(), cujo tamanho de saída é definido com setOutput() e em que cada thread acessa sua posição por meio de this.thread.x, y e z. Os backends compatíveis incluem WebGL, WebGL2, headless GL para Node, WebAssembly, WebGPU (opcional) e um fallback para CPU. Os kernels podem ser encadeados com combineKernels() ou executados em pipeline para manter resultados intermediários no dispositivo.
GPU.js também oferece saída gráfica em um canvas, um modo de depuração para percorrer o código do kernel com breakpoints e definições de tipos para TypeScript. Na direção da v3, as chamadas de kernel passam a retornar Promises; um modo assíncrono já está disponível.
Recursos principais
- 01Transpila automaticamente funções JavaScript comuns em código de shader para GPU.
- 02Usa JavaScript convencional como fallback quando não há uma GPU disponível.
- 03Executa em navegadores e no Node.js, com backends WebGL, WebGL2, headless GL e WebGPU.
- 04Encadeia kernels com combineKernels() e processamento em pipeline para evitar transferências repetidas de dados.
- 05Renderiza resultados em um canvas no modo gráfico.
- 06Inclui um modo de desenvolvimento para depurar kernels com breakpoints e definições de tipos para TypeScript.
Casos de uso
- Acelerar operações com matrizes ou cálculos numéricos em uma página web.
- Executar processamento de imagens ou filtros em dados de pixels no navegador.
- Prototipar algoritmos paralelos para GPU em JavaScript antes de portá-los para código de nível mais baixo.
- Acelerar cálculos com uso intensivo de dados em serviços Node.js quando há uma GPU disponível.
Início rápido
- 1
Instale o pacote pelo npm
npm install gpu.js - 2
Crie uma instância de GPU e um kernel no Node.js
- 3
Use a build para navegador por meio de uma tag script ou de um CDN
Antes de usar
- A próxima versão principal, v3, fará com que todas as chamadas de kernel retornem uma Promise, quebrando o código síncrono escrito atualmente.
- As chamadas síncronas de kernel dependem do readback do WebGL, que bloqueia a thread principal.
Tópicos
Perguntas frequentes
- O que é gpu.js?
- GPU.js transpila funções JavaScript simples em código de shader para executá-las na GPU em navegadores e no Node.js, com fallback para JavaScript puro. GPU.js é uma biblioteca JavaScript para computação de propósito geral em GPUs (GPGPU), tanto no navegador quanto no Node.js. Você escreve uma função JavaScript comum que calcula um elemento de um array de saída, e o GPU.js a transpila para uma linguagem de shader e compila para execução paralela na GPU. Se não houver uma GPU disponível, a mesma função é executada em JavaScript convencional.
- gpu.js é gratuito? Qual é a licença?
- gpu.js é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- gpu.js ainda é mantido?
- Manutenção ativa. O último commit de gpu.js foi em 5 de out. de 2026.
- Para que posso usar gpu.js?
- Acelerar operações com matrizes ou cálculos numéricos em uma página web. Executar processamento de imagens ou filtros em dados de pixels no navegador. Prototipar algoritmos paralelos para GPU em JavaScript antes de portá-los para código de nível mais baixo. Acelerar cálculos com uso intensivo de dados em serviços Node.js quando há uma GPU disponível.
- Como instalar gpu.js?
- Instale o pacote pelo npm: npm install gpu.js Crie uma instância de GPU e um kernel no Node.js Use a build para navegador por meio de uma tag script ou de um CDN
- Onde consigo gpu.js?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/gpujs/gpu.js
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Sandbox em Three.js e GLSL para ajustar efeitos visuais de habilidades no estilo de jogos, com controles deslizantes que continuam editáveis durante a pausa da simulação.
Projeto de pesquisa que compila o fluxo de controle de JavaScript comum em uma rede diferenciável de multiplicações de matrizes, com pesos definidos manualmente.
Framework para criar aplicativos desktop multiplataforma com JavaScript, HTML e CSS, baseado em Node.js e Chromium.
Um toolkit rápido e completo para JavaScript e TypeScript: runtime, bundler, test runner e gerenciador de pacotes em um único executável.
Catálogo open source sem login de componentes interativos de UI com Three.js/WebGL, renderização ao vivo e código-fonte completo em React.