Converter STL para GLB

Aqui você converte STL para GLB de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído GLB funciona de um jeito diferente de STL. Não é a degradação gradual de um codec com perda: o que GLB consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Os lugares que pedem um GLB e recusam um STL

Três situações explicam quase toda esta conversão. Um campo de upload num anúncio, uma plataforma de documentação ou um sistema de conteúdo que nomeia `.glb` porque é isso que o componente visualizador dele carrega. Um colega ou cliente que precisa olhar uma peça e não tem fatiador nem pacote de CAD e não pretende instalar nenhum dos dois. E um recurso de realidade aumentada ou prévia construído em cima de glTF porque foi isso que a web padronizou.

Em nenhum desses casos quem converte está montando uma cena 3D. Quer um arquivo que o outro lado abra, mostrando a forma, ainda hoje. Vale segurar esse enquadramento, porque a maior parte do conselho sobre glTF é escrita para quem está montando cenas e responde perguntas que este leitor não tem.

Um arquivo só, com o buffer empacotado em vez de codificado

Um GLB é o mesmo documento glTF com o dado de vértice concatenado atrás dele: um cabeçalho de doze bytes cujos primeiros quatro soletram `glTF`, depois um bloco JSON, depois um bloco binário, cada um preenchido até uma fronteira de quatro bytes. Um arquivo, uma requisição, nada ao lado.

Isso importa contra a alternativa deste site. Converter um STL para `.gltf` também produz um arquivo só, mas ele precisa carregar o dado de vértice como uma URI de dado base64 dentro do JSON, o que custa quatro caracteres para cada três bytes — cerca de trinta e três por cento — com o JSON indentado por cima. O GLB guarda os mesmos bytes diretamente, então é significativamente menor para exatamente a mesma geometria. Se o arquivo vai ser baixado por alguém, esta é a versão a mandar.

O GLB não carrega material, então o visualizador decide tudo

Um STL não tem cor, textura, coordenada UV nem cor por vértice, e o conversor escreve uma primitiva com um acessor de posição e um acessor de índice e nenhuma referência a material. O que aparece na tela é produzido inteiramente pelos padrões do visualizador.

É por isso que o mesmo arquivo pode parecer um objeto de engenharia sólido num visualizador e um borrão cinza em outro. A correção é iluminação, não conversão: o `<model-viewer>` traz iluminação de ambiente neutra e um atributo `shadow-intensity`, e acrescentar os dois são dois atributos que transformam o resultado. No three.js, um mapa de ambiente mais uma luz hemisférica fazem o mesmo trabalho. Se a peça de fato precisa de cor, acrescente um material ao glTF depois com o `gltf-transform` — é uma edição pequena a um documento que já está completo no resto.

Z para cima no STL, Y para cima no visualizador

Esta é a que faz as pessoas acharem que a conversão falhou. Pacotes de CAD e o mundo inteiro de impressão 3D trabalham com Z para cima: a mesa de impressão é o plano XY e a altura é Z. O glTF especifica Y como para cima, e todo visualizador segue isso. Nada na conversão gira nada, porque inventar uma rotação seria chutar qual convenção a origem seguia.

Então uma peça exportada do Fusion, SolidWorks, FreeCAD ou de um fatiador chega no visualizador tombada noventa graus, deitada de costas. Corrija isso na cena, não no arquivo: o `<model-viewer>` aceita um atributo `orientation="-90deg 0 0"`, e o three.js precisa de uma linha ajustando `object.rotation.x`. Fazer isso no visualizador mantém o GLB batendo com o STL, o que importa se a mesma geometria também vai para uma impressora.

Milímetro no STL contra metro no visualizador

Nenhum dos dois formatos declara uma unidade. STL é tratado como milímetro por todo fatiador já escrito; glTF é escrito como se uma unidade fosse um metro. Os números atravessam intocados, então um suporte de 60 mm vira um objeto de sessenta unidades, que um visualizador dimensionado para metro renderiza como um suporte de sessenta metros e enquadra de bem longe.

Divida por 1000 na cena, e confira contra uma dimensão que você consegue verificar, não a olho. O `<model-viewer>` tem um atributo `scale`; o three.js tem `object.scale.setScalar(0.001)`. Se o visualizador parece certo sem escalar, o STL provavelmente não estava em milímetro, o que vale saber antes de mandar para uma impressora.

Soldando o STL antes de o GLB ser escrito

Um STL guarda cada triângulo como três vértices independentes sem compartilhamento nenhum, então um cubo chega como trinta e seis posições onde oito bastariam. O leitor mescla vértices coincidentes primeiro, comparando com seis casas decimais, porque dois triângulos que se encontram numa borda rotineiramente discordam no último bit de um float.

Para um arquivo de entrega isso não é um detalhe. A forma não soldada colocaria de quatro a seis vezes mais vértices no buffer e portanto no download, e também quebraria a sombra suave, já que um visualizador que faz média de normais precisa de vértices compartilhados para calcular a média. O resultado é um GLB cuja geometria é ao mesmo tempo menor e mais bem comportada do que uma reescrita ingênua produziria.

Uma malha, uma primitiva, uma chamada de desenho

Tudo encontrado no STL é escrito como uma única malha com uma única primitiva, porque um STL não tem grupos para preservar. Esse é o modelo mais barato possível para um renderizador — uma chamada de desenho, nenhuma troca de material — que é o formato certo para uma peça numa página de produto ou num painel de prévia.

A primitiva usa índices uint32 e posições float32 do início ao fim. Tipos de índice mais estreitos existem e economizariam um pouco num modelo pequeno, mas uma malha que passa de 65.535 vértices precisaria de um tipo diferente em silêncio, uma condição fácil de errar por poucos kilobytes. O acessor de posição carrega `min` e `max` como a especificação exige, o que deixa um visualizador enquadrar o modelo ao carregar, em vez de abrir zoom em nada.

Mandando o GLB para alguém sem fatiador

Este é o uso silenciosamente útil. Um colega, um cliente ou um comprador precisa ver uma peça e não tem software para isso — mandar um STL significa explicar o que instalar, e mandar uma captura de tela significa que a pessoa não consegue girar o objeto. Um GLB abre num visualizador baseado em navegador sem instalação nenhuma, e todo celular e computador atual consegue renderizar um através de uma página.

O que mandar junto: as dimensões reais, numa frase, porque o arquivo não carrega elas e o visualizador vai mostrar a escala que você definir. E uma nota sobre orientação se importar. Duas linhas de contexto transformam um objeto cinza flutuando num visualizador numa peça sobre a qual alguém consegue comentar.

Quanto o GLB pesa perto do STL

Geralmente bem menos. O STL usa cinquenta bytes por triângulo sem compartilhamento nenhum; o GLB guarda cada vértice uma vez em doze bytes e cada índice em quatro, então uma malha cujos vértices são usados por cinco ou seis triângulos cada comprime bastante no sentido geométrico antes de qualquer compressão ser aplicada.

O teto gratuito é de 100 MB, o que dá cerca de dois milhões de triângulos de STL. Bem antes disso, um modelo fica incômodo de carregar num navegador — algumas centenas de milhares de triângulos é um limite superior sensato para algo que um visitante vai abrir no celular. Se o STL é mais denso que isso, decime antes de converter; o `gltf-transform` também consegue aplicar compressão Draco no GLB resultante, mas lembre que um arquivo comprimido com Draco não pode ser convertido de volta neste site.

Onde o STL é convertido, e o que sai da máquina

Nada. A conversão é JavaScript puro nesta aba, sem módulo WebAssembly para baixar, sem envio, sem conta, sem cota diária. A aba de rede durante uma conversão é a checagem.

Esse é o ponto relevante para uma peça sendo preparada para um anúncio ou revisão de cliente, porque o modelo frequentemente ainda não foi lançado e frequentemente é de outra pessoa. Uma conversão que nunca transmite a geometria elimina a questão em vez de responder ela com uma política de privacidade.

Como converter STL para GLB

  1. Solte o seu arquivo STL nesta página, ou clique para escolher um.
  2. Escolha GLB como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo GLB pronto.

STL ou GLB: o que muda

STL comparado com GLB
STLGLB
Nome completoStereolithographyBinary glTF
Extensão do arquivo.stl.glb
Tipo de mídiamodel/stlmodel/gltf-binary
Publicado pela primeira vez19872016
Publicado por3D SystemsKhronos Group
EspecificaçãoglTF 2.0
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugar3MF, OBJ, PLYGLTF, OBJ

Abrir o resultado

Blender lê tanto STL quanto GLB, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

Os dois miram trabalhos diferentes: STL em a impressão 3D, GLB em a web e entregar um arquivo pronto. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.

GLB vem da Khronos Group é de 2016, descrito em glTF 2.0. Blender, three.js e Babylon.js leem o formato.

STL foi publicado em 1987 e GLB em 2016. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.

De STL para GLB: perguntas frequentes

Meu arquivo STL é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter STL para GLB é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter STL para GLB?

STL e GLB descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Preciso instalar alguma coisa para abrir um arquivo GLB?

Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe Binary glTF.

Mais sobre esses formatos