Um renderer Three.js para cenas de 3D Gaussian Splatting, com suporte a WebGPU e WebGL2 e LOD em streaming para modelos grandes.
sparkjsdev/spark
Um renderizador de 3D Gaussian Splatting para THREE.js que permite combinar cenas de splats e malhas comuns na mesma cena.
- Estrelas
- 3,879
- Forks
- 581
- Issues abertas
- 111
- Último commit
- há 18 dias
O que é?
Spark é uma biblioteca de renderização que leva 3D Gaussian Splatting ao THREE.js. Ela se integra ao pipeline de renderização do THREE.js, permitindo desenhar objetos de splats e objetos baseados em malhas na mesma cena com ordenação correta, além de renderizar vários objetos de splats juntos.
A biblioteca carrega os formatos de splat mais comuns, incluindo PLY (com e sem compressão), SPZ, SPLAT, KSPLAT e SOG. Ela tem como alvo o WebGL2 e foi projetada para funcionar em uma ampla variedade de dispositivos, incluindo aparelhos móveis com hardware de baixo desempenho. Cada splat pode ser transformado individualmente, ter suas cores alteradas, ser deslocado ou receber animação esquelética; além disso, um shader graph permite criar ou editar splats na GPU.
Spark pode ser instalada via npm ou carregada de uma CDN com um import map. O projeto também inclui exemplos, ferramentas para compactar arquivos PLY em SPZ e um site de documentação.
Recursos principais
- 01Integra-se ao pipeline do THREE.js para que splats e malhas compartilhem a mesma cena
- 02Oferece suporte aos formatos PLY (inclusive compactado), SPZ, SPLAT, KSPLAT e SOG
- 03Renderiza vários objetos de splats juntos, com ordenação correta
- 04Tem como alvo o WebGL2 e funciona em uma ampla variedade de dispositivos, inclusive móveis
- 05Oferece suporte a transformações por splat, edição de cores, deslocamento e animação esquelética
- 06Inclui um shader graph na GPU para criar e editar splats
Casos de uso
- Exibir cenas 3D capturadas ou obtidas por fotogrametria em uma página web feita com THREE.js
- Combinar digitalizações de splats com objetos de malha ou elementos de UI em uma experiência 3D interativa
- Animar ou alterar as cores de objetos capturados no navegador
- Disponibilizar visualizadores de splats para usuários de dispositivos móveis pela web
Início rápido
- 1
Instale o pacote pelo npm
npm install @sparkjsdev/spark - 2
Ou copie o exemplo de HTML do README para um arquivo index.html e abra-o em um navegador
Antes de usar
- Para compilar a partir do código-fonte, é necessário instalar o Rust e executar uma etapa de compilação de WebAssembly separadamente.
Tópicos
Perguntas frequentes
- O que é spark?
- Um renderizador de 3D Gaussian Splatting para THREE.js que permite combinar cenas de splats e malhas comuns na mesma cena. Spark é uma biblioteca de renderização que leva 3D Gaussian Splatting ao THREE.js. Ela se integra ao pipeline de renderização do THREE.js, permitindo desenhar objetos de splats e objetos baseados em malhas na mesma cena com ordenação correta, além de renderizar vários objetos de splats juntos.
- spark é gratuito? Qual é a licença?
- spark é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- spark ainda é mantido?
- Manutenção ativa. O último commit de spark foi em 20 de out. de 2026.
- Para que posso usar spark?
- Exibir cenas 3D capturadas ou obtidas por fotogrametria em uma página web feita com THREE.js Combinar digitalizações de splats com objetos de malha ou elementos de UI em uma experiência 3D interativa Animar ou alterar as cores de objetos capturados no navegador Disponibilizar visualizadores de splats para usuários de dispositivos móveis pela web
- Como instalar spark?
- Instale o pacote pelo npm: npm install @sparkjsdev/spark Ou copie o exemplo de HTML do README para um arquivo index.html e abra-o em um navegador
- Onde consigo spark?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sparkjsdev/spark
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Toolkit e framework JavaScript para visualizações interativas de dados em 3D/WebGL e 2D no navegador, desenvolvido sobre o Three.js.
Um renderer React para Three.js que permite criar cenas 3D de forma declarativa com componentes JSX.
Coleção de componentes auxiliares e hooks prontos para criar cenas 3D com react-three-fiber.
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.
Um wrapper React para a biblioteca postprocessing que permite aplicar efeitos de pós-processamento a cenas do react-three-fiber de forma declarativa, usando componentes JSX.