Biblioteca gráfica minimalista em C++20 para Metal 4 e Vulkan 1.4, que substitui buffers e descriptor sets por ponteiros de GPU e heaps de descritores.
regl-project/regl
Um wrapper funcional para WebGL que elimina o estado compartilhado da GPU, permitindo descrever chamadas de desenho como comandos e compilá-los em JavaScript otimizado.
- Estrelas
- 5,594
- Forks
- 328
- Issues abertas
- 127
- Último commit
- há 21 dias
O que é?
regl é uma biblioteca JavaScript que envolve a API WebGL com duas abstrações: recursos, que são referências a objetos da GPU, como buffers, texturas e framebuffers, e comandos, que descrevem por completo o estado WebGL necessário para uma chamada de desenho. Os desenvolvedores combinam valores estáticos e dinâmicos ao definir um comando, e o regl gera código JavaScript otimizado a partir dessa descrição, evitando boa parte do custo por chamada do WebGL puro.
A biblioteca é intencionalmente minimalista. Ela não oferece um scene graph, um game engine nem utilitários de matemática vetorial; todos os recursos do WebGL, incluindo extensões como múltiplos render targets e instancing, continuam acessíveis. Não tem dependências, inclui uma versão em script independente junto com o pacote npm e traz uma ampla suíte de testes com verificações de validação ativadas no modo de desenvolvimento.
Recursos principais
- 01Envolve o WebGL com abstrações de recursos e comandos para reduzir o estado compartilhado.
- 02Compila definições de comandos em JavaScript otimizado por meio de avaliação parcial.
- 03Desdobra automaticamente arrays aninhados em typed arrays para buffers.
- 04Oferece regl.frame para requestAnimationFrame com gerenciamento da viewport.
- 05Expõe todos os recursos do WebGL, incluindo extensões como instancing.
- 06Não tem dependências em tempo de execução e oferece uma versão em script independente.
Casos de uso
- Criar visualizações de dados personalizadas e aceleradas pela GPU no navegador.
- Desenvolver gráficos ou simulações baseados em shaders que precisam de controle direto do WebGL.
- Criar aplicações web de longa duração que dependem de uma API de renderização estável e de baixo nível.
Início rápido
- 1
Instale regl do npm no seu projeto
npm i -S regl - 2
Carregue regl com require e crie uma instância; depois, desenhe com regl.frame
Antes de usar
- As verificações de erros do modo de desenvolvimento são removidas ao empacotar com browserify, a menos que você use a flag --debug.
Em coleções
Tópicos
Perguntas frequentes
- O que é regl?
- Um wrapper funcional para WebGL que elimina o estado compartilhado da GPU, permitindo descrever chamadas de desenho como comandos e compilá-los em JavaScript otimizado. regl é uma biblioteca JavaScript que envolve a API WebGL com duas abstrações: recursos, que são referências a objetos da GPU, como buffers, texturas e framebuffers, e comandos, que descrevem por completo o estado WebGL necessário para uma chamada de desenho. Os desenvolvedores combinam valores estáticos e dinâmicos ao definir um comando, e o regl gera código JavaScript otimizado a partir dessa descrição, evitando boa parte do custo por chamada do WebGL puro.
- regl é gratuito? Qual é a licença?
- regl é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- regl ainda é mantido?
- Manutenção ativa. O último commit de regl foi em 17 de out. de 2026.
- Para que posso usar regl?
- Criar visualizações de dados personalizadas e aceleradas pela GPU no navegador. Desenvolver gráficos ou simulações baseados em shaders que precisam de controle direto do WebGL. Criar aplicações web de longa duração que dependem de uma API de renderização estável e de baixo nível.
- Como instalar regl?
- Instale regl do npm no seu projeto: npm i -S regl Carregue regl com require e crie uma instância; depois, desenhe com regl.frame
- Onde consigo regl?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/regl-project/regl
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca JavaScript 3D que facilita criar e renderizar cenas 3D no navegador com WebGL e WebGPU.
Biblioteca de pós-processamento para three.js que encadeia efeitos de tela cheia, como bloom, SSAO e correção de cor, em cenas WebGL.
Uma coleção aberta de mais de 100 transições GLSL criadas pela comunidade entre duas imagens, para web, dispositivos móveis, Apple, Android, Rust e ferramentas de vídeo.
Renderizador de oceano em tempo real para three.js (WebGL2), com ondas FFT, arrebentação, espuma, cáusticas, visualização subaquática e objetos flutuantes.
Engine de jogos 3D e renderização em JavaScript/TypeScript que roda no navegador com WebGL, WebGPU e WebXR.